private void JavascriptCollectionChanged(IJavascriptObject collectionArg, IJavascriptObject valuesArg, IJavascriptObject typesArg, IJavascriptObject indexesArg) { var values = valuesArg.GetArrayElements(); var types = typesArg.GetArrayElements(); var indexes = indexesArg.GetArrayElements(); var collectionChange = new JavascriptCollectionChanges(collectionArg, values.Zip(types, indexes, (v, t, i) => new IndividualJavascriptCollectionChange(t.GetStringValue() == "added" ? CollectionChangeType.Add : CollectionChangeType.Remove, i.GetIntValue(), v))); _Listener.OnJavaScriptCollectionChanges(collectionChange); }