johnson 1.2.0 → 2.0.0.pre0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.rdoc +8 -0
- data/Manifest.txt +762 -48
- data/README.rdoc +2 -1
- data/Rakefile +90 -18
- data/ext/spidermonkey/conversions.c +9 -2
- data/ext/spidermonkey/ruby_land_proxy.c +1 -1
- data/ext/spidermonkey/runtime.h +1 -1
- data/ext/tracemonkey/context.cc +125 -0
- data/ext/tracemonkey/context.h +19 -0
- data/ext/tracemonkey/conversions.cc +365 -0
- data/ext/tracemonkey/conversions.h +32 -0
- data/ext/tracemonkey/debugger.cc +234 -0
- data/ext/tracemonkey/debugger.h +10 -0
- data/ext/tracemonkey/extconf.rb +37 -0
- data/ext/tracemonkey/extensions.cc +37 -0
- data/ext/tracemonkey/extensions.h +12 -0
- data/ext/tracemonkey/global.cc +40 -0
- data/ext/tracemonkey/global.h +11 -0
- data/ext/tracemonkey/idhash.cc +16 -0
- data/ext/tracemonkey/idhash.h +8 -0
- data/ext/tracemonkey/immutable_node.cc +1199 -0
- data/ext/tracemonkey/immutable_node.cc.erb +559 -0
- data/ext/tracemonkey/immutable_node.h +22 -0
- data/ext/tracemonkey/jroot.h +215 -0
- data/ext/tracemonkey/js_land_proxy.cc +620 -0
- data/ext/tracemonkey/js_land_proxy.h +20 -0
- data/ext/tracemonkey/ruby_land_proxy.cc +618 -0
- data/ext/tracemonkey/ruby_land_proxy.h +38 -0
- data/ext/tracemonkey/runtime.cc +454 -0
- data/ext/tracemonkey/runtime.h +27 -0
- data/ext/tracemonkey/split_global.cc +392 -0
- data/ext/tracemonkey/split_global.h +11 -0
- data/ext/tracemonkey/tracemonkey.cc +23 -0
- data/ext/tracemonkey/tracemonkey.h +32 -0
- data/lib/johnson.rb +12 -4
- data/lib/johnson/error.rb +5 -0
- data/lib/johnson/js/prelude.js +16 -1
- data/lib/johnson/parser.rb +2 -1
- data/lib/johnson/runtime.rb +87 -26
- data/lib/johnson/spidermonkey/runtime.rb +7 -16
- data/lib/johnson/tracemonkey.rb +13 -0
- data/lib/johnson/tracemonkey/context.rb +10 -0
- data/lib/johnson/tracemonkey/debugger.rb +67 -0
- data/lib/johnson/tracemonkey/immutable_node.rb +282 -0
- data/lib/johnson/tracemonkey/js_land_proxy.rb +64 -0
- data/lib/johnson/tracemonkey/mutable_tree_visitor.rb +242 -0
- data/lib/johnson/tracemonkey/ruby_land_proxy.rb +17 -0
- data/lib/johnson/tracemonkey/runtime.rb +80 -0
- data/test/{johnson_test.rb → generic/johnson_test.rb} +1 -1
- data/test/{parser_test.rb → generic/parser_test.rb} +1 -1
- data/test/helper.rb +23 -4
- data/test/johnson/{browser_test.rb → generic/browser_test.rb} +1 -1
- data/test/johnson/{conversions → generic/conversions}/array_test.rb +1 -1
- data/test/johnson/{conversions → generic/conversions}/boolean_test.rb +1 -1
- data/test/johnson/{conversions → generic/conversions}/callable_test.rb +1 -1
- data/test/johnson/{conversions → generic/conversions}/file_test.rb +1 -1
- data/test/johnson/generic/conversions/helper.rb +1 -0
- data/test/johnson/{conversions → generic/conversions}/nil_test.rb +1 -1
- data/test/johnson/{conversions → generic/conversions}/number_test.rb +1 -1
- data/test/johnson/{conversions → generic/conversions}/regexp_test.rb +1 -1
- data/test/johnson/{conversions → generic/conversions}/string_test.rb +1 -1
- data/test/johnson/{conversions → generic/conversions}/struct_test.rb +1 -1
- data/test/johnson/{conversions → generic/conversions}/symbol_test.rb +1 -1
- data/test/johnson/{conversions → generic/conversions}/thread_test.rb +1 -1
- data/test/johnson/{custom_conversions_test.rb → generic/custom_conversions_test.rb} +1 -1
- data/test/johnson/generic/default_test.rb +12 -0
- data/test/johnson/{error_test.rb → generic/error_test.rb} +1 -1
- data/test/johnson/{extensions_test.rb → generic/extensions_test.rb} +1 -1
- data/test/johnson/generic/helper.rb +1 -0
- data/test/johnson/{nodes → generic/nodes}/array_literal_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/array_node_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/binary_node_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/bracket_access_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/delete_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/do_while_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/dot_accessor_test.rb +1 -1
- data/test/johnson/generic/nodes/export_test.rb +11 -0
- data/test/johnson/{nodes → generic/nodes}/for_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/function_test.rb +1 -1
- data/test/johnson/generic/nodes/helper.rb +1 -0
- data/test/johnson/{nodes → generic/nodes}/if_test.rb +16 -6
- data/test/johnson/generic/nodes/import_test.rb +15 -0
- data/test/johnson/{nodes → generic/nodes}/label_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/let_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/object_literal_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/return_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/semi_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/switch_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/ternary_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/throw_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/try_node_test.rb +36 -6
- data/test/johnson/{nodes → generic/nodes}/typeof_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/unary_node_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/void_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/while_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/with_test.rb +1 -1
- data/test/johnson/{prelude_test.rb → generic/prelude_test.rb} +1 -1
- data/test/johnson/{runtime_test.rb → generic/runtime_test.rb} +3 -6
- data/test/johnson/generic/version_test.rb +13 -0
- data/test/johnson/{visitors → generic/visitors}/dot_visitor_test.rb +1 -1
- data/test/johnson/{visitors → generic/visitors}/enumerating_visitor_test.rb +1 -1
- data/test/johnson/generic/visitors/helper.rb +1 -0
- data/test/johnson/spidermonkey/js_land_proxy_test.rb +1 -5
- data/test/johnson/spidermonkey/ruby_land_proxy_test.rb +11 -7
- data/test/johnson/tracemonkey/context_test.rb +21 -0
- data/test/johnson/tracemonkey/immutable_node_test.rb +34 -0
- data/test/johnson/tracemonkey/js_land_proxy_test.rb +273 -0
- data/test/johnson/tracemonkey/ruby_land_proxy_test.rb +274 -0
- data/test/johnson/tracemonkey/runtime_test.rb +41 -0
- data/test/johnson/tracemonkey/split_global_test.rb +32 -0
- data/vendor/spidermonkey/js.pkg +2 -0
- data/vendor/tracemonkey/Makefile.in +668 -0
- data/vendor/tracemonkey/Makefile.ref +483 -0
- data/vendor/tracemonkey/README.html +54 -0
- data/vendor/tracemonkey/SpiderMonkey.rsp +11 -0
- data/vendor/tracemonkey/Y.js +19 -0
- data/vendor/tracemonkey/aclocal.m4 +9 -0
- data/vendor/tracemonkey/bench.sh +5 -0
- data/vendor/tracemonkey/build/autoconf/acoutput-fast.pl +202 -0
- data/vendor/tracemonkey/build/autoconf/altoptions.m4 +154 -0
- data/vendor/tracemonkey/build/autoconf/config.guess +1537 -0
- data/vendor/tracemonkey/build/autoconf/config.sub +1595 -0
- data/vendor/tracemonkey/build/autoconf/install-sh +119 -0
- data/vendor/tracemonkey/build/autoconf/make-makefile +315 -0
- data/vendor/tracemonkey/build/autoconf/match-dir.sh +101 -0
- data/vendor/tracemonkey/build/autoconf/moznbytetype.m4 +136 -0
- data/vendor/tracemonkey/build/autoconf/nspr.m4 +82 -0
- data/vendor/tracemonkey/build/autoconf/pkg.m4 +59 -0
- data/vendor/tracemonkey/build/autoconf/update-makefile.sh +118 -0
- data/vendor/tracemonkey/build/cygwin-wrapper +75 -0
- data/vendor/tracemonkey/build/hcc +111 -0
- data/vendor/tracemonkey/build/hcpp +155 -0
- data/vendor/tracemonkey/build/unix/mddepend.pl +165 -0
- data/vendor/tracemonkey/build/unix/uniq.pl +63 -0
- data/vendor/tracemonkey/build/win32/pgomerge.py +40 -0
- data/vendor/tracemonkey/builtins.tbl +91 -0
- data/vendor/tracemonkey/call.js +13 -0
- data/vendor/tracemonkey/config.mk +206 -0
- data/vendor/tracemonkey/config/Makefile.in +106 -0
- data/vendor/tracemonkey/config/Moz/Milestone.pm +232 -0
- data/vendor/tracemonkey/config/autoconf.mk.in +362 -0
- data/vendor/tracemonkey/config/check-sync-dirs.py +103 -0
- data/vendor/tracemonkey/config/check-sync-exceptions +7 -0
- data/vendor/tracemonkey/config/config.mk +881 -0
- data/vendor/tracemonkey/config/fastcwd.pl +66 -0
- data/vendor/tracemonkey/config/gcc_hidden.h +2 -0
- data/vendor/tracemonkey/config/insure.mk +53 -0
- data/vendor/tracemonkey/config/make-system-wrappers.pl +59 -0
- data/vendor/tracemonkey/config/milestone.pl +112 -0
- data/vendor/tracemonkey/config/milestone.txt +13 -0
- data/vendor/tracemonkey/config/mkdepend/Makefile.in +84 -0
- data/vendor/tracemonkey/config/mkdepend/cppsetup.c +233 -0
- data/vendor/tracemonkey/config/mkdepend/def.h +184 -0
- data/vendor/tracemonkey/config/mkdepend/ifparser.c +551 -0
- data/vendor/tracemonkey/config/mkdepend/ifparser.h +83 -0
- data/vendor/tracemonkey/config/mkdepend/imakemdep.h +733 -0
- data/vendor/tracemonkey/config/mkdepend/include.c +337 -0
- data/vendor/tracemonkey/config/mkdepend/main.c +860 -0
- data/vendor/tracemonkey/config/mkdepend/mkdepend.man +382 -0
- data/vendor/tracemonkey/config/mkdepend/parse.c +686 -0
- data/vendor/tracemonkey/config/mkdepend/pr.c +124 -0
- data/vendor/tracemonkey/config/nfspwd.pl +50 -0
- data/vendor/tracemonkey/config/nsinstall.c +481 -0
- data/vendor/tracemonkey/config/nsinstall.py +155 -0
- data/vendor/tracemonkey/config/pathsub.c +247 -0
- data/vendor/tracemonkey/config/pathsub.h +74 -0
- data/vendor/tracemonkey/config/preprocessor.pl +671 -0
- data/vendor/tracemonkey/config/revdepth-nt.pl +48 -0
- data/vendor/tracemonkey/config/revdepth.pl +51 -0
- data/vendor/tracemonkey/config/rules.mk +2310 -0
- data/vendor/tracemonkey/config/static-checking-config.mk +21 -0
- data/vendor/tracemonkey/config/static-checking.js +92 -0
- data/vendor/tracemonkey/config/string-format.js +61 -0
- data/vendor/tracemonkey/config/system-headers +1035 -0
- data/vendor/tracemonkey/config/version.mk +85 -0
- data/vendor/tracemonkey/config/version_win.pl +442 -0
- data/vendor/tracemonkey/configure +14183 -0
- data/vendor/tracemonkey/configure.in +5363 -0
- data/vendor/tracemonkey/correct.sh +23 -0
- data/vendor/tracemonkey/correct/check-3d-morph.js +55 -0
- data/vendor/tracemonkey/correct/check-3d-raytrace.js +445 -0
- data/vendor/tracemonkey/correct/check-access-binary-trees.js +52 -0
- data/vendor/tracemonkey/correct/check-access-fannkuch.js +66 -0
- data/vendor/tracemonkey/correct/check-access-nbody.js +171 -0
- data/vendor/tracemonkey/correct/check-access-nsieve.js +40 -0
- data/vendor/tracemonkey/correct/check-bitops-3bit-bits-in-byte.js +35 -0
- data/vendor/tracemonkey/correct/check-bitops-bits-in-byte.js +24 -0
- data/vendor/tracemonkey/correct/check-bitops-bitwise-and.js +29 -0
- data/vendor/tracemonkey/correct/check-bitops-nsieve-bits.js +40 -0
- data/vendor/tracemonkey/correct/check-controlflow-recursive.js +27 -0
- data/vendor/tracemonkey/correct/check-date-format-tofte.js +302 -0
- data/vendor/tracemonkey/correct/check-date-format-xparb.js +421 -0
- data/vendor/tracemonkey/correct/check-mont.js +119 -0
- data/vendor/tracemonkey/dtoa.c +3335 -0
- data/vendor/tracemonkey/editline/Makefile.in +55 -0
- data/vendor/tracemonkey/editline/Makefile.ref +143 -0
- data/vendor/tracemonkey/editline/README +83 -0
- data/vendor/tracemonkey/editline/editline.3 +175 -0
- data/vendor/tracemonkey/editline/editline.c +1371 -0
- data/vendor/tracemonkey/editline/editline.h +135 -0
- data/vendor/tracemonkey/editline/sysunix.c +182 -0
- data/vendor/tracemonkey/editline/unix.h +82 -0
- data/vendor/tracemonkey/if.js +13 -0
- data/vendor/tracemonkey/imacro_asm.js.in +396 -0
- data/vendor/tracemonkey/imacros.c.out +1034 -0
- data/vendor/tracemonkey/imacros.jsasm +770 -0
- data/vendor/tracemonkey/javascript-trace.d +73 -0
- data/vendor/tracemonkey/jitstats.tbl +55 -0
- data/vendor/tracemonkey/js-config.h.in +82 -0
- data/vendor/tracemonkey/js-config.in +111 -0
- data/vendor/tracemonkey/js.mdp +0 -0
- data/vendor/tracemonkey/js.msg +312 -0
- data/vendor/tracemonkey/js3240.rc +79 -0
- data/vendor/tracemonkey/jsOS240.def +654 -0
- data/vendor/tracemonkey/jsapi.cpp +6005 -0
- data/vendor/tracemonkey/jsapi.h +2727 -0
- data/vendor/tracemonkey/jsarena.cpp +450 -0
- data/vendor/tracemonkey/jsarena.h +318 -0
- data/vendor/tracemonkey/jsarray.cpp +3664 -0
- data/vendor/tracemonkey/jsarray.h +238 -0
- data/vendor/tracemonkey/jsatom.cpp +1244 -0
- data/vendor/tracemonkey/jsatom.h +493 -0
- data/vendor/tracemonkey/jsbit.h +249 -0
- data/vendor/tracemonkey/jsbool.cpp +184 -0
- data/vendor/tracemonkey/jsbool.h +88 -0
- data/vendor/tracemonkey/jsbuiltins.cpp +415 -0
- data/vendor/tracemonkey/jsbuiltins.h +456 -0
- data/vendor/tracemonkey/jsclist.h +139 -0
- data/vendor/tracemonkey/jscntxt.cpp +1816 -0
- data/vendor/tracemonkey/jscntxt.h +1541 -0
- data/vendor/tracemonkey/jscompat.h +57 -0
- data/vendor/tracemonkey/jsconfig.mk +181 -0
- data/vendor/tracemonkey/jscpucfg.cpp +194 -0
- data/vendor/tracemonkey/jscpucfg.h +91 -0
- data/vendor/tracemonkey/jsdate.cpp +2465 -0
- data/vendor/tracemonkey/jsdate.h +129 -0
- data/vendor/tracemonkey/jsdbgapi.cpp +2017 -0
- data/vendor/tracemonkey/jsdbgapi.h +500 -0
- data/vendor/tracemonkey/jsdhash.cpp +876 -0
- data/vendor/tracemonkey/jsdhash.h +588 -0
- data/vendor/tracemonkey/jsdtoa.cpp +572 -0
- data/vendor/tracemonkey/jsdtoa.h +131 -0
- data/vendor/tracemonkey/jsdtracef.c +318 -0
- data/vendor/tracemonkey/jsdtracef.h +81 -0
- data/vendor/tracemonkey/jsemit.cpp +7292 -0
- data/vendor/tracemonkey/jsemit.h +802 -0
- data/vendor/tracemonkey/jsexn.cpp +1337 -0
- data/vendor/tracemonkey/jsexn.h +96 -0
- data/vendor/tracemonkey/jsfile.cpp +2747 -0
- data/vendor/tracemonkey/jsfile.h +56 -0
- data/vendor/tracemonkey/jsfile.msg +90 -0
- data/vendor/tracemonkey/jsfun.cpp +3089 -0
- data/vendor/tracemonkey/jsfun.h +366 -0
- data/vendor/tracemonkey/jsgc.cpp +3816 -0
- data/vendor/tracemonkey/jsgc.h +429 -0
- data/vendor/tracemonkey/jshash.cpp +477 -0
- data/vendor/tracemonkey/jshash.h +151 -0
- data/vendor/tracemonkey/jsify.pl +483 -0
- data/vendor/tracemonkey/jsinterp.cpp +7441 -0
- data/vendor/tracemonkey/jsinterp.h +666 -0
- data/vendor/tracemonkey/jsinvoke.cpp +42 -0
- data/vendor/tracemonkey/jsiter.cpp +1040 -0
- data/vendor/tracemonkey/jsiter.h +140 -0
- data/vendor/tracemonkey/jskeyword.tbl +124 -0
- data/vendor/tracemonkey/jskwgen.cpp +460 -0
- data/vendor/tracemonkey/jslibmath.h +69 -0
- data/vendor/tracemonkey/jslock.cpp +1512 -0
- data/vendor/tracemonkey/jslock.h +325 -0
- data/vendor/tracemonkey/jslocko.asm +60 -0
- data/vendor/tracemonkey/jslog2.cpp +111 -0
- data/vendor/tracemonkey/jslong.h +167 -0
- data/vendor/tracemonkey/jsmath.cpp +806 -0
- data/vendor/tracemonkey/jsmath.h +63 -0
- data/vendor/tracemonkey/jsnum.cpp +1374 -0
- data/vendor/tracemonkey/jsnum.h +280 -0
- data/vendor/tracemonkey/jsobj.cpp +6165 -0
- data/vendor/tracemonkey/jsobj.h +870 -0
- data/vendor/tracemonkey/json.cpp +1338 -0
- data/vendor/tracemonkey/json.h +108 -0
- data/vendor/tracemonkey/jsopcode.cpp +5484 -0
- data/vendor/tracemonkey/jsopcode.h +434 -0
- data/vendor/tracemonkey/jsopcode.tbl +591 -0
- data/vendor/tracemonkey/jsoplengen.cpp +121 -0
- data/vendor/tracemonkey/jsotypes.h +202 -0
- data/vendor/tracemonkey/jsparse.cpp +9257 -0
- data/vendor/tracemonkey/jsparse.h +900 -0
- data/vendor/tracemonkey/jsprf.cpp +1262 -0
- data/vendor/tracemonkey/jsprf.h +150 -0
- data/vendor/tracemonkey/jsproto.tbl +117 -0
- data/vendor/tracemonkey/jsprvtd.h +366 -0
- data/vendor/tracemonkey/jspubtd.h +585 -0
- data/vendor/tracemonkey/jsregexp.cpp +5051 -0
- data/vendor/tracemonkey/jsregexp.h +199 -0
- data/vendor/tracemonkey/jsreops.tbl +145 -0
- data/vendor/tracemonkey/jsscan.cpp +2040 -0
- data/vendor/tracemonkey/jsscan.h +467 -0
- data/vendor/tracemonkey/jsscope.cpp +1966 -0
- data/vendor/tracemonkey/jsscope.h +487 -0
- data/vendor/tracemonkey/jsscript.cpp +1932 -0
- data/vendor/tracemonkey/jsscript.h +345 -0
- data/vendor/tracemonkey/jsshell.msg +54 -0
- data/vendor/tracemonkey/jsstack.js +167 -0
- data/vendor/tracemonkey/jsstaticcheck.h +69 -0
- data/vendor/tracemonkey/jsstddef.h +87 -0
- data/vendor/tracemonkey/jsstdint.h +96 -0
- data/vendor/tracemonkey/jsstr.cpp +5277 -0
- data/vendor/tracemonkey/jsstr.h +702 -0
- data/vendor/tracemonkey/jstracer.cpp +10991 -0
- data/vendor/tracemonkey/jstracer.h +794 -0
- data/vendor/tracemonkey/jstypes.h +481 -0
- data/vendor/tracemonkey/jsutil.cpp +361 -0
- data/vendor/tracemonkey/jsutil.h +178 -0
- data/vendor/tracemonkey/jsversion.h +243 -0
- data/vendor/tracemonkey/jswince.asm +44 -0
- data/vendor/tracemonkey/jsxdrapi.cpp +800 -0
- data/vendor/tracemonkey/jsxdrapi.h +220 -0
- data/vendor/tracemonkey/jsxml.cpp +8327 -0
- data/vendor/tracemonkey/jsxml.h +305 -0
- data/vendor/tracemonkey/liveconnect/LiveConnect.dsp +157 -0
- data/vendor/tracemonkey/liveconnect/LiveConnectShell.dsp +120 -0
- data/vendor/tracemonkey/liveconnect/LiveConnectShell.dsw +44 -0
- data/vendor/tracemonkey/liveconnect/Makefile.in +105 -0
- data/vendor/tracemonkey/liveconnect/Makefile.ref +169 -0
- data/vendor/tracemonkey/liveconnect/README.html +712 -0
- data/vendor/tracemonkey/liveconnect/_jni/netscape_javascript_JSException.h +14 -0
- data/vendor/tracemonkey/liveconnect/_jni/netscape_javascript_JSObject.h +155 -0
- data/vendor/tracemonkey/liveconnect/classes/Makefile.in +89 -0
- data/vendor/tracemonkey/liveconnect/classes/Makefile.ref +57 -0
- data/vendor/tracemonkey/liveconnect/classes/netscape/Makefile.ref +47 -0
- data/vendor/tracemonkey/liveconnect/classes/netscape/javascript/JSException.java +140 -0
- data/vendor/tracemonkey/liveconnect/classes/netscape/javascript/JSObject.java +183 -0
- data/vendor/tracemonkey/liveconnect/classes/netscape/javascript/JSProxy.java +58 -0
- data/vendor/tracemonkey/liveconnect/classes/netscape/javascript/JSRunnable.java +70 -0
- data/vendor/tracemonkey/liveconnect/classes/netscape/javascript/JSUtil.java +59 -0
- data/vendor/tracemonkey/liveconnect/classes/netscape/javascript/Makefile.ref +53 -0
- data/vendor/tracemonkey/liveconnect/config/AIX4.1.mk +45 -0
- data/vendor/tracemonkey/liveconnect/config/AIX4.2.mk +45 -0
- data/vendor/tracemonkey/liveconnect/config/AIX4.3.mk +50 -0
- data/vendor/tracemonkey/liveconnect/config/HP-UXB.10.10.mk +43 -0
- data/vendor/tracemonkey/liveconnect/config/HP-UXB.10.20.mk +43 -0
- data/vendor/tracemonkey/liveconnect/config/HP-UXB.11.00.mk +43 -0
- data/vendor/tracemonkey/liveconnect/config/IRIX6.2.mk +43 -0
- data/vendor/tracemonkey/liveconnect/config/IRIX6.3.mk +43 -0
- data/vendor/tracemonkey/liveconnect/config/IRIX6.5.mk +43 -0
- data/vendor/tracemonkey/liveconnect/config/Linux_All.mk +73 -0
- data/vendor/tracemonkey/liveconnect/config/OSF1V4.0.mk +65 -0
- data/vendor/tracemonkey/liveconnect/config/OSF1V5.0.mk +62 -0
- data/vendor/tracemonkey/liveconnect/config/SunOS5.5.1.mk +55 -0
- data/vendor/tracemonkey/liveconnect/config/SunOS5.6.mk +39 -0
- data/vendor/tracemonkey/liveconnect/config/SunOS5.7.mk +39 -0
- data/vendor/tracemonkey/liveconnect/config/SunOS5.8.mk +39 -0
- data/vendor/tracemonkey/liveconnect/config/WINNT4.0.mk +53 -0
- data/vendor/tracemonkey/liveconnect/jsj.c +886 -0
- data/vendor/tracemonkey/liveconnect/jsj.msg +98 -0
- data/vendor/tracemonkey/liveconnect/jsj_JSObject.c +1377 -0
- data/vendor/tracemonkey/liveconnect/jsj_JavaArray.c +474 -0
- data/vendor/tracemonkey/liveconnect/jsj_JavaClass.c +737 -0
- data/vendor/tracemonkey/liveconnect/jsj_JavaMember.c +191 -0
- data/vendor/tracemonkey/liveconnect/jsj_JavaObject.c +1079 -0
- data/vendor/tracemonkey/liveconnect/jsj_JavaPackage.c +569 -0
- data/vendor/tracemonkey/liveconnect/jsj_array.c +207 -0
- data/vendor/tracemonkey/liveconnect/jsj_class.c +770 -0
- data/vendor/tracemonkey/liveconnect/jsj_convert.c +902 -0
- data/vendor/tracemonkey/liveconnect/jsj_field.c +421 -0
- data/vendor/tracemonkey/liveconnect/jsj_hash.c +488 -0
- data/vendor/tracemonkey/liveconnect/jsj_hash.h +161 -0
- data/vendor/tracemonkey/liveconnect/jsj_method.c +1825 -0
- data/vendor/tracemonkey/liveconnect/jsj_nodl.c +1 -0
- data/vendor/tracemonkey/liveconnect/jsj_private.h +677 -0
- data/vendor/tracemonkey/liveconnect/jsj_simpleapi.c +219 -0
- data/vendor/tracemonkey/liveconnect/jsj_utils.c +513 -0
- data/vendor/tracemonkey/liveconnect/jsjava.h +316 -0
- data/vendor/tracemonkey/liveconnect/netscape_javascript_JSObject.h +155 -0
- data/vendor/tracemonkey/liveconnect/nsCLiveconnect.cpp +785 -0
- data/vendor/tracemonkey/liveconnect/nsCLiveconnect.h +197 -0
- data/vendor/tracemonkey/liveconnect/nsCLiveconnectFactory.cpp +118 -0
- data/vendor/tracemonkey/liveconnect/nsCLiveconnectFactory.h +76 -0
- data/vendor/tracemonkey/liveconnect/nsILiveconnect.h +197 -0
- data/vendor/tracemonkey/liveconnect/nsISecureLiveconnect.h +94 -0
- data/vendor/tracemonkey/liveconnect/nsISecurityContext.h +136 -0
- data/vendor/tracemonkey/lock_SunOS.s +119 -0
- data/vendor/tracemonkey/mandelbrot-results.js +3 -0
- data/vendor/tracemonkey/math-partial-sums.js +32 -0
- data/vendor/tracemonkey/math-trace-tests.js +507 -0
- data/vendor/tracemonkey/md5.js +289 -0
- data/vendor/tracemonkey/nanojit/Assembler.cpp +1984 -0
- data/vendor/tracemonkey/nanojit/Assembler.h +375 -0
- data/vendor/tracemonkey/nanojit/Fragmento.cpp +651 -0
- data/vendor/tracemonkey/nanojit/Fragmento.h +237 -0
- data/vendor/tracemonkey/nanojit/LIR.cpp +2314 -0
- data/vendor/tracemonkey/nanojit/LIR.h +879 -0
- data/vendor/tracemonkey/nanojit/LIRopcode.tbl +252 -0
- data/vendor/tracemonkey/nanojit/Native.h +127 -0
- data/vendor/tracemonkey/nanojit/NativeARM.cpp +1742 -0
- data/vendor/tracemonkey/nanojit/NativeARM.h +844 -0
- data/vendor/tracemonkey/nanojit/NativeSparc.cpp +1130 -0
- data/vendor/tracemonkey/nanojit/NativeSparc.h +948 -0
- data/vendor/tracemonkey/nanojit/NativeThumb.cpp +1322 -0
- data/vendor/tracemonkey/nanojit/NativeThumb.h +525 -0
- data/vendor/tracemonkey/nanojit/Nativei386.cpp +1748 -0
- data/vendor/tracemonkey/nanojit/Nativei386.h +857 -0
- data/vendor/tracemonkey/nanojit/RegAlloc.cpp +183 -0
- data/vendor/tracemonkey/nanojit/RegAlloc.h +95 -0
- data/vendor/tracemonkey/nanojit/TraceTreeDrawer.cpp +306 -0
- data/vendor/tracemonkey/nanojit/TraceTreeDrawer.h +88 -0
- data/vendor/tracemonkey/nanojit/avmplus.cpp +56 -0
- data/vendor/tracemonkey/nanojit/avmplus.h +1016 -0
- data/vendor/tracemonkey/nanojit/nanojit.h +253 -0
- data/vendor/tracemonkey/perfect.js +39 -0
- data/vendor/tracemonkey/plify_jsdhash.sed +35 -0
- data/vendor/tracemonkey/prmjtime.cpp +869 -0
- data/vendor/tracemonkey/prmjtime.h +103 -0
- data/vendor/tracemonkey/ref-config/AIX4.1.mk +65 -0
- data/vendor/tracemonkey/ref-config/AIX4.2.mk +64 -0
- data/vendor/tracemonkey/ref-config/AIX4.3.mk +65 -0
- data/vendor/tracemonkey/ref-config/Darwin.mk +85 -0
- data/vendor/tracemonkey/ref-config/Darwin1.3.mk +81 -0
- data/vendor/tracemonkey/ref-config/Darwin1.4.mk +41 -0
- data/vendor/tracemonkey/ref-config/Darwin5.2.mk +81 -0
- data/vendor/tracemonkey/ref-config/Darwin5.3.mk +81 -0
- data/vendor/tracemonkey/ref-config/Darwin64.mk +72 -0
- data/vendor/tracemonkey/ref-config/HP-UXB.10.10.mk +77 -0
- data/vendor/tracemonkey/ref-config/HP-UXB.10.20.mk +77 -0
- data/vendor/tracemonkey/ref-config/HP-UXB.11.00.mk +80 -0
- data/vendor/tracemonkey/ref-config/IRIX.mk +87 -0
- data/vendor/tracemonkey/ref-config/IRIX5.3.mk +44 -0
- data/vendor/tracemonkey/ref-config/IRIX6.1.mk +44 -0
- data/vendor/tracemonkey/ref-config/IRIX6.2.mk +44 -0
- data/vendor/tracemonkey/ref-config/IRIX6.3.mk +44 -0
- data/vendor/tracemonkey/ref-config/IRIX6.5.mk +44 -0
- data/vendor/tracemonkey/ref-config/Linux_All.mk +105 -0
- data/vendor/tracemonkey/ref-config/Mac_OS10.0.mk +82 -0
- data/vendor/tracemonkey/ref-config/OSF1V4.0.mk +72 -0
- data/vendor/tracemonkey/ref-config/OSF1V5.0.mk +69 -0
- data/vendor/tracemonkey/ref-config/SunOS4.1.4.mk +101 -0
- data/vendor/tracemonkey/ref-config/SunOS5.10.mk +50 -0
- data/vendor/tracemonkey/ref-config/SunOS5.3.mk +91 -0
- data/vendor/tracemonkey/ref-config/SunOS5.4.mk +92 -0
- data/vendor/tracemonkey/ref-config/SunOS5.5.1.mk +44 -0
- data/vendor/tracemonkey/ref-config/SunOS5.5.mk +87 -0
- data/vendor/tracemonkey/ref-config/SunOS5.6.mk +89 -0
- data/vendor/tracemonkey/ref-config/SunOS5.7.mk +44 -0
- data/vendor/tracemonkey/ref-config/SunOS5.8.mk +44 -0
- data/vendor/tracemonkey/ref-config/SunOS5.9.mk +44 -0
- data/vendor/tracemonkey/ref-config/WINNT4.0.mk +118 -0
- data/vendor/tracemonkey/ref-config/WINNT5.0.mk +118 -0
- data/vendor/tracemonkey/ref-config/WINNT5.1.mk +118 -0
- data/vendor/tracemonkey/ref-config/WINNT5.2.mk +118 -0
- data/vendor/tracemonkey/ref-config/WINNT6.0.mk +118 -0
- data/vendor/tracemonkey/ref-config/dgux.mk +64 -0
- data/vendor/tracemonkey/resource.h +15 -0
- data/vendor/tracemonkey/rules.mk +206 -0
- data/vendor/tracemonkey/shell/Makefile.in +72 -0
- data/vendor/tracemonkey/shell/js.cpp +4719 -0
- data/vendor/tracemonkey/t/3d-cube.js +337 -0
- data/vendor/tracemonkey/t/3d-morph.js +54 -0
- data/vendor/tracemonkey/t/3d-raytrace.js +441 -0
- data/vendor/tracemonkey/t/access-binary-trees.js +50 -0
- data/vendor/tracemonkey/t/access-fannkuch.js +66 -0
- data/vendor/tracemonkey/t/access-nbody.js +169 -0
- data/vendor/tracemonkey/t/access-nsieve.js +38 -0
- data/vendor/tracemonkey/t/bitops-3bit-bits-in-byte.js +32 -0
- data/vendor/tracemonkey/t/bitops-bits-in-byte.js +21 -0
- data/vendor/tracemonkey/t/bitops-bitwise-and.js +28 -0
- data/vendor/tracemonkey/t/bitops-nsieve-bits.js +32 -0
- data/vendor/tracemonkey/t/controlflow-recursive.js +25 -0
- data/vendor/tracemonkey/t/crypto-aes.js +422 -0
- data/vendor/tracemonkey/t/crypto-md5.js +286 -0
- data/vendor/tracemonkey/t/crypto-sha1.js +224 -0
- data/vendor/tracemonkey/t/date-format-tofte.js +299 -0
- data/vendor/tracemonkey/t/date-format-xparb.js +417 -0
- data/vendor/tracemonkey/t/math-cordic.js +95 -0
- data/vendor/tracemonkey/t/math-partial-sums.js +33 -0
- data/vendor/tracemonkey/t/math-spectral-norm.js +51 -0
- data/vendor/tracemonkey/t/regexp-dna.js +1712 -0
- data/vendor/tracemonkey/t/string-base64.js +135 -0
- data/vendor/tracemonkey/t/string-fasta.js +85 -0
- data/vendor/tracemonkey/t/string-tagcloud.js +265 -0
- data/vendor/tracemonkey/t/string-unpack-code.js +68 -0
- data/vendor/tracemonkey/t/string-validate-input.js +89 -0
- data/vendor/tracemonkey/time.sh +13 -0
- data/vendor/tracemonkey/trace-test.js +5564 -0
- data/vendor/tracemonkey/v8/base.js +187 -0
- data/vendor/tracemonkey/v8/crypto.js +1689 -0
- data/vendor/tracemonkey/v8/deltablue.js +880 -0
- data/vendor/tracemonkey/v8/earley-boyer.js +4682 -0
- data/vendor/tracemonkey/v8/raytrace.js +3418 -0
- data/vendor/tracemonkey/v8/richards.js +539 -0
- data/vendor/tracemonkey/v8/run-crypto.js +44 -0
- data/vendor/tracemonkey/v8/run-deltablue.js +44 -0
- data/vendor/tracemonkey/v8/run-earley-boyer.js +44 -0
- data/vendor/tracemonkey/v8/run-raytrace.js +44 -0
- data/vendor/tracemonkey/v8/run-richards.js +44 -0
- data/vendor/tracemonkey/v8/run.js +49 -0
- data/vendor/tracemonkey/vprof/readme.txt +93 -0
- data/vendor/tracemonkey/vprof/vprof.cpp +360 -0
- data/vendor/tracemonkey/vprof/vprof.h +245 -0
- data/vendor/tracemonkey/xpconnect/Makefile.in +67 -0
- data/vendor/tracemonkey/xpconnect/crashtests/117307-1.html +20 -0
- data/vendor/tracemonkey/xpconnect/crashtests/193710.html +11 -0
- data/vendor/tracemonkey/xpconnect/crashtests/290162-1.html +5 -0
- data/vendor/tracemonkey/xpconnect/crashtests/326615-1.html +16 -0
- data/vendor/tracemonkey/xpconnect/crashtests/328553-1.html +13 -0
- data/vendor/tracemonkey/xpconnect/crashtests/346258-1.html +12 -0
- data/vendor/tracemonkey/xpconnect/crashtests/346512-1-frame1.xhtml +16 -0
- data/vendor/tracemonkey/xpconnect/crashtests/346512-1-frame2.xhtml +15 -0
- data/vendor/tracemonkey/xpconnect/crashtests/346512-1.xhtml +30 -0
- data/vendor/tracemonkey/xpconnect/crashtests/382133-1.html +3 -0
- data/vendor/tracemonkey/xpconnect/crashtests/386680-1.html +22 -0
- data/vendor/tracemonkey/xpconnect/crashtests/394810-1.html +4 -0
- data/vendor/tracemonkey/xpconnect/crashtests/400349-1.html +20 -0
- data/vendor/tracemonkey/xpconnect/crashtests/403356-1.html +13 -0
- data/vendor/tracemonkey/xpconnect/crashtests/418139-1.svg +22 -0
- data/vendor/tracemonkey/xpconnect/crashtests/420513-1.html +11 -0
- data/vendor/tracemonkey/xpconnect/crashtests/453935-1.html +37 -0
- data/vendor/tracemonkey/xpconnect/crashtests/462926.html +12 -0
- data/vendor/tracemonkey/xpconnect/crashtests/468552-1.html +18 -0
- data/vendor/tracemonkey/xpconnect/crashtests/471366-1.html +12 -0
- data/vendor/tracemonkey/xpconnect/crashtests/475185-1.html +13 -0
- data/vendor/tracemonkey/xpconnect/crashtests/475291-1.html +14 -0
- data/vendor/tracemonkey/xpconnect/crashtests/503286-1.html +23 -0
- data/vendor/tracemonkey/xpconnect/crashtests/crashtests.list +21 -0
- data/vendor/tracemonkey/xpconnect/idl/Makefile.in +78 -0
- data/vendor/tracemonkey/xpconnect/idl/XPCIDispatch.idl +51 -0
- data/vendor/tracemonkey/xpconnect/idl/mozIJSSubScriptLoader.idl +64 -0
- data/vendor/tracemonkey/xpconnect/idl/nsIActiveXSecurityPolicy.idl +67 -0
- data/vendor/tracemonkey/xpconnect/idl/nsIDispatchSupport.idl +119 -0
- data/vendor/tracemonkey/xpconnect/idl/nsIJSContextStack.idl +85 -0
- data/vendor/tracemonkey/xpconnect/idl/nsIJSRuntimeService.idl +51 -0
- data/vendor/tracemonkey/xpconnect/idl/nsIScriptError.idl +102 -0
- data/vendor/tracemonkey/xpconnect/idl/nsIScriptableInterfaces.idl +67 -0
- data/vendor/tracemonkey/xpconnect/idl/nsIXPCScriptNotify.idl +66 -0
- data/vendor/tracemonkey/xpconnect/idl/nsIXPCScriptable.idl +183 -0
- data/vendor/tracemonkey/xpconnect/idl/nsIXPCSecurityManager.idl +114 -0
- data/vendor/tracemonkey/xpconnect/idl/nsIXPConnect.idl +819 -0
- data/vendor/tracemonkey/xpconnect/idl/xpcIJSModuleLoader.idl +95 -0
- data/vendor/tracemonkey/xpconnect/idl/xpcIJSWeakReference.idl +49 -0
- data/vendor/tracemonkey/xpconnect/idl/xpccomponents.idl +254 -0
- data/vendor/tracemonkey/xpconnect/idl/xpcexception.idl +66 -0
- data/vendor/tracemonkey/xpconnect/idl/xpcjsid.idl +83 -0
- data/vendor/tracemonkey/xpconnect/loader/ISO8601DateUtils.jsm +176 -0
- data/vendor/tracemonkey/xpconnect/loader/Makefile.in +63 -0
- data/vendor/tracemonkey/xpconnect/loader/XPCOMUtils.jsm +267 -0
- data/vendor/tracemonkey/xpconnect/loader/mozJSComponentLoader.cpp +1717 -0
- data/vendor/tracemonkey/xpconnect/loader/mozJSComponentLoader.h +172 -0
- data/vendor/tracemonkey/xpconnect/loader/mozJSLoaderConstructors.h +101 -0
- data/vendor/tracemonkey/xpconnect/loader/mozJSSubScriptLoader.cpp +360 -0
- data/vendor/tracemonkey/xpconnect/loader/mozJSSubScriptLoader.h +66 -0
- data/vendor/tracemonkey/xpconnect/public/Makefile.in +54 -0
- data/vendor/tracemonkey/xpconnect/public/nsAXPCNativeCallContext.h +89 -0
- data/vendor/tracemonkey/xpconnect/public/nsAutoJSValHolder.h +168 -0
- data/vendor/tracemonkey/xpconnect/public/xpc_map_end.h +327 -0
- data/vendor/tracemonkey/xpconnect/sample/Makefile.in +71 -0
- data/vendor/tracemonkey/xpconnect/sample/README +39 -0
- data/vendor/tracemonkey/xpconnect/sample/xpcsample1.cpp +337 -0
- data/vendor/tracemonkey/xpconnect/sample/xpcsample1.idl +82 -0
- data/vendor/tracemonkey/xpconnect/sample/xpcsample1.js +21 -0
- data/vendor/tracemonkey/xpconnect/shell/Makefile.in +106 -0
- data/vendor/tracemonkey/xpconnect/shell/jsshell.msg +50 -0
- data/vendor/tracemonkey/xpconnect/shell/xpcshell.cpp +1817 -0
- data/vendor/tracemonkey/xpconnect/shell/xpcshellMacUtils.h +43 -0
- data/vendor/tracemonkey/xpconnect/shell/xpcshellMacUtils.mm +54 -0
- data/vendor/tracemonkey/xpconnect/src/Makefile.in +228 -0
- data/vendor/tracemonkey/xpconnect/src/README +3 -0
- data/vendor/tracemonkey/xpconnect/src/XPCCrossOriginWrapper.cpp +1186 -0
- data/vendor/tracemonkey/xpconnect/src/XPCDispConvert.cpp +593 -0
- data/vendor/tracemonkey/xpconnect/src/XPCDispInlines.h +667 -0
- data/vendor/tracemonkey/xpconnect/src/XPCDispInterface.cpp +383 -0
- data/vendor/tracemonkey/xpconnect/src/XPCDispObject.cpp +516 -0
- data/vendor/tracemonkey/xpconnect/src/XPCDispParamPropJSClass.cpp +223 -0
- data/vendor/tracemonkey/xpconnect/src/XPCDispParams.cpp +103 -0
- data/vendor/tracemonkey/xpconnect/src/XPCDispPrivate.h +1401 -0
- data/vendor/tracemonkey/xpconnect/src/XPCDispTearOff.cpp +547 -0
- data/vendor/tracemonkey/xpconnect/src/XPCDispTypeInfo.cpp +471 -0
- data/vendor/tracemonkey/xpconnect/src/XPCIDispatchClassInfo.cpp +139 -0
- data/vendor/tracemonkey/xpconnect/src/XPCIDispatchExtension.cpp +362 -0
- data/vendor/tracemonkey/xpconnect/src/XPCNativeWrapper.cpp +1350 -0
- data/vendor/tracemonkey/xpconnect/src/XPCNativeWrapper.h +88 -0
- data/vendor/tracemonkey/xpconnect/src/XPCSafeJSObjectWrapper.cpp +1148 -0
- data/vendor/tracemonkey/xpconnect/src/XPCSystemOnlyWrapper.cpp +718 -0
- data/vendor/tracemonkey/xpconnect/src/XPCWrapper.cpp +850 -0
- data/vendor/tracemonkey/xpconnect/src/XPCWrapper.h +394 -0
- data/vendor/tracemonkey/xpconnect/src/dom_quickstubs.qsconf +568 -0
- data/vendor/tracemonkey/xpconnect/src/nsDispatchSupport.cpp +348 -0
- data/vendor/tracemonkey/xpconnect/src/nsScriptError.cpp +201 -0
- data/vendor/tracemonkey/xpconnect/src/nsXPConnect.cpp +2609 -0
- data/vendor/tracemonkey/xpconnect/src/qsgen.py +1487 -0
- data/vendor/tracemonkey/xpconnect/src/xpc.msg +217 -0
- data/vendor/tracemonkey/xpconnect/src/xpcJSWeakReference.cpp +148 -0
- data/vendor/tracemonkey/xpconnect/src/xpcJSWeakReference.h +56 -0
- data/vendor/tracemonkey/xpconnect/src/xpccallcontext.cpp +579 -0
- data/vendor/tracemonkey/xpconnect/src/xpccomponents.cpp +4144 -0
- data/vendor/tracemonkey/xpconnect/src/xpccontext.cpp +115 -0
- data/vendor/tracemonkey/xpconnect/src/xpcconvert.cpp +2298 -0
- data/vendor/tracemonkey/xpconnect/src/xpcdebug.cpp +481 -0
- data/vendor/tracemonkey/xpconnect/src/xpcexception.cpp +502 -0
- data/vendor/tracemonkey/xpconnect/src/xpcforwards.h +114 -0
- data/vendor/tracemonkey/xpconnect/src/xpcinlines.h +772 -0
- data/vendor/tracemonkey/xpconnect/src/xpcjsid.cpp +1025 -0
- data/vendor/tracemonkey/xpconnect/src/xpcjsruntime.cpp +1342 -0
- data/vendor/tracemonkey/xpconnect/src/xpclog.cpp +128 -0
- data/vendor/tracemonkey/xpconnect/src/xpclog.h +101 -0
- data/vendor/tracemonkey/xpconnect/src/xpcmaps.cpp +761 -0
- data/vendor/tracemonkey/xpconnect/src/xpcmaps.h +713 -0
- data/vendor/tracemonkey/xpconnect/src/xpcmodule.cpp +136 -0
- data/vendor/tracemonkey/xpconnect/src/xpcprivate.h +4138 -0
- data/vendor/tracemonkey/xpconnect/src/xpcquickstubs.cpp +1128 -0
- data/vendor/tracemonkey/xpconnect/src/xpcquickstubs.h +480 -0
- data/vendor/tracemonkey/xpconnect/src/xpcruntimesvc.cpp +179 -0
- data/vendor/tracemonkey/xpconnect/src/xpcstack.cpp +342 -0
- data/vendor/tracemonkey/xpconnect/src/xpcstring.cpp +139 -0
- data/vendor/tracemonkey/xpconnect/src/xpcthreadcontext.cpp +599 -0
- data/vendor/tracemonkey/xpconnect/src/xpcthrower.cpp +399 -0
- data/vendor/tracemonkey/xpconnect/src/xpcvariant.cpp +850 -0
- data/vendor/tracemonkey/xpconnect/src/xpcwrappedjs.cpp +670 -0
- data/vendor/tracemonkey/xpconnect/src/xpcwrappedjsclass.cpp +2015 -0
- data/vendor/tracemonkey/xpconnect/src/xpcwrappednative.cpp +3482 -0
- data/vendor/tracemonkey/xpconnect/src/xpcwrappednativeinfo.cpp +945 -0
- data/vendor/tracemonkey/xpconnect/src/xpcwrappednativejsops.cpp +2003 -0
- data/vendor/tracemonkey/xpconnect/src/xpcwrappednativeproto.cpp +302 -0
- data/vendor/tracemonkey/xpconnect/src/xpcwrappednativescope.cpp +991 -0
- data/vendor/tracemonkey/xpconnect/tests/Makefile.in +75 -0
- data/vendor/tracemonkey/xpconnect/tests/TestXPC.cpp +785 -0
- data/vendor/tracemonkey/xpconnect/tests/chrome/Makefile.in +51 -0
- data/vendor/tracemonkey/xpconnect/tests/chrome/test_bug500931.xul +43 -0
- data/vendor/tracemonkey/xpconnect/tests/components/Makefile.in +85 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_array.cpp +388 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_attributes.cpp +305 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_calljs.cpp +135 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_child.cpp +225 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_const.cpp +76 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_domstring.cpp +118 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_echo.cpp +616 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_in.cpp +204 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_inout.cpp +171 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_module.cpp +77 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_multiple.cpp +554 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_noisy.cpp +154 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_out.cpp +335 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_overloaded.cpp +250 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_private.h +192 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_string.cpp +185 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_variant.cpp +355 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/StdAfx.cpp +12 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/StdAfx.h +28 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/XPCDispUtilities.h +28 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/XPCIDispatchTest.cpp +86 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/XPCIDispatchTest.def +9 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/XPCIDispatchTest.dsp +318 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/XPCIDispatchTest.dsw +29 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/XPCIDispatchTest.idl +454 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/XPCIDispatchTest.rc +145 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispSimple.cpp +44 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispSimple.h +56 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispSimple.rgs +23 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestArrays.cpp +221 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestArrays.h +53 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestArrays.rgs +23 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestMethods.cpp +699 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestMethods.h +138 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestMethods.rgs +23 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestNoIDispatch.cpp +23 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestNoIDispatch.h +41 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestNoIDispatch.rgs +23 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestProperties.cpp +256 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestProperties.h +88 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestProperties.rgs +23 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestScriptOff.cpp +23 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestScriptOff.h +43 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestScriptOff.rgs +23 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestScriptOn.cpp +29 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestScriptOn.h +45 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestScriptOn.rgs +23 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestWrappedJS.cpp +177 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestWrappedJS.h +50 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestWrappedJS.rgs +23 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/resource.h +36 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedCOM/Arrays/XPCIDispatchArrayTests.js +54 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedCOM/Attributes/XPCIDispatchAttributeTests.js +150 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedCOM/General/XPCIDispatchInstantiations.js +122 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedCOM/General/XPCStress.js +58 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedCOM/Methods/XPCIDispatchMethodTests.js +376 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedCOM/shell.js +377 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedJS/General/XPCIDispatchTestWrappedJS.js +76 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedJS/shell.js +377 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/exectests.cmd +1 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/jsDriver.pl +1288 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/Makefile.in +61 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/xpctest.idl +312 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/xpctest2.idl +51 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_attributes.idl +67 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_calljs.idl +59 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_const.idl +61 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_domstring.idl +59 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_in.idl +88 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_inout.idl +86 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_multiple.idl +77 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_out.idl +142 -0
- data/vendor/tracemonkey/xpconnect/tests/js/checkid.js +82 -0
- data/vendor/tracemonkey/xpconnect/tests/js/evaluate.js +311 -0
- data/vendor/tracemonkey/xpconnect/tests/js/exceptions-2.js +153 -0
- data/vendor/tracemonkey/xpconnect/tests/js/exceptions-3.js +194 -0
- data/vendor/tracemonkey/xpconnect/tests/js/exceptions-4.js +297 -0
- data/vendor/tracemonkey/xpconnect/tests/js/exceptions-5.js +343 -0
- data/vendor/tracemonkey/xpconnect/tests/js/exceptions.js +230 -0
- data/vendor/tracemonkey/xpconnect/tests/js/javascript.js +96 -0
- data/vendor/tracemonkey/xpconnect/tests/js/multiple-2.js +151 -0
- data/vendor/tracemonkey/xpconnect/tests/js/multiple-3.js +148 -0
- data/vendor/tracemonkey/xpconnect/tests/js/multiple-4.js +152 -0
- data/vendor/tracemonkey/xpconnect/tests/js/multiple.js +137 -0
- data/vendor/tracemonkey/xpconnect/tests/js/notscriptable.js +104 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/simpletest.js +36 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/speed.js +60 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/testxpc.js +464 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/threads.js +74 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/try.js +27 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_array.js +308 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_callcontext.js +68 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_echo.js +636 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_enum_and_sort.js +28 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_enum_constants.js +15 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_enum_create.js +200 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_exceptions.js +167 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_ids.js +135 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_observer.js +36 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_overloaded.js +14 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_primitives.js +141 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_propertybag.js +36 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_variant.js +339 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_variant_array.js +30 -0
- data/vendor/tracemonkey/xpconnect/tests/js/readonlyattributes.js +74 -0
- data/vendor/tracemonkey/xpconnect/tests/js/readwriteattributes.js +101 -0
- data/vendor/tracemonkey/xpconnect/tests/js/scriptable.js +120 -0
- data/vendor/tracemonkey/xpconnect/tests/js/testin.js +203 -0
- data/vendor/tracemonkey/xpconnect/tests/js/xpcfun.js +234 -0
- data/vendor/tracemonkey/xpconnect/tests/js/xpctest_primitives.js +200 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/Makefile.in +66 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/bug500931_helper.html +7 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/inner.html +7 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug361111.xul +29 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug384632.html +32 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug390488.html +65 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug393269.html +46 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug396851.html +43 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug428021.html +41 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug446584.html +49 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug448587.html +31 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug462428.html +42 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug478438.html +66 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug484107.html +100 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug484459.html +36 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug500691.html +28 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_wrappers.html +116 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/bogus_element_type.jsm +1 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/bogus_exports_type.jsm +1 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/bug451678_subscript.js +2 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/component_import.js +144 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/recursive_importA.jsm +44 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/recursive_importB.jsm +45 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/syntax_error.jsm +1 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/test_bogus_files.js +88 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/test_bug408412.js +51 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/test_bug451678.js +52 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/test_bug_442086.js +68 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/test_import.js +127 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/test_js_weak_references.js +63 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/test_recursive_import.js +62 -0
- data/vendor/tracemonkey/xpconnect/tools/Makefile.in +49 -0
- data/vendor/tracemonkey/xpconnect/tools/idl/Makefile.in +53 -0
- data/vendor/tracemonkey/xpconnect/tools/idl/nsIXPCToolsCompiler.idl +60 -0
- data/vendor/tracemonkey/xpconnect/tools/idl/nsIXPCToolsProfiler.idl +57 -0
- data/vendor/tracemonkey/xpconnect/tools/js/CompileJSFiles.js +28 -0
- data/vendor/tracemonkey/xpconnect/tools/js/ListJSFiles.js +18 -0
- data/vendor/tracemonkey/xpconnect/tools/src/Makefile.in +76 -0
- data/vendor/tracemonkey/xpconnect/tools/src/nsXPCToolsCompiler.cpp +161 -0
- data/vendor/tracemonkey/xpconnect/tools/src/nsXPCToolsModule.cpp +65 -0
- data/vendor/tracemonkey/xpconnect/tools/src/nsXPCToolsProfiler.cpp +370 -0
- data/vendor/tracemonkey/xpconnect/tools/src/xpctools_private.h +236 -0
- metadata +782 -107
- data/test/johnson/nodes/export_test.rb +0 -9
- data/test/johnson/nodes/import_test.rb +0 -13
- data/test/johnson/version_test.rb +0 -13
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
|
2
|
+
*
|
|
3
|
+
* ***** BEGIN LICENSE BLOCK *****
|
|
4
|
+
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
5
|
+
*
|
|
6
|
+
* The contents of this file are subject to the Mozilla Public License Version
|
|
7
|
+
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
8
|
+
* the License. You may obtain a copy of the License at
|
|
9
|
+
* http://www.mozilla.org/MPL/
|
|
10
|
+
*
|
|
11
|
+
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
13
|
+
* for the specific language governing rights and limitations under the
|
|
14
|
+
* License.
|
|
15
|
+
*
|
|
16
|
+
* The Original Code is Mozilla Communicator client code, released
|
|
17
|
+
* March 31, 1998.
|
|
18
|
+
*
|
|
19
|
+
* The Initial Developer of the Original Code is
|
|
20
|
+
* Netscape Communications Corporation.
|
|
21
|
+
* Portions created by the Initial Developer are Copyright (C) 1998
|
|
22
|
+
* the Initial Developer. All Rights Reserved.
|
|
23
|
+
*
|
|
24
|
+
* Contributor(s):
|
|
25
|
+
* John Bandhauer <jband@netscape.com> (original author)
|
|
26
|
+
*
|
|
27
|
+
* Alternatively, the contents of this file may be used under the terms of
|
|
28
|
+
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
|
29
|
+
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
30
|
+
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
31
|
+
* of those above. If you wish to allow use of your version of this file only
|
|
32
|
+
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
33
|
+
* use your version of this file under the terms of the MPL, indicate your
|
|
34
|
+
* decision by deleting the provisions above and replace them with the notice
|
|
35
|
+
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
36
|
+
* the provisions above, a recipient may use your version of this file under
|
|
37
|
+
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
38
|
+
*
|
|
39
|
+
* ***** END LICENSE BLOCK ***** */
|
|
40
|
+
|
|
41
|
+
/* Error Message definitions. */
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
/* xpconnect specific codes (from nsIXPConnect.h) */
|
|
45
|
+
|
|
46
|
+
XPC_MSG_DEF(NS_ERROR_XPC_NOT_ENOUGH_ARGS , "Not enough arguments")
|
|
47
|
+
XPC_MSG_DEF(NS_ERROR_XPC_NEED_OUT_OBJECT , "'Out' argument must be an object")
|
|
48
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CANT_SET_OUT_VAL , "Cannot set 'value' property of 'out' argument")
|
|
49
|
+
XPC_MSG_DEF(NS_ERROR_XPC_NATIVE_RETURNED_FAILURE , "Component returned failure code:")
|
|
50
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CANT_GET_INTERFACE_INFO , "Cannot find interface information")
|
|
51
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CANT_GET_PARAM_IFACE_INFO , "Cannot find interface information for parameter")
|
|
52
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CANT_GET_METHOD_INFO , "Cannot find method information")
|
|
53
|
+
XPC_MSG_DEF(NS_ERROR_XPC_UNEXPECTED , "Unexpected error in XPConnect")
|
|
54
|
+
XPC_MSG_DEF(NS_ERROR_XPC_BAD_CONVERT_JS , "Could not convert JavaScript argument")
|
|
55
|
+
XPC_MSG_DEF(NS_ERROR_XPC_BAD_CONVERT_NATIVE , "Could not convert Native argument")
|
|
56
|
+
XPC_MSG_DEF(NS_ERROR_XPC_BAD_CONVERT_JS_NULL_REF , "Could not convert JavaScript argument (NULL value cannot be used for a C++ reference type)")
|
|
57
|
+
XPC_MSG_DEF(NS_ERROR_XPC_BAD_OP_ON_WN_PROTO , "Illegal operation on WrappedNative prototype object")
|
|
58
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CANT_CONVERT_WN_TO_FUN , "Cannot convert WrappedNative to function")
|
|
59
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CANT_DEFINE_PROP_ON_WN , "Cannot define new property in a WrappedNative")
|
|
60
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CANT_WATCH_WN_STATIC , "Cannot place watchpoints on WrappedNative object static properties")
|
|
61
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CANT_EXPORT_WN_STATIC , "Cannot export a WrappedNative object's static properties")
|
|
62
|
+
XPC_MSG_DEF(NS_ERROR_XPC_SCRIPTABLE_CALL_FAILED , "nsIXPCScriptable::Call failed")
|
|
63
|
+
XPC_MSG_DEF(NS_ERROR_XPC_SCRIPTABLE_CTOR_FAILED , "nsIXPCScriptable::Construct failed")
|
|
64
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CANT_CALL_WO_SCRIPTABLE , "Cannot use wrapper as function unless it implements nsIXPCScriptable")
|
|
65
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CANT_CTOR_WO_SCRIPTABLE , "Cannot use wrapper as constructor unless it implements nsIXPCScriptable")
|
|
66
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CI_RETURNED_FAILURE , "ComponentManager::CreateInstance returned failure code:")
|
|
67
|
+
XPC_MSG_DEF(NS_ERROR_XPC_GS_RETURNED_FAILURE , "ServiceManager::GetService returned failure code:")
|
|
68
|
+
XPC_MSG_DEF(NS_ERROR_XPC_BAD_CID , "Invalid ClassID or ContractID")
|
|
69
|
+
XPC_MSG_DEF(NS_ERROR_XPC_BAD_IID , "Invalid InterfaceID")
|
|
70
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CANT_CREATE_WN , "Cannot create wrapper around native interface")
|
|
71
|
+
XPC_MSG_DEF(NS_ERROR_XPC_JS_THREW_EXCEPTION , "JavaScript component threw exception")
|
|
72
|
+
XPC_MSG_DEF(NS_ERROR_XPC_JS_THREW_NATIVE_OBJECT , "JavaScript component threw a native object that is not an exception")
|
|
73
|
+
XPC_MSG_DEF(NS_ERROR_XPC_JS_THREW_JS_OBJECT , "JavaScript component threw a JavaScript object")
|
|
74
|
+
XPC_MSG_DEF(NS_ERROR_XPC_JS_THREW_NULL , "JavaScript component threw a null value as an exception")
|
|
75
|
+
XPC_MSG_DEF(NS_ERROR_XPC_JS_THREW_STRING , "JavaScript component threw a string as an exception")
|
|
76
|
+
XPC_MSG_DEF(NS_ERROR_XPC_JS_THREW_NUMBER , "JavaScript component threw a number as an exception")
|
|
77
|
+
XPC_MSG_DEF(NS_ERROR_XPC_JAVASCRIPT_ERROR , "JavaScript component caused a JavaScript error")
|
|
78
|
+
XPC_MSG_DEF(NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS , "JavaScript component caused a JavaScript error (detailed report attached)")
|
|
79
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CANT_CONVERT_PRIMITIVE_TO_ARRAY, "Cannot convert primitive JavaScript value into an array")
|
|
80
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CANT_CONVERT_OBJECT_TO_ARRAY , "Cannot convert JavaScript object into an array")
|
|
81
|
+
XPC_MSG_DEF(NS_ERROR_XPC_NOT_ENOUGH_ELEMENTS_IN_ARRAY , "JavaScript Array does not have as many elements as indicated by size argument")
|
|
82
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CANT_GET_ARRAY_INFO , "Cannot find array information")
|
|
83
|
+
XPC_MSG_DEF(NS_ERROR_XPC_NOT_ENOUGH_CHARS_IN_STRING , "JavaScript String does not have as many characters as indicated by size argument")
|
|
84
|
+
XPC_MSG_DEF(NS_ERROR_XPC_SECURITY_MANAGER_VETO , "Security Manager vetoed action")
|
|
85
|
+
XPC_MSG_DEF(NS_ERROR_XPC_INTERFACE_NOT_SCRIPTABLE , "Failed to build a wrapper because the interface that was not declared [scriptable]")
|
|
86
|
+
XPC_MSG_DEF(NS_ERROR_XPC_INTERFACE_NOT_FROM_NSISUPPORTS , "Failed to build a wrapper because the interface does not inherit from nsISupports")
|
|
87
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CANT_GET_JSOBJECT_OF_DOM_OBJECT, "Cannot get JavaScript object for DOM object")
|
|
88
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CANT_SET_READ_ONLY_CONSTANT , "Property is a constant and cannot be changed")
|
|
89
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CANT_SET_READ_ONLY_ATTRIBUTE , "Property is a read only attribute and cannot be changed")
|
|
90
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CANT_SET_READ_ONLY_METHOD , "Property is an interface method and cannot be changed")
|
|
91
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CANT_ADD_PROP_TO_WRAPPED_NATIVE, "Cannot add property to WrappedNative object")
|
|
92
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CALL_TO_SCRIPTABLE_FAILED , "Call to nsIXPCScriptable interface for WrappedNative failed unexpecedly")
|
|
93
|
+
XPC_MSG_DEF(NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED , "JavaScript component does not have a method named:")
|
|
94
|
+
XPC_MSG_DEF(NS_ERROR_XPC_BAD_ID_STRING , "Bad ID string")
|
|
95
|
+
XPC_MSG_DEF(NS_ERROR_XPC_BAD_INITIALIZER_NAME , "Bad initializer name in Constructor - Component has no method with that name")
|
|
96
|
+
XPC_MSG_DEF(NS_ERROR_XPC_HAS_BEEN_SHUTDOWN , "Operation failed because the XPConnect subsystem has been shutdown")
|
|
97
|
+
XPC_MSG_DEF(NS_ERROR_XPC_CANT_MODIFY_PROP_ON_WN , "Cannot modify properties of a WrappedNative")
|
|
98
|
+
XPC_MSG_DEF(NS_ERROR_XPC_BAD_CONVERT_JS_ZERO_ISNOT_NULL , "Could not convert JavaScript argument - 0 was passed, expected object. Did you mean null?")
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
/* common global codes (from nsError.h) */
|
|
102
|
+
|
|
103
|
+
XPC_MSG_DEF(NS_OK , "Success")
|
|
104
|
+
XPC_MSG_DEF(NS_ERROR_NOT_INITIALIZED , "Component not initialized")
|
|
105
|
+
XPC_MSG_DEF(NS_ERROR_ALREADY_INITIALIZED , "Component already initialized")
|
|
106
|
+
XPC_MSG_DEF(NS_ERROR_NOT_IMPLEMENTED , "Method not implemented")
|
|
107
|
+
XPC_MSG_DEF(NS_NOINTERFACE , "Component does not have requested interface")
|
|
108
|
+
XPC_MSG_DEF(NS_ERROR_NO_INTERFACE , "Component does not have requested interface")
|
|
109
|
+
XPC_MSG_DEF(NS_ERROR_INVALID_POINTER , "Invalid pointer")
|
|
110
|
+
XPC_MSG_DEF(NS_ERROR_NULL_POINTER , "Null pointer")
|
|
111
|
+
XPC_MSG_DEF(NS_ERROR_ABORT , "Abort")
|
|
112
|
+
XPC_MSG_DEF(NS_ERROR_FAILURE , "Failure")
|
|
113
|
+
XPC_MSG_DEF(NS_ERROR_UNEXPECTED , "Unexpected error")
|
|
114
|
+
XPC_MSG_DEF(NS_ERROR_OUT_OF_MEMORY , "Out of Memory")
|
|
115
|
+
XPC_MSG_DEF(NS_ERROR_ILLEGAL_VALUE , "Illegal value")
|
|
116
|
+
XPC_MSG_DEF(NS_ERROR_INVALID_ARG , "Invalid argument")
|
|
117
|
+
XPC_MSG_DEF(NS_ERROR_NO_AGGREGATION , "Component does not support aggregation")
|
|
118
|
+
XPC_MSG_DEF(NS_ERROR_NOT_AVAILABLE , "Component is not available")
|
|
119
|
+
XPC_MSG_DEF(NS_ERROR_FACTORY_NOT_REGISTERED , "Factory not registered")
|
|
120
|
+
XPC_MSG_DEF(NS_ERROR_FACTORY_REGISTER_AGAIN , "Factory not registered (may be tried again)")
|
|
121
|
+
XPC_MSG_DEF(NS_ERROR_FACTORY_NOT_LOADED , "Factory not loaded")
|
|
122
|
+
XPC_MSG_DEF(NS_ERROR_FACTORY_NO_SIGNATURE_SUPPORT , "Factory does not support signatures")
|
|
123
|
+
XPC_MSG_DEF(NS_ERROR_FACTORY_EXISTS , "Factory already exists")
|
|
124
|
+
XPC_MSG_DEF(NS_ERROR_PROXY_INVALID_IN_PARAMETER , "Invalid input parameter in call to proxy")
|
|
125
|
+
XPC_MSG_DEF(NS_ERROR_PROXY_INVALID_OUT_PARAMETER , "Invalid output parameter in call to proxy")
|
|
126
|
+
|
|
127
|
+
/* added from nsError.h on Feb 28 2001... */
|
|
128
|
+
|
|
129
|
+
XPC_MSG_DEF(NS_BASE_STREAM_CLOSED , "Stream closed")
|
|
130
|
+
XPC_MSG_DEF(NS_BASE_STREAM_OSERROR , "Error from the operating system")
|
|
131
|
+
XPC_MSG_DEF(NS_BASE_STREAM_ILLEGAL_ARGS , "Illegal arguments")
|
|
132
|
+
XPC_MSG_DEF(NS_BASE_STREAM_NO_CONVERTER , "No converter for unichar streams")
|
|
133
|
+
XPC_MSG_DEF(NS_BASE_STREAM_BAD_CONVERSION , "Bad converter for unichar streams")
|
|
134
|
+
XPC_MSG_DEF(NS_BASE_STREAM_WOULD_BLOCK , "Stream would block")
|
|
135
|
+
|
|
136
|
+
XPC_MSG_DEF(NS_ERROR_FILE_UNRECOGNIZED_PATH , "File error: Unrecognized path")
|
|
137
|
+
XPC_MSG_DEF(NS_ERROR_FILE_UNRESOLVABLE_SYMLINK , "File error: Unresolvable symlink")
|
|
138
|
+
XPC_MSG_DEF(NS_ERROR_FILE_EXECUTION_FAILED , "File error: Execution failed")
|
|
139
|
+
XPC_MSG_DEF(NS_ERROR_FILE_UNKNOWN_TYPE , "File error: Unknown type")
|
|
140
|
+
XPC_MSG_DEF(NS_ERROR_FILE_DESTINATION_NOT_DIR , "File error: Destination not dir")
|
|
141
|
+
XPC_MSG_DEF(NS_ERROR_FILE_TARGET_DOES_NOT_EXIST , "File error: Target does not exist")
|
|
142
|
+
XPC_MSG_DEF(NS_ERROR_FILE_COPY_OR_MOVE_FAILED , "File error: Copy or move failed")
|
|
143
|
+
XPC_MSG_DEF(NS_ERROR_FILE_ALREADY_EXISTS , "File error: Already exists")
|
|
144
|
+
XPC_MSG_DEF(NS_ERROR_FILE_INVALID_PATH , "File error: Invalid path")
|
|
145
|
+
XPC_MSG_DEF(NS_ERROR_FILE_DISK_FULL , "File error: Disk full")
|
|
146
|
+
XPC_MSG_DEF(NS_ERROR_FILE_CORRUPTED , "File error: Corrupted")
|
|
147
|
+
XPC_MSG_DEF(NS_ERROR_FILE_NOT_DIRECTORY , "File error: Not directory")
|
|
148
|
+
XPC_MSG_DEF(NS_ERROR_FILE_IS_DIRECTORY , "File error: Is directory")
|
|
149
|
+
XPC_MSG_DEF(NS_ERROR_FILE_IS_LOCKED , "File error: Is locked")
|
|
150
|
+
XPC_MSG_DEF(NS_ERROR_FILE_TOO_BIG , "File error: Too big")
|
|
151
|
+
XPC_MSG_DEF(NS_ERROR_FILE_NO_DEVICE_SPACE , "File error: No device space")
|
|
152
|
+
XPC_MSG_DEF(NS_ERROR_FILE_NAME_TOO_LONG , "File error: Name too long")
|
|
153
|
+
XPC_MSG_DEF(NS_ERROR_FILE_NOT_FOUND , "File error: Not found")
|
|
154
|
+
XPC_MSG_DEF(NS_ERROR_FILE_READ_ONLY , "File error: Read only")
|
|
155
|
+
XPC_MSG_DEF(NS_ERROR_FILE_DIR_NOT_EMPTY , "File error: Dir not empty")
|
|
156
|
+
XPC_MSG_DEF(NS_ERROR_FILE_ACCESS_DENIED , "File error: Access denied")
|
|
157
|
+
|
|
158
|
+
/* added from nsError.h on Sept 6 2001... */
|
|
159
|
+
|
|
160
|
+
XPC_MSG_DEF(NS_ERROR_CANNOT_CONVERT_DATA , "Data conversion error")
|
|
161
|
+
XPC_MSG_DEF(NS_ERROR_OBJECT_IS_IMMUTABLE , "Can not modify immutable data container")
|
|
162
|
+
XPC_MSG_DEF(NS_ERROR_LOSS_OF_SIGNIFICANT_DATA , "Data conversion failed because significant data would be lost")
|
|
163
|
+
XPC_MSG_DEF(NS_SUCCESS_LOSS_OF_INSIGNIFICANT_DATA , "Data conversion succeeded but data was rounded to fit")
|
|
164
|
+
|
|
165
|
+
#ifdef XPC_IDISPATCH_SUPPORT
|
|
166
|
+
XPC_MSG_DEF(NS_ERROR_XPC_COM_UNKNOWN , "Unknown COM error occured")
|
|
167
|
+
XPC_MSG_DEF(NS_ERROR_XPC_COM_ERROR , "COM Error")
|
|
168
|
+
XPC_MSG_DEF(NS_ERROR_XPC_COM_INVALID_CLASS_ID , "Invalid class ID")
|
|
169
|
+
XPC_MSG_DEF(NS_ERROR_XPC_COM_CREATE_FAILED , "Unable to create an instance of the desired COM class")
|
|
170
|
+
XPC_MSG_DEF(NS_ERROR_XPC_IDISPATCH_NOT_ENABLED , "IDispatch support is not enabled")
|
|
171
|
+
#endif
|
|
172
|
+
|
|
173
|
+
/* network related codes (from nsNetError.h) */
|
|
174
|
+
|
|
175
|
+
XPC_MSG_DEF(NS_BINDING_FAILED , "The async request failed for some unknown reason")
|
|
176
|
+
XPC_MSG_DEF(NS_BINDING_ABORTED , "The async request failed because it was aborted by some user action")
|
|
177
|
+
XPC_MSG_DEF(NS_BINDING_REDIRECTED , "The async request has been redirected to a different async request")
|
|
178
|
+
XPC_MSG_DEF(NS_BINDING_RETARGETED , "The async request has been retargeted to a different handler")
|
|
179
|
+
XPC_MSG_DEF(NS_ERROR_MALFORMED_URI , "The URI is malformed")
|
|
180
|
+
XPC_MSG_DEF(NS_ERROR_UNKNOWN_PROTOCOL , "The URI scheme corresponds to an unknown protocol handler")
|
|
181
|
+
XPC_MSG_DEF(NS_ERROR_NO_CONTENT , "Channel opened successfully but no data will be returned")
|
|
182
|
+
XPC_MSG_DEF(NS_ERROR_IN_PROGRESS , "The requested action could not be completed while the object is busy")
|
|
183
|
+
XPC_MSG_DEF(NS_ERROR_ALREADY_OPENED , "Channel is already open")
|
|
184
|
+
XPC_MSG_DEF(NS_ERROR_INVALID_CONTENT_ENCODING , "The content encoding of the source document is incorrect")
|
|
185
|
+
XPC_MSG_DEF(NS_ERROR_ALREADY_CONNECTED , "The connection is already established")
|
|
186
|
+
XPC_MSG_DEF(NS_ERROR_NOT_CONNECTED , "The connection does not exist")
|
|
187
|
+
XPC_MSG_DEF(NS_ERROR_CONNECTION_REFUSED , "The connection was refused")
|
|
188
|
+
XPC_MSG_DEF(NS_ERROR_PROXY_CONNECTION_REFUSED , "The connection to the proxy server was refused")
|
|
189
|
+
XPC_MSG_DEF(NS_ERROR_NET_TIMEOUT , "The connection has timed out")
|
|
190
|
+
XPC_MSG_DEF(NS_ERROR_OFFLINE , "The requested action could not be completed in the offline state")
|
|
191
|
+
XPC_MSG_DEF(NS_ERROR_PORT_ACCESS_NOT_ALLOWED , "Establishing a connection to an unsafe or otherwise banned port was prohibited")
|
|
192
|
+
XPC_MSG_DEF(NS_ERROR_NET_RESET , "The connection was established, but no data was ever received")
|
|
193
|
+
XPC_MSG_DEF(NS_ERROR_NET_INTERRUPT , "The connection was established, but the data transfer was interrupted")
|
|
194
|
+
XPC_MSG_DEF(NS_ERROR_NOT_RESUMABLE , "This request is not resumable, but it was tried to resume it, or to request resume-specific data")
|
|
195
|
+
XPC_MSG_DEF(NS_ERROR_ENTITY_CHANGED , "It was attempted to resume the request, but the entity has changed in the meantime")
|
|
196
|
+
XPC_MSG_DEF(NS_ERROR_REDIRECT_LOOP , "The request failed as a result of a detected redirection loop")
|
|
197
|
+
XPC_MSG_DEF(NS_ERROR_UNSAFE_CONTENT_TYPE , "The request failed because the content type returned by the server was not a type expected by the channel")
|
|
198
|
+
XPC_MSG_DEF(NS_ERROR_FTP_LOGIN , "FTP error while logging in")
|
|
199
|
+
XPC_MSG_DEF(NS_ERROR_FTP_CWD , "FTP error while changing directory")
|
|
200
|
+
XPC_MSG_DEF(NS_ERROR_FTP_PASV , "FTP error while changing to passive mode")
|
|
201
|
+
XPC_MSG_DEF(NS_ERROR_FTP_PWD , "FTP error while retrieving current directory")
|
|
202
|
+
XPC_MSG_DEF(NS_ERROR_FTP_LIST , "FTP error while retrieving a directory listing")
|
|
203
|
+
XPC_MSG_DEF(NS_ERROR_UNKNOWN_HOST , "The lookup of the hostname failed")
|
|
204
|
+
XPC_MSG_DEF(NS_ERROR_UNKNOWN_PROXY_HOST , "The lookup of the proxy hostname failed")
|
|
205
|
+
XPC_MSG_DEF(NS_ERROR_UNKNOWN_SOCKET_TYPE , "The specified socket type does not exist")
|
|
206
|
+
XPC_MSG_DEF(NS_ERROR_SOCKET_CREATE_FAILED , "The specified socket type could not be created")
|
|
207
|
+
XPC_MSG_DEF(NS_ERROR_CACHE_KEY_NOT_FOUND , "Cache key could not be found")
|
|
208
|
+
XPC_MSG_DEF(NS_ERROR_CACHE_DATA_IS_STREAM , "Cache data is a stream")
|
|
209
|
+
XPC_MSG_DEF(NS_ERROR_CACHE_DATA_IS_NOT_STREAM , "Cache data is not a stream")
|
|
210
|
+
XPC_MSG_DEF(NS_ERROR_CACHE_WAIT_FOR_VALIDATION , "Cache entry exists but needs to be validated first")
|
|
211
|
+
XPC_MSG_DEF(NS_ERROR_CACHE_ENTRY_DOOMED , "Cache entry has been doomed")
|
|
212
|
+
XPC_MSG_DEF(NS_ERROR_CACHE_READ_ACCESS_DENIED , "Read access to cache denied")
|
|
213
|
+
XPC_MSG_DEF(NS_ERROR_CACHE_WRITE_ACCESS_DENIED , "Write access to cache denied")
|
|
214
|
+
XPC_MSG_DEF(NS_ERROR_CACHE_IN_USE , "Cache is currently in use")
|
|
215
|
+
XPC_MSG_DEF(NS_ERROR_DOCUMENT_NOT_CACHED , "Document does not exist in cache")
|
|
216
|
+
XPC_MSG_DEF(NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS , "The requested number of domain levels exceeds those present in the host string")
|
|
217
|
+
XPC_MSG_DEF(NS_ERROR_HOST_IS_IP_ADDRESS , "The host string is an IP address")
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/* ***** BEGIN LICENSE BLOCK *****
|
|
2
|
+
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
3
|
+
*
|
|
4
|
+
* The contents of this file are subject to the Mozilla Public License Version
|
|
5
|
+
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
6
|
+
* the License. You may obtain a copy of the License at
|
|
7
|
+
* http://www.mozilla.org/MPL/
|
|
8
|
+
*
|
|
9
|
+
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
10
|
+
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
11
|
+
* for the specific language governing rights and limitations under the
|
|
12
|
+
* License.
|
|
13
|
+
*
|
|
14
|
+
* The Original Code is Mozilla code.
|
|
15
|
+
*
|
|
16
|
+
* The Initial Developer of the Original Code is Alex Fritze.
|
|
17
|
+
* Portions created by the Initial Developer are Copyright (C) 2004
|
|
18
|
+
* the Initial Developer. All Rights Reserved.
|
|
19
|
+
*
|
|
20
|
+
* Contributor(s):
|
|
21
|
+
* Alex Fritze <alex@croczilla.com> (original author)
|
|
22
|
+
*
|
|
23
|
+
* Alternatively, the contents of this file may be used under the terms of
|
|
24
|
+
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
|
25
|
+
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
26
|
+
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
27
|
+
* of those above. If you wish to allow use of your version of this file only
|
|
28
|
+
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
29
|
+
* use your version of this file under the terms of the MPL, indicate your
|
|
30
|
+
* decision by deleting the provisions above and replace them with the notice
|
|
31
|
+
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
32
|
+
* the provisions above, a recipient may use your version of this file under
|
|
33
|
+
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
34
|
+
*
|
|
35
|
+
* ***** END LICENSE BLOCK ***** */
|
|
36
|
+
|
|
37
|
+
#include "xpcJSWeakReference.h"
|
|
38
|
+
#include "xpcprivate.h"
|
|
39
|
+
|
|
40
|
+
xpcJSWeakReference::xpcJSWeakReference()
|
|
41
|
+
{
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
NS_IMPL_ISUPPORTS1(xpcJSWeakReference, xpcIJSWeakReference)
|
|
45
|
+
|
|
46
|
+
nsresult xpcJSWeakReference::Init()
|
|
47
|
+
{
|
|
48
|
+
nsresult rv;
|
|
49
|
+
|
|
50
|
+
nsXPConnect* xpc = nsXPConnect::GetXPConnect();
|
|
51
|
+
if (!xpc) return NS_ERROR_UNEXPECTED;
|
|
52
|
+
|
|
53
|
+
nsAXPCNativeCallContext *cc = nsnull;
|
|
54
|
+
rv = xpc->GetCurrentNativeCallContext(&cc);
|
|
55
|
+
NS_ENSURE_SUCCESS(rv, rv);
|
|
56
|
+
|
|
57
|
+
JSContext *cx = nsnull;
|
|
58
|
+
rv = cc->GetJSContext(&cx);
|
|
59
|
+
NS_ENSURE_SUCCESS(rv, rv);
|
|
60
|
+
|
|
61
|
+
PRUint32 argc = 0;
|
|
62
|
+
rv = cc->GetArgc(&argc);
|
|
63
|
+
NS_ENSURE_SUCCESS(rv, rv);
|
|
64
|
+
|
|
65
|
+
if (argc != 1) return NS_ERROR_FAILURE;
|
|
66
|
+
|
|
67
|
+
jsval *argv = nsnull;
|
|
68
|
+
rv = cc->GetArgvPtr(&argv);
|
|
69
|
+
NS_ENSURE_SUCCESS(rv, rv);
|
|
70
|
+
|
|
71
|
+
JSAutoRequest ar(cx);
|
|
72
|
+
|
|
73
|
+
if (JSVAL_IS_NULL(argv[0])) return NS_ERROR_FAILURE;
|
|
74
|
+
|
|
75
|
+
JSObject *obj;
|
|
76
|
+
if (!JS_ValueToObject(cx, argv[0], &obj))
|
|
77
|
+
return NS_ERROR_FAILURE;
|
|
78
|
+
|
|
79
|
+
XPCCallContext ccx(NATIVE_CALLER, cx);
|
|
80
|
+
|
|
81
|
+
nsRefPtr<nsXPCWrappedJS> wrapped;
|
|
82
|
+
rv = nsXPCWrappedJS::GetNewOrUsed(ccx,
|
|
83
|
+
obj,
|
|
84
|
+
NS_GET_IID(nsISupports),
|
|
85
|
+
nsnull,
|
|
86
|
+
getter_AddRefs(wrapped));
|
|
87
|
+
if (!wrapped) {
|
|
88
|
+
NS_ERROR("can't get nsISupportsWeakReference wrapper for obj");
|
|
89
|
+
return rv;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return static_cast<nsISupportsWeakReference*>(wrapped)->
|
|
93
|
+
GetWeakReference(getter_AddRefs(mWrappedJSObject));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
NS_IMETHODIMP
|
|
97
|
+
xpcJSWeakReference::Get()
|
|
98
|
+
{
|
|
99
|
+
nsresult rv;
|
|
100
|
+
|
|
101
|
+
nsXPConnect* xpc = nsXPConnect::GetXPConnect();
|
|
102
|
+
if (!xpc)
|
|
103
|
+
return NS_ERROR_UNEXPECTED;
|
|
104
|
+
|
|
105
|
+
nsAXPCNativeCallContext* cc = nsnull;
|
|
106
|
+
rv = xpc->GetCurrentNativeCallContext(&cc);
|
|
107
|
+
NS_ENSURE_SUCCESS(rv, rv);
|
|
108
|
+
|
|
109
|
+
JSContext *cx;
|
|
110
|
+
cc->GetJSContext(&cx);
|
|
111
|
+
if (!cx)
|
|
112
|
+
return NS_ERROR_UNEXPECTED;
|
|
113
|
+
|
|
114
|
+
jsval *retval = nsnull;
|
|
115
|
+
cc->GetRetValPtr(&retval);
|
|
116
|
+
if (!retval)
|
|
117
|
+
return NS_ERROR_UNEXPECTED;
|
|
118
|
+
*retval = JSVAL_NULL;
|
|
119
|
+
|
|
120
|
+
nsCOMPtr<nsIXPConnectWrappedJS> wrappedObj;
|
|
121
|
+
|
|
122
|
+
if (mWrappedJSObject &&
|
|
123
|
+
NS_SUCCEEDED(mWrappedJSObject->QueryReferent(NS_GET_IID(nsIXPConnectWrappedJS), getter_AddRefs(wrappedObj))) &&
|
|
124
|
+
wrappedObj) {
|
|
125
|
+
JSObject *obj;
|
|
126
|
+
wrappedObj->GetJSObject(&obj);
|
|
127
|
+
if (obj)
|
|
128
|
+
{
|
|
129
|
+
// Most users of XPCWrappedJS don't need to worry about
|
|
130
|
+
// re-wrapping because things are implicitly rewrapped by
|
|
131
|
+
// xpcconvert. However, because we're doing this directly
|
|
132
|
+
// through the native call context, we need to call
|
|
133
|
+
// nsXPConnect::GetWrapperForObject. But it takes a lot of
|
|
134
|
+
// arguments! It turns out that the thisObject hook on XPConnect
|
|
135
|
+
// objects does the right thing though, so...
|
|
136
|
+
|
|
137
|
+
if (obj->map->ops->thisObject &&
|
|
138
|
+
!(obj = obj->map->ops->thisObject(cx, obj)))
|
|
139
|
+
{
|
|
140
|
+
return NS_ERROR_FAILURE;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
*retval = OBJECT_TO_JSVAL(obj);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return NS_OK;
|
|
148
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/* ***** BEGIN LICENSE BLOCK *****
|
|
2
|
+
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
3
|
+
*
|
|
4
|
+
* The contents of this file are subject to the Mozilla Public License Version
|
|
5
|
+
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
6
|
+
* the License. You may obtain a copy of the License at
|
|
7
|
+
* http://www.mozilla.org/MPL/
|
|
8
|
+
*
|
|
9
|
+
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
10
|
+
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
11
|
+
* for the specific language governing rights and limitations under the
|
|
12
|
+
* License.
|
|
13
|
+
*
|
|
14
|
+
* The Original Code is Mozilla code.
|
|
15
|
+
*
|
|
16
|
+
* The Initial Developer of the Original Code is Alex Fritze.
|
|
17
|
+
* Portions created by the Initial Developer are Copyright (C) 2004
|
|
18
|
+
* the Initial Developer. All Rights Reserved.
|
|
19
|
+
*
|
|
20
|
+
* Contributor(s):
|
|
21
|
+
* Alex Fritze <alex@croczilla.com> (original author)
|
|
22
|
+
*
|
|
23
|
+
* Alternatively, the contents of this file may be used under the terms of
|
|
24
|
+
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
|
25
|
+
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
26
|
+
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
27
|
+
* of those above. If you wish to allow use of your version of this file only
|
|
28
|
+
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
29
|
+
* use your version of this file under the terms of the MPL, indicate your
|
|
30
|
+
* decision by deleting the provisions above and replace them with the notice
|
|
31
|
+
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
32
|
+
* the provisions above, a recipient may use your version of this file under
|
|
33
|
+
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
34
|
+
*
|
|
35
|
+
* ***** END LICENSE BLOCK ***** */
|
|
36
|
+
|
|
37
|
+
#ifndef xpcjsweakreference_h___
|
|
38
|
+
#define xpcjsweakreference_h___
|
|
39
|
+
|
|
40
|
+
#include "xpcIJSWeakReference.h"
|
|
41
|
+
#include "nsIWeakReference.h"
|
|
42
|
+
|
|
43
|
+
class xpcJSWeakReference : public xpcIJSWeakReference
|
|
44
|
+
{
|
|
45
|
+
public:
|
|
46
|
+
xpcJSWeakReference();
|
|
47
|
+
nsresult Init();
|
|
48
|
+
|
|
49
|
+
NS_DECL_ISUPPORTS
|
|
50
|
+
NS_DECL_XPCIJSWEAKREFERENCE
|
|
51
|
+
|
|
52
|
+
private:
|
|
53
|
+
nsCOMPtr<nsIWeakReference> mWrappedJSObject;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
#endif // xpcjsweakreference_h___
|
|
@@ -0,0 +1,579 @@
|
|
|
1
|
+
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
|
2
|
+
*
|
|
3
|
+
* ***** BEGIN LICENSE BLOCK *****
|
|
4
|
+
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
5
|
+
*
|
|
6
|
+
* The contents of this file are subject to the Mozilla Public License Version
|
|
7
|
+
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
8
|
+
* the License. You may obtain a copy of the License at
|
|
9
|
+
* http://www.mozilla.org/MPL/
|
|
10
|
+
*
|
|
11
|
+
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
13
|
+
* for the specific language governing rights and limitations under the
|
|
14
|
+
* License.
|
|
15
|
+
*
|
|
16
|
+
* The Original Code is Mozilla Communicator client code, released
|
|
17
|
+
* March 31, 1998.
|
|
18
|
+
*
|
|
19
|
+
* The Initial Developer of the Original Code is
|
|
20
|
+
* Netscape Communications Corporation.
|
|
21
|
+
* Portions created by the Initial Developer are Copyright (C) 1998
|
|
22
|
+
* the Initial Developer. All Rights Reserved.
|
|
23
|
+
*
|
|
24
|
+
* Contributor(s):
|
|
25
|
+
* John Bandhauer <jband@netscape.com> (original author)
|
|
26
|
+
*
|
|
27
|
+
* Alternatively, the contents of this file may be used under the terms of
|
|
28
|
+
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
|
29
|
+
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
30
|
+
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
31
|
+
* of those above. If you wish to allow use of your version of this file only
|
|
32
|
+
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
33
|
+
* use your version of this file under the terms of the MPL, indicate your
|
|
34
|
+
* decision by deleting the provisions above and replace them with the notice
|
|
35
|
+
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
36
|
+
* the provisions above, a recipient may use your version of this file under
|
|
37
|
+
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
38
|
+
*
|
|
39
|
+
* ***** END LICENSE BLOCK ***** */
|
|
40
|
+
|
|
41
|
+
/* Call context. */
|
|
42
|
+
|
|
43
|
+
#include "xpcprivate.h"
|
|
44
|
+
|
|
45
|
+
XPCCallContext::XPCCallContext(XPCContext::LangType callerLanguage,
|
|
46
|
+
JSContext* cx /* = nsnull */,
|
|
47
|
+
JSObject* obj /* = nsnull */,
|
|
48
|
+
JSObject* funobj /* = nsnull */,
|
|
49
|
+
jsval name /* = 0 */,
|
|
50
|
+
uintN argc /* = NO_ARGS */,
|
|
51
|
+
jsval *argv /* = nsnull */,
|
|
52
|
+
jsval *rval /* = nsnull */)
|
|
53
|
+
: mState(INIT_FAILED),
|
|
54
|
+
mXPC(nsXPConnect::GetXPConnect()),
|
|
55
|
+
mThreadData(nsnull),
|
|
56
|
+
mXPCContext(nsnull),
|
|
57
|
+
mJSContext(cx),
|
|
58
|
+
mContextPopRequired(JS_FALSE),
|
|
59
|
+
mDestroyJSContextInDestructor(JS_FALSE),
|
|
60
|
+
mCallerLanguage(callerLanguage),
|
|
61
|
+
mCallee(nsnull)
|
|
62
|
+
{
|
|
63
|
+
// Mark our internal string wrappers as not used. Make sure we do
|
|
64
|
+
// this before any early returns, as the destructor will assert
|
|
65
|
+
// based on this.
|
|
66
|
+
StringWrapperEntry *se =
|
|
67
|
+
reinterpret_cast<StringWrapperEntry*>(&mStringWrapperData);
|
|
68
|
+
|
|
69
|
+
PRUint32 i;
|
|
70
|
+
for(i = 0; i < XPCCCX_STRING_CACHE_SIZE; ++i)
|
|
71
|
+
{
|
|
72
|
+
se[i].mInUse = PR_FALSE;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if(!mXPC)
|
|
76
|
+
return;
|
|
77
|
+
|
|
78
|
+
mThreadData = XPCPerThreadData::GetData(mJSContext);
|
|
79
|
+
|
|
80
|
+
if(!mThreadData)
|
|
81
|
+
return;
|
|
82
|
+
|
|
83
|
+
XPCJSContextStack* stack = mThreadData->GetJSContextStack();
|
|
84
|
+
JSContext* topJSContext;
|
|
85
|
+
|
|
86
|
+
if(!stack || NS_FAILED(stack->Peek(&topJSContext)))
|
|
87
|
+
{
|
|
88
|
+
// If we don't have a stack we're probably in shutdown.
|
|
89
|
+
NS_ASSERTION(!stack, "Bad, Peek failed!");
|
|
90
|
+
mJSContext = nsnull;
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
if(!mJSContext)
|
|
95
|
+
{
|
|
96
|
+
// This is slightly questionable. If called without an explicit
|
|
97
|
+
// JSContext (generally a call to a wrappedJS) we will use the JSContext
|
|
98
|
+
// on the top of the JSContext stack - if there is one - *before*
|
|
99
|
+
// falling back on the safe JSContext.
|
|
100
|
+
// This is good AND bad because it makes calls from JS -> native -> JS
|
|
101
|
+
// have JS stack 'continuity' for purposes of stack traces etc.
|
|
102
|
+
// Note: this *is* what the pre-XPCCallContext xpconnect did too.
|
|
103
|
+
|
|
104
|
+
if(topJSContext)
|
|
105
|
+
mJSContext = topJSContext;
|
|
106
|
+
else if(NS_FAILED(stack->GetSafeJSContext(&mJSContext)) || !mJSContext)
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Get into the request as early as we can to avoid problems with scanning
|
|
111
|
+
// callcontexts on other threads from within the gc callbacks.
|
|
112
|
+
|
|
113
|
+
if(mCallerLanguage == NATIVE_CALLER)
|
|
114
|
+
JS_BeginRequest(mJSContext);
|
|
115
|
+
|
|
116
|
+
if(topJSContext != mJSContext)
|
|
117
|
+
{
|
|
118
|
+
if(NS_FAILED(stack->Push(mJSContext)))
|
|
119
|
+
{
|
|
120
|
+
NS_ERROR("bad!");
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
mContextPopRequired = JS_TRUE;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
mXPCContext = XPCContext::GetXPCContext(mJSContext);
|
|
127
|
+
mPrevCallerLanguage = mXPCContext->SetCallingLangType(mCallerLanguage);
|
|
128
|
+
|
|
129
|
+
// hook into call context chain for our thread
|
|
130
|
+
mPrevCallContext = mThreadData->SetCallContext(this);
|
|
131
|
+
|
|
132
|
+
// We only need to addref xpconnect once so only do it if this is the first
|
|
133
|
+
// context in the chain.
|
|
134
|
+
if(!mPrevCallContext)
|
|
135
|
+
NS_ADDREF(mXPC);
|
|
136
|
+
|
|
137
|
+
mState = HAVE_CONTEXT;
|
|
138
|
+
|
|
139
|
+
if(!obj)
|
|
140
|
+
return;
|
|
141
|
+
|
|
142
|
+
mMethodIndex = 0xDEAD;
|
|
143
|
+
mOperandJSObject = obj;
|
|
144
|
+
|
|
145
|
+
mState = HAVE_OBJECT;
|
|
146
|
+
|
|
147
|
+
mTearOff = nsnull;
|
|
148
|
+
mWrapper = XPCWrappedNative::GetWrappedNativeOfJSObject(mJSContext, obj,
|
|
149
|
+
funobj,
|
|
150
|
+
&mCurrentJSObject,
|
|
151
|
+
&mTearOff);
|
|
152
|
+
if(!mWrapper)
|
|
153
|
+
return;
|
|
154
|
+
|
|
155
|
+
DEBUG_CheckWrapperThreadSafety(mWrapper);
|
|
156
|
+
|
|
157
|
+
mFlattenedJSObject = mWrapper->GetFlatJSObject();
|
|
158
|
+
|
|
159
|
+
if(mTearOff)
|
|
160
|
+
mScriptableInfo = nsnull;
|
|
161
|
+
else
|
|
162
|
+
mScriptableInfo = mWrapper->GetScriptableInfo();
|
|
163
|
+
|
|
164
|
+
if(name)
|
|
165
|
+
SetName(name);
|
|
166
|
+
|
|
167
|
+
if(argc != NO_ARGS)
|
|
168
|
+
SetArgsAndResultPtr(argc, argv, rval);
|
|
169
|
+
|
|
170
|
+
CHECK_STATE(HAVE_OBJECT);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
void
|
|
174
|
+
XPCCallContext::SetName(jsval name)
|
|
175
|
+
{
|
|
176
|
+
CHECK_STATE(HAVE_OBJECT);
|
|
177
|
+
|
|
178
|
+
mName = name;
|
|
179
|
+
|
|
180
|
+
#ifdef XPC_IDISPATCH_SUPPORT
|
|
181
|
+
mIDispatchMember = nsnull;
|
|
182
|
+
#endif
|
|
183
|
+
if(mTearOff)
|
|
184
|
+
{
|
|
185
|
+
mSet = nsnull;
|
|
186
|
+
mInterface = mTearOff->GetInterface();
|
|
187
|
+
mMember = mInterface->FindMember(name);
|
|
188
|
+
mStaticMemberIsLocal = JS_TRUE;
|
|
189
|
+
if(mMember && !mMember->IsConstant())
|
|
190
|
+
mMethodIndex = mMember->GetIndex();
|
|
191
|
+
}
|
|
192
|
+
else
|
|
193
|
+
{
|
|
194
|
+
mSet = mWrapper ? mWrapper->GetSet() : nsnull;
|
|
195
|
+
|
|
196
|
+
if(mSet &&
|
|
197
|
+
mSet->FindMember(name, &mMember, &mInterface,
|
|
198
|
+
mWrapper->HasProto() ?
|
|
199
|
+
mWrapper->GetProto()->GetSet() :
|
|
200
|
+
nsnull,
|
|
201
|
+
&mStaticMemberIsLocal))
|
|
202
|
+
{
|
|
203
|
+
if(mMember && !mMember->IsConstant())
|
|
204
|
+
mMethodIndex = mMember->GetIndex();
|
|
205
|
+
}
|
|
206
|
+
else
|
|
207
|
+
{
|
|
208
|
+
mMember = nsnull;
|
|
209
|
+
mInterface = nsnull;
|
|
210
|
+
mStaticMemberIsLocal = JS_FALSE;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
mState = HAVE_NAME;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
void
|
|
218
|
+
XPCCallContext::SetCallInfo(XPCNativeInterface* iface, XPCNativeMember* member,
|
|
219
|
+
JSBool isSetter)
|
|
220
|
+
{
|
|
221
|
+
CHECK_STATE(HAVE_CONTEXT);
|
|
222
|
+
|
|
223
|
+
// We are going straight to the method info and need not do a lookup
|
|
224
|
+
// by id.
|
|
225
|
+
|
|
226
|
+
// don't be tricked if method is called with wrong 'this'
|
|
227
|
+
if(mTearOff && mTearOff->GetInterface() != iface)
|
|
228
|
+
mTearOff = nsnull;
|
|
229
|
+
|
|
230
|
+
mSet = nsnull;
|
|
231
|
+
mInterface = iface;
|
|
232
|
+
mMember = member;
|
|
233
|
+
mMethodIndex = mMember->GetIndex() + (isSetter ? 1 : 0);
|
|
234
|
+
mName = mMember->GetName();
|
|
235
|
+
|
|
236
|
+
if(mState < HAVE_NAME)
|
|
237
|
+
mState = HAVE_NAME;
|
|
238
|
+
#ifdef XPC_IDISPATCH_SUPPORT
|
|
239
|
+
mIDispatchMember = nsnull;
|
|
240
|
+
#endif
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
void
|
|
244
|
+
XPCCallContext::SetArgsAndResultPtr(uintN argc,
|
|
245
|
+
jsval *argv,
|
|
246
|
+
jsval *rval)
|
|
247
|
+
{
|
|
248
|
+
CHECK_STATE(HAVE_OBJECT);
|
|
249
|
+
|
|
250
|
+
if(mState < HAVE_NAME)
|
|
251
|
+
{
|
|
252
|
+
mSet = nsnull;
|
|
253
|
+
mInterface = nsnull;
|
|
254
|
+
mMember = nsnull;
|
|
255
|
+
#ifdef XPC_IDISPATCH_SUPPORT
|
|
256
|
+
mIDispatchMember = nsnull;
|
|
257
|
+
#endif
|
|
258
|
+
mStaticMemberIsLocal = JS_FALSE;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
mArgc = argc;
|
|
262
|
+
mArgv = argv;
|
|
263
|
+
mRetVal = rval;
|
|
264
|
+
|
|
265
|
+
mReturnValueWasSet = JS_FALSE;
|
|
266
|
+
mState = HAVE_ARGS;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
nsresult
|
|
270
|
+
XPCCallContext::CanCallNow()
|
|
271
|
+
{
|
|
272
|
+
nsresult rv;
|
|
273
|
+
|
|
274
|
+
if(!HasInterfaceAndMember())
|
|
275
|
+
return NS_ERROR_UNEXPECTED;
|
|
276
|
+
if(mState < HAVE_ARGS)
|
|
277
|
+
return NS_ERROR_UNEXPECTED;
|
|
278
|
+
|
|
279
|
+
if(!mTearOff)
|
|
280
|
+
{
|
|
281
|
+
mTearOff = mWrapper->FindTearOff(*this, mInterface, JS_FALSE, &rv);
|
|
282
|
+
if(!mTearOff || mTearOff->GetInterface() != mInterface)
|
|
283
|
+
{
|
|
284
|
+
mTearOff = nsnull;
|
|
285
|
+
return NS_FAILED(rv) ? rv : NS_ERROR_UNEXPECTED;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
// Refresh in case FindTearOff extended the set
|
|
290
|
+
mSet = mWrapper->GetSet();
|
|
291
|
+
|
|
292
|
+
mState = READY_TO_CALL;
|
|
293
|
+
return NS_OK;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
void
|
|
297
|
+
XPCCallContext::SystemIsBeingShutDown()
|
|
298
|
+
{
|
|
299
|
+
// XXX This is pretty questionable since the per thread cleanup stuff
|
|
300
|
+
// can be making this call on one thread for call contexts on another
|
|
301
|
+
// thread.
|
|
302
|
+
NS_WARNING("Shutting Down XPConnect even through there is a live XPCCallContext");
|
|
303
|
+
mThreadData = nsnull;
|
|
304
|
+
mXPCContext = nsnull;
|
|
305
|
+
mState = SYSTEM_SHUTDOWN;
|
|
306
|
+
if(mPrevCallContext)
|
|
307
|
+
mPrevCallContext->SystemIsBeingShutDown();
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
XPCCallContext::~XPCCallContext()
|
|
311
|
+
{
|
|
312
|
+
// do cleanup...
|
|
313
|
+
|
|
314
|
+
PRBool shouldReleaseXPC = PR_FALSE;
|
|
315
|
+
|
|
316
|
+
if(mXPCContext)
|
|
317
|
+
{
|
|
318
|
+
mXPCContext->SetCallingLangType(mPrevCallerLanguage);
|
|
319
|
+
|
|
320
|
+
#ifdef DEBUG
|
|
321
|
+
XPCCallContext* old = mThreadData->SetCallContext(mPrevCallContext);
|
|
322
|
+
NS_ASSERTION(old == this, "bad pop from per thread data");
|
|
323
|
+
#else
|
|
324
|
+
(void) mThreadData->SetCallContext(mPrevCallContext);
|
|
325
|
+
#endif
|
|
326
|
+
|
|
327
|
+
shouldReleaseXPC = mPrevCallContext == nsnull;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
if(mContextPopRequired)
|
|
331
|
+
{
|
|
332
|
+
XPCJSContextStack* stack = mThreadData->GetJSContextStack();
|
|
333
|
+
NS_ASSERTION(stack, "bad!");
|
|
334
|
+
if(stack)
|
|
335
|
+
{
|
|
336
|
+
#ifdef DEBUG
|
|
337
|
+
JSContext* poppedCX;
|
|
338
|
+
nsresult rv = stack->Pop(&poppedCX);
|
|
339
|
+
NS_ASSERTION(NS_SUCCEEDED(rv) && poppedCX == mJSContext, "bad pop");
|
|
340
|
+
#else
|
|
341
|
+
(void) stack->Pop(nsnull);
|
|
342
|
+
#endif
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
if(mJSContext)
|
|
347
|
+
{
|
|
348
|
+
if(mCallerLanguage == NATIVE_CALLER)
|
|
349
|
+
JS_EndRequest(mJSContext);
|
|
350
|
+
|
|
351
|
+
if(mDestroyJSContextInDestructor)
|
|
352
|
+
{
|
|
353
|
+
#ifdef DEBUG_xpc_hacker
|
|
354
|
+
printf("!xpc - doing deferred destruction of JSContext @ %0x\n",
|
|
355
|
+
mJSContext);
|
|
356
|
+
#endif
|
|
357
|
+
NS_ASSERTION(!mThreadData->GetJSContextStack() ||
|
|
358
|
+
!mThreadData->GetJSContextStack()->
|
|
359
|
+
DEBUG_StackHasJSContext(mJSContext),
|
|
360
|
+
"JSContext still in threadjscontextstack!");
|
|
361
|
+
|
|
362
|
+
JS_DestroyContext(mJSContext);
|
|
363
|
+
}
|
|
364
|
+
else
|
|
365
|
+
{
|
|
366
|
+
// Don't clear newborns if JS frames (compilation or execution)
|
|
367
|
+
// are active! Doing so violates ancient invariants in the JS
|
|
368
|
+
// engine, and it's not necessary to fix JS component leaks.
|
|
369
|
+
if(!JS_IsRunning(mJSContext))
|
|
370
|
+
JS_ClearNewbornRoots(mJSContext);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
#ifdef DEBUG
|
|
375
|
+
{
|
|
376
|
+
StringWrapperEntry *se =
|
|
377
|
+
reinterpret_cast<StringWrapperEntry*>(&mStringWrapperData);
|
|
378
|
+
|
|
379
|
+
PRUint32 i;
|
|
380
|
+
for(i = 0; i < XPCCCX_STRING_CACHE_SIZE; ++i)
|
|
381
|
+
{
|
|
382
|
+
NS_ASSERTION(!se[i].mInUse, "Uh, string wrapper still in use!");
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
#endif
|
|
386
|
+
|
|
387
|
+
if(shouldReleaseXPC && mXPC)
|
|
388
|
+
NS_RELEASE(mXPC);
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
XPCReadableJSStringWrapper *
|
|
392
|
+
XPCCallContext::NewStringWrapper(PRUnichar *str, PRUint32 len)
|
|
393
|
+
{
|
|
394
|
+
StringWrapperEntry *se =
|
|
395
|
+
reinterpret_cast<StringWrapperEntry*>(&mStringWrapperData);
|
|
396
|
+
|
|
397
|
+
PRUint32 i;
|
|
398
|
+
for(i = 0; i < XPCCCX_STRING_CACHE_SIZE; ++i)
|
|
399
|
+
{
|
|
400
|
+
StringWrapperEntry& ent = se[i];
|
|
401
|
+
|
|
402
|
+
if(!ent.mInUse)
|
|
403
|
+
{
|
|
404
|
+
ent.mInUse = PR_TRUE;
|
|
405
|
+
|
|
406
|
+
// Construct the string using placement new.
|
|
407
|
+
|
|
408
|
+
return new (&ent.mString) XPCReadableJSStringWrapper(str, len);
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
// All our internal string wrappers are used, allocate a new string.
|
|
413
|
+
|
|
414
|
+
return new XPCReadableJSStringWrapper(str, len);
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
void
|
|
418
|
+
XPCCallContext::DeleteString(nsAString *string)
|
|
419
|
+
{
|
|
420
|
+
StringWrapperEntry *se =
|
|
421
|
+
reinterpret_cast<StringWrapperEntry*>(&mStringWrapperData);
|
|
422
|
+
|
|
423
|
+
PRUint32 i;
|
|
424
|
+
for(i = 0; i < XPCCCX_STRING_CACHE_SIZE; ++i)
|
|
425
|
+
{
|
|
426
|
+
StringWrapperEntry& ent = se[i];
|
|
427
|
+
if(string == &ent.mString)
|
|
428
|
+
{
|
|
429
|
+
// One of our internal strings is no longer in use, mark
|
|
430
|
+
// it as such and destroy the string.
|
|
431
|
+
|
|
432
|
+
ent.mInUse = PR_FALSE;
|
|
433
|
+
ent.mString.~XPCReadableJSStringWrapper();
|
|
434
|
+
|
|
435
|
+
return;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
// We're done with a string that's not one of our internal
|
|
440
|
+
// strings, delete it.
|
|
441
|
+
delete string;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
/* readonly attribute nsISupports Callee; */
|
|
445
|
+
NS_IMETHODIMP
|
|
446
|
+
XPCCallContext::GetCallee(nsISupports * *aCallee)
|
|
447
|
+
{
|
|
448
|
+
nsISupports* temp = mWrapper ? mWrapper->GetIdentityObject() : nsnull;
|
|
449
|
+
NS_IF_ADDREF(temp);
|
|
450
|
+
*aCallee = temp;
|
|
451
|
+
return NS_OK;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
/* readonly attribute PRUint16 CalleeMethodIndex; */
|
|
455
|
+
NS_IMETHODIMP
|
|
456
|
+
XPCCallContext::GetCalleeMethodIndex(PRUint16 *aCalleeMethodIndex)
|
|
457
|
+
{
|
|
458
|
+
*aCalleeMethodIndex = mMethodIndex;
|
|
459
|
+
return NS_OK;
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
/* readonly attribute nsIXPConnectWrappedNative CalleeWrapper; */
|
|
463
|
+
NS_IMETHODIMP
|
|
464
|
+
XPCCallContext::GetCalleeWrapper(nsIXPConnectWrappedNative * *aCalleeWrapper)
|
|
465
|
+
{
|
|
466
|
+
nsIXPConnectWrappedNative* temp = mWrapper;
|
|
467
|
+
NS_IF_ADDREF(temp);
|
|
468
|
+
*aCalleeWrapper = temp;
|
|
469
|
+
return NS_OK;
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
/* readonly attribute XPCNativeInterface CalleeInterface; */
|
|
473
|
+
NS_IMETHODIMP
|
|
474
|
+
XPCCallContext::GetCalleeInterface(nsIInterfaceInfo * *aCalleeInterface)
|
|
475
|
+
{
|
|
476
|
+
nsIInterfaceInfo* temp = mInterface->GetInterfaceInfo();
|
|
477
|
+
NS_IF_ADDREF(temp);
|
|
478
|
+
*aCalleeInterface = temp;
|
|
479
|
+
return NS_OK;
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
/* readonly attribute nsIClassInfo CalleeClassInfo; */
|
|
483
|
+
NS_IMETHODIMP
|
|
484
|
+
XPCCallContext::GetCalleeClassInfo(nsIClassInfo * *aCalleeClassInfo)
|
|
485
|
+
{
|
|
486
|
+
nsIClassInfo* temp = mWrapper ? mWrapper->GetClassInfo() : nsnull;
|
|
487
|
+
NS_IF_ADDREF(temp);
|
|
488
|
+
*aCalleeClassInfo = temp;
|
|
489
|
+
return NS_OK;
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
/* readonly attribute JSContextPtr JSContext; */
|
|
493
|
+
NS_IMETHODIMP
|
|
494
|
+
XPCCallContext::GetJSContext(JSContext * *aJSContext)
|
|
495
|
+
{
|
|
496
|
+
*aJSContext = mJSContext;
|
|
497
|
+
return NS_OK;
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
/* readonly attribute PRUint32 Argc; */
|
|
501
|
+
NS_IMETHODIMP
|
|
502
|
+
XPCCallContext::GetArgc(PRUint32 *aArgc)
|
|
503
|
+
{
|
|
504
|
+
*aArgc = (PRUint32) mArgc;
|
|
505
|
+
return NS_OK;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
/* readonly attribute JSValPtr ArgvPtr; */
|
|
509
|
+
NS_IMETHODIMP
|
|
510
|
+
XPCCallContext::GetArgvPtr(jsval * *aArgvPtr)
|
|
511
|
+
{
|
|
512
|
+
*aArgvPtr = mArgv;
|
|
513
|
+
return NS_OK;
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
/* readonly attribute JSValPtr RetValPtr; */
|
|
517
|
+
NS_IMETHODIMP
|
|
518
|
+
XPCCallContext::GetRetValPtr(jsval * *aRetValPtr)
|
|
519
|
+
{
|
|
520
|
+
*aRetValPtr = mRetVal;
|
|
521
|
+
return NS_OK;
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
/* attribute PRBool ReturnValueWasSet; */
|
|
525
|
+
NS_IMETHODIMP
|
|
526
|
+
XPCCallContext::GetReturnValueWasSet(PRBool *aReturnValueWasSet)
|
|
527
|
+
{
|
|
528
|
+
*aReturnValueWasSet = mReturnValueWasSet;
|
|
529
|
+
return NS_OK;
|
|
530
|
+
}
|
|
531
|
+
NS_IMETHODIMP
|
|
532
|
+
XPCCallContext::SetReturnValueWasSet(PRBool aReturnValueWasSet)
|
|
533
|
+
{
|
|
534
|
+
mReturnValueWasSet = aReturnValueWasSet;
|
|
535
|
+
return NS_OK;
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
#ifdef XPC_IDISPATCH_SUPPORT
|
|
539
|
+
|
|
540
|
+
void
|
|
541
|
+
XPCCallContext::SetIDispatchInfo(XPCNativeInterface* iface,
|
|
542
|
+
void * member)
|
|
543
|
+
{
|
|
544
|
+
CHECK_STATE(HAVE_CONTEXT);
|
|
545
|
+
|
|
546
|
+
// We are going straight to the method info and need not do a lookup
|
|
547
|
+
// by id.
|
|
548
|
+
|
|
549
|
+
// don't be tricked if method is called with wrong 'this'
|
|
550
|
+
if(mTearOff && mTearOff->GetInterface() != iface)
|
|
551
|
+
mTearOff = nsnull;
|
|
552
|
+
|
|
553
|
+
mSet = nsnull;
|
|
554
|
+
mInterface = iface;
|
|
555
|
+
mMember = nsnull;
|
|
556
|
+
mIDispatchMember = member;
|
|
557
|
+
mName = reinterpret_cast<XPCDispInterface::Member*>(member)->GetName();
|
|
558
|
+
|
|
559
|
+
if(mState < HAVE_NAME)
|
|
560
|
+
mState = HAVE_NAME;
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
#endif
|
|
564
|
+
|
|
565
|
+
NS_IMETHODIMP
|
|
566
|
+
XPCCallContext::GetPreviousCallContext(nsAXPCNativeCallContext **aResult)
|
|
567
|
+
{
|
|
568
|
+
NS_ENSURE_ARG_POINTER(aResult);
|
|
569
|
+
*aResult = GetPrevCallContext();
|
|
570
|
+
return NS_OK;
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
NS_IMETHODIMP
|
|
574
|
+
XPCCallContext::GetLanguage(PRUint16 *aResult)
|
|
575
|
+
{
|
|
576
|
+
NS_ENSURE_ARG_POINTER(aResult);
|
|
577
|
+
*aResult = GetCallerLanguage();
|
|
578
|
+
return NS_OK;
|
|
579
|
+
}
|