I tried to implement a NativeObject in javascript as following but some error while trying to iterate the properties. Some of my code are borrowed from HelmaNG framework.
I'm trying to make a http://jsext.sourceforge.net/JSEXT1.ActiveDirectory.html API for my Rhino application. Any suggestion? importPackage(org.mozilla.javascript); function MyNative(obj) { var nativeObj = new JavaAdapter(NativeObject, { get: function(name, start) { var value = obj[name]; if (value === undefined) { return Scriptable.NOT_FOUND; } else { return value; } }, put: function(name, start, value) { if (obj[name]) { obj[name] = value; } }, has: function(name, start) { return obj in name; }, getIds: function() { var ids = this.super$getIds().concat(); for (var id in obj) { ids.push(id); } return ids; }, equivalentValues: function(other) { if (other == this) { return true; } return Scriptable.NOT_FOUND; } }); nativeObj.__proto__ = this.__proto__; return nativeObj; } Test code: var test = new MyNative({key: 'value'}); print('key' in test); print(test.key); for(var prop in test){ print(prop); } Output: true value Exception in thread "main" java.lang.ClassCastException: org.mozilla.javascript.NativeArray cannot be cast to [Ljava.lang.Object; at adapter1.getIds(<adapter>) at org.mozilla.javascript.ScriptRuntime.enumChangeObject (ScriptRuntime.java:2088) at org.mozilla.javascript.ScriptRuntime.enumInit(ScriptRuntime.java: 1987) at org.mozilla.javascript.gen.E__eclipse_workspaces_appengine_jsTool_app_test_native_js_1._c_script_0 (Unknown Source) at org.mozilla.javascript.gen.E__eclipse_workspaces_appengine_jsTool_app_test_native_js_1.call (Unknown Source) at org.mozilla.javascript.ContextFactory.doTopCall (ContextFactory.java:405) at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java: 3059) at org.mozilla.javascript.gen.E__eclipse_workspaces_appengine_jsTool_app_test_native_js_1.call (Unknown Source) at org.mozilla.javascript.gen.E__eclipse_workspaces_appengine_jsTool_app_test_native_js_1.exec (Unknown Source) at org.mozilla.javascript.tools.shell.Main.evaluateScript(Main.java: 563) at org.mozilla.javascript.tools.shell.Main.processFileSecure (Main.java:485) at org.mozilla.javascript.tools.shell.Main.processFile(Main.java:451) at org.mozilla.javascript.tools.shell.Main.processSource(Main.java: 443) at org.mozilla.javascript.tools.shell.Main.processFiles(Main.java: 196) at org.mozilla.javascript.tools.shell.Main$IProxy.run(Main.java:117) at org.mozilla.javascript.Context.call(Context.java:522) at org.mozilla.javascript.ContextFactory.call(ContextFactory.java: 514) at org.mozilla.javascript.tools.shell.Main.exec(Main.java:179) at org.mozilla.javascript.tools.shell.Main.main(Main.java:157) _______________________________________________ dev-tech-js-engine-rhino mailing list [email protected] https://lists.mozilla.org/listinfo/dev-tech-js-engine-rhino
