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,114 @@
|
|
|
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
|
+
/* Private forward declarations. */
|
|
42
|
+
|
|
43
|
+
#ifndef xpcforwards_h___
|
|
44
|
+
#define xpcforwards_h___
|
|
45
|
+
|
|
46
|
+
// forward declarations of interally used classes...
|
|
47
|
+
|
|
48
|
+
class nsXPConnect;
|
|
49
|
+
class XPCJSRuntime;
|
|
50
|
+
class XPCContext;
|
|
51
|
+
class XPCCallContext;
|
|
52
|
+
|
|
53
|
+
class XPCPerThreadData;
|
|
54
|
+
class XPCJSThrower;
|
|
55
|
+
class XPCJSStack;
|
|
56
|
+
|
|
57
|
+
class nsXPCWrappedJS;
|
|
58
|
+
class nsXPCWrappedJSClass;
|
|
59
|
+
|
|
60
|
+
class XPCNativeMember;
|
|
61
|
+
class XPCNativeInterface;
|
|
62
|
+
class XPCNativeSet;
|
|
63
|
+
|
|
64
|
+
class XPCWrappedNative;
|
|
65
|
+
class XPCWrappedNativeProto;
|
|
66
|
+
class XPCWrappedNativeTearOff;
|
|
67
|
+
class XPCNativeScriptableShared;
|
|
68
|
+
class XPCNativeScriptableInfo;
|
|
69
|
+
class XPCNativeScriptableCreateInfo;
|
|
70
|
+
|
|
71
|
+
class XPCTraceableVariant;
|
|
72
|
+
class XPCJSObjectHolder;
|
|
73
|
+
|
|
74
|
+
class JSObject2WrappedJSMap;
|
|
75
|
+
class Native2WrappedNativeMap;
|
|
76
|
+
class IID2WrappedJSClassMap;
|
|
77
|
+
class IID2NativeInterfaceMap;
|
|
78
|
+
class ClassInfo2NativeSetMap;
|
|
79
|
+
class ClassInfo2WrappedNativeProtoMap;
|
|
80
|
+
class NativeSetMap;
|
|
81
|
+
class IID2ThisTranslatorMap;
|
|
82
|
+
class XPCNativeScriptableSharedMap;
|
|
83
|
+
class XPCWrappedNativeProtoMap;
|
|
84
|
+
class XPCNativeWrapperMap;
|
|
85
|
+
class WrappedNative2WrapperMap;
|
|
86
|
+
|
|
87
|
+
class nsXPCComponents;
|
|
88
|
+
class nsXPCComponents_Interfaces;
|
|
89
|
+
class nsXPCComponents_InterfacesByID;
|
|
90
|
+
class nsXPCComponents_Classes;
|
|
91
|
+
class nsXPCComponents_ClassesByID;
|
|
92
|
+
class nsXPCComponents_Results;
|
|
93
|
+
class nsXPCComponents_ID;
|
|
94
|
+
class nsXPCComponents_Exception;
|
|
95
|
+
class nsXPCComponents_Constructor;
|
|
96
|
+
class nsXPCComponents_Utils;
|
|
97
|
+
class nsXPCConstructor;
|
|
98
|
+
|
|
99
|
+
class AutoMarkingPtr;
|
|
100
|
+
|
|
101
|
+
class xpcProperty;
|
|
102
|
+
class xpcPropertyBagEnumerator;
|
|
103
|
+
|
|
104
|
+
#ifdef XPC_IDISPATCH_SUPPORT
|
|
105
|
+
class XPCDispInterface;
|
|
106
|
+
struct IDispatch;
|
|
107
|
+
class XPCDispParams;
|
|
108
|
+
class XPCDispJSPropertyInfo;
|
|
109
|
+
class nsIXPConnectWrappedJS;
|
|
110
|
+
class XPCIDispatchExtension;
|
|
111
|
+
#endif
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
#endif /* xpcforwards_h___ */
|
|
@@ -0,0 +1,772 @@
|
|
|
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
|
+
/* private inline methods (#include'd by xpcprivate.h). */
|
|
42
|
+
|
|
43
|
+
#ifndef xpcinlines_h___
|
|
44
|
+
#define xpcinlines_h___
|
|
45
|
+
|
|
46
|
+
/***************************************************************************/
|
|
47
|
+
inline void
|
|
48
|
+
XPCJSRuntime::AddVariantRoot(XPCTraceableVariant* variant)
|
|
49
|
+
{
|
|
50
|
+
variant->AddToRootSet(GetJSRuntime(), &mVariantRoots);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
inline void
|
|
54
|
+
XPCJSRuntime::AddWrappedJSRoot(nsXPCWrappedJS* wrappedJS)
|
|
55
|
+
{
|
|
56
|
+
wrappedJS->AddToRootSet(GetJSRuntime(), &mWrappedJSRoots);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
inline void
|
|
60
|
+
XPCJSRuntime::AddObjectHolderRoot(XPCJSObjectHolder* holder)
|
|
61
|
+
{
|
|
62
|
+
holder->AddToRootSet(GetJSRuntime(), &mObjectHolderRoots);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/***************************************************************************/
|
|
66
|
+
|
|
67
|
+
inline JSBool
|
|
68
|
+
XPCCallContext::IsValid() const
|
|
69
|
+
{
|
|
70
|
+
return mState != INIT_FAILED;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
inline nsXPConnect*
|
|
74
|
+
XPCCallContext::GetXPConnect() const
|
|
75
|
+
{
|
|
76
|
+
CHECK_STATE(HAVE_CONTEXT);
|
|
77
|
+
return mXPC;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
inline XPCJSRuntime*
|
|
81
|
+
XPCCallContext::GetRuntime() const
|
|
82
|
+
{
|
|
83
|
+
CHECK_STATE(HAVE_CONTEXT);
|
|
84
|
+
return mXPCContext->GetRuntime();
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
inline XPCPerThreadData*
|
|
88
|
+
XPCCallContext::GetThreadData() const
|
|
89
|
+
{
|
|
90
|
+
CHECK_STATE(HAVE_CONTEXT);
|
|
91
|
+
return mThreadData;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
inline XPCContext*
|
|
95
|
+
XPCCallContext::GetXPCContext() const
|
|
96
|
+
{
|
|
97
|
+
CHECK_STATE(HAVE_CONTEXT);
|
|
98
|
+
return mXPCContext;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
inline JSContext*
|
|
102
|
+
XPCCallContext::GetJSContext() const
|
|
103
|
+
{
|
|
104
|
+
CHECK_STATE(HAVE_CONTEXT);
|
|
105
|
+
return mJSContext;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
inline JSContext*
|
|
109
|
+
XPCCallContext::GetSafeJSContext() const
|
|
110
|
+
{
|
|
111
|
+
CHECK_STATE(HAVE_CONTEXT);
|
|
112
|
+
JSContext* cx;
|
|
113
|
+
if(NS_SUCCEEDED(mThreadData->GetJSContextStack()->GetSafeJSContext(&cx)))
|
|
114
|
+
return cx;
|
|
115
|
+
return nsnull;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
inline JSBool
|
|
119
|
+
XPCCallContext::GetContextPopRequired() const
|
|
120
|
+
{
|
|
121
|
+
CHECK_STATE(HAVE_CONTEXT);
|
|
122
|
+
return mContextPopRequired;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
inline XPCContext::LangType
|
|
126
|
+
XPCCallContext::GetCallerLanguage() const
|
|
127
|
+
{
|
|
128
|
+
CHECK_STATE(HAVE_CONTEXT);
|
|
129
|
+
return mCallerLanguage;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
inline XPCContext::LangType
|
|
133
|
+
XPCCallContext::GetPrevCallerLanguage() const
|
|
134
|
+
{
|
|
135
|
+
CHECK_STATE(HAVE_CONTEXT);
|
|
136
|
+
return mPrevCallerLanguage;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
inline XPCCallContext*
|
|
140
|
+
XPCCallContext::GetPrevCallContext() const
|
|
141
|
+
{
|
|
142
|
+
CHECK_STATE(HAVE_CONTEXT);
|
|
143
|
+
return mPrevCallContext;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
inline JSObject*
|
|
147
|
+
XPCCallContext::GetOperandJSObject() const
|
|
148
|
+
{
|
|
149
|
+
CHECK_STATE(HAVE_OBJECT);
|
|
150
|
+
return mOperandJSObject;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
inline JSObject*
|
|
154
|
+
XPCCallContext::GetCurrentJSObject() const
|
|
155
|
+
{
|
|
156
|
+
CHECK_STATE(HAVE_OBJECT);
|
|
157
|
+
return mCurrentJSObject;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
inline JSObject*
|
|
161
|
+
XPCCallContext::GetFlattenedJSObject() const
|
|
162
|
+
{
|
|
163
|
+
CHECK_STATE(HAVE_OBJECT);
|
|
164
|
+
return mFlattenedJSObject;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
inline nsISupports*
|
|
168
|
+
XPCCallContext::GetIdentityObject() const
|
|
169
|
+
{
|
|
170
|
+
CHECK_STATE(HAVE_OBJECT);
|
|
171
|
+
return mWrapper->GetIdentityObject();
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
inline XPCWrappedNative*
|
|
175
|
+
XPCCallContext::GetWrapper() const
|
|
176
|
+
{
|
|
177
|
+
if(mState == INIT_FAILED)
|
|
178
|
+
return nsnull;
|
|
179
|
+
|
|
180
|
+
CHECK_STATE(HAVE_OBJECT);
|
|
181
|
+
return mWrapper;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
inline JSBool
|
|
185
|
+
XPCCallContext::CanGetTearOff() const
|
|
186
|
+
{
|
|
187
|
+
return mState >= HAVE_OBJECT;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
inline XPCWrappedNativeTearOff*
|
|
191
|
+
XPCCallContext::GetTearOff() const
|
|
192
|
+
{
|
|
193
|
+
CHECK_STATE(HAVE_OBJECT);
|
|
194
|
+
return mTearOff;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
inline XPCNativeScriptableInfo*
|
|
198
|
+
XPCCallContext::GetScriptableInfo() const
|
|
199
|
+
{
|
|
200
|
+
CHECK_STATE(HAVE_OBJECT);
|
|
201
|
+
return mScriptableInfo;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
inline JSBool
|
|
205
|
+
XPCCallContext::CanGetSet() const
|
|
206
|
+
{
|
|
207
|
+
return mState >= HAVE_NAME;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
inline XPCNativeSet*
|
|
211
|
+
XPCCallContext::GetSet() const
|
|
212
|
+
{
|
|
213
|
+
CHECK_STATE(HAVE_NAME);
|
|
214
|
+
return mSet;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
inline JSBool
|
|
218
|
+
XPCCallContext::CanGetInterface() const
|
|
219
|
+
{
|
|
220
|
+
return mState >= HAVE_NAME;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
inline XPCNativeInterface*
|
|
224
|
+
XPCCallContext::GetInterface() const
|
|
225
|
+
{
|
|
226
|
+
CHECK_STATE(HAVE_NAME);
|
|
227
|
+
return mInterface;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
inline XPCNativeMember*
|
|
231
|
+
XPCCallContext::GetMember() const
|
|
232
|
+
{
|
|
233
|
+
CHECK_STATE(HAVE_NAME);
|
|
234
|
+
return mMember;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
inline JSBool
|
|
238
|
+
XPCCallContext::HasInterfaceAndMember() const
|
|
239
|
+
{
|
|
240
|
+
return mState >= HAVE_NAME && mInterface && (mMember
|
|
241
|
+
#ifdef XPC_IDISPATCH_SUPPORT
|
|
242
|
+
|| mIDispatchMember
|
|
243
|
+
#endif
|
|
244
|
+
);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
inline jsval
|
|
248
|
+
XPCCallContext::GetName() const
|
|
249
|
+
{
|
|
250
|
+
CHECK_STATE(HAVE_NAME);
|
|
251
|
+
return mName;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
inline JSBool
|
|
255
|
+
XPCCallContext::GetStaticMemberIsLocal() const
|
|
256
|
+
{
|
|
257
|
+
CHECK_STATE(HAVE_NAME);
|
|
258
|
+
return mStaticMemberIsLocal;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
inline uintN
|
|
262
|
+
XPCCallContext::GetArgc() const
|
|
263
|
+
{
|
|
264
|
+
CHECK_STATE(READY_TO_CALL);
|
|
265
|
+
return mArgc;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
inline jsval*
|
|
269
|
+
XPCCallContext::GetArgv() const
|
|
270
|
+
{
|
|
271
|
+
CHECK_STATE(READY_TO_CALL);
|
|
272
|
+
return mArgv;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
inline jsval*
|
|
276
|
+
XPCCallContext::GetRetVal() const
|
|
277
|
+
{
|
|
278
|
+
CHECK_STATE(READY_TO_CALL);
|
|
279
|
+
return mRetVal;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
inline JSBool
|
|
283
|
+
XPCCallContext::GetReturnValueWasSet() const
|
|
284
|
+
{
|
|
285
|
+
CHECK_STATE(READY_TO_CALL);
|
|
286
|
+
return mReturnValueWasSet;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
inline void
|
|
290
|
+
XPCCallContext::SetRetVal(jsval val)
|
|
291
|
+
{
|
|
292
|
+
CHECK_STATE(HAVE_ARGS);
|
|
293
|
+
if(mRetVal)
|
|
294
|
+
*mRetVal = val;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
inline jsval
|
|
298
|
+
XPCCallContext::GetResolveName() const
|
|
299
|
+
{
|
|
300
|
+
CHECK_STATE(HAVE_CONTEXT);
|
|
301
|
+
return mThreadData->GetResolveName();
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
inline jsval
|
|
305
|
+
XPCCallContext::SetResolveName(jsval name)
|
|
306
|
+
{
|
|
307
|
+
CHECK_STATE(HAVE_CONTEXT);
|
|
308
|
+
return mThreadData->SetResolveName(name);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
inline XPCWrappedNative*
|
|
312
|
+
XPCCallContext::GetResolvingWrapper() const
|
|
313
|
+
{
|
|
314
|
+
CHECK_STATE(HAVE_OBJECT);
|
|
315
|
+
return mThreadData->GetResolvingWrapper();
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
inline XPCWrappedNative*
|
|
319
|
+
XPCCallContext::SetResolvingWrapper(XPCWrappedNative* w)
|
|
320
|
+
{
|
|
321
|
+
CHECK_STATE(HAVE_OBJECT);
|
|
322
|
+
return mThreadData->SetResolvingWrapper(w);
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
inline JSObject*
|
|
326
|
+
XPCCallContext::GetCallee() const
|
|
327
|
+
{
|
|
328
|
+
NS_ASSERTION(mCallerLanguage == NATIVE_CALLER,
|
|
329
|
+
"GetCallee() doesn't make sense");
|
|
330
|
+
return mCallee;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
inline void
|
|
334
|
+
XPCCallContext::SetCallee(JSObject* callee)
|
|
335
|
+
{
|
|
336
|
+
NS_ASSERTION(mCallerLanguage == NATIVE_CALLER,
|
|
337
|
+
"SetCallee() doesn't make sense");
|
|
338
|
+
mCallee = callee;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
inline PRUint16
|
|
342
|
+
XPCCallContext::GetMethodIndex() const
|
|
343
|
+
{
|
|
344
|
+
CHECK_STATE(HAVE_OBJECT);
|
|
345
|
+
return mMethodIndex;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
inline void
|
|
349
|
+
XPCCallContext::SetMethodIndex(PRUint16 index)
|
|
350
|
+
{
|
|
351
|
+
CHECK_STATE(HAVE_OBJECT);
|
|
352
|
+
mMethodIndex = index;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
inline JSBool
|
|
356
|
+
XPCCallContext::GetDestroyJSContextInDestructor() const
|
|
357
|
+
{
|
|
358
|
+
CHECK_STATE(HAVE_CONTEXT);
|
|
359
|
+
return mDestroyJSContextInDestructor;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
inline void
|
|
363
|
+
XPCCallContext::SetDestroyJSContextInDestructor(JSBool b)
|
|
364
|
+
{
|
|
365
|
+
CHECK_STATE(HAVE_CONTEXT);
|
|
366
|
+
mDestroyJSContextInDestructor = b;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
/***************************************************************************/
|
|
370
|
+
|
|
371
|
+
inline const nsIID*
|
|
372
|
+
XPCNativeInterface::GetIID() const
|
|
373
|
+
{
|
|
374
|
+
const nsIID* iid;
|
|
375
|
+
return NS_SUCCEEDED(mInfo->GetIIDShared(&iid)) ? iid : nsnull;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
inline const char*
|
|
379
|
+
XPCNativeInterface::GetNameString() const
|
|
380
|
+
{
|
|
381
|
+
const char* name;
|
|
382
|
+
return NS_SUCCEEDED(mInfo->GetNameShared(&name)) ? name : nsnull;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
inline XPCNativeMember*
|
|
386
|
+
XPCNativeInterface::FindMember(jsval name) const
|
|
387
|
+
{
|
|
388
|
+
const XPCNativeMember* member = mMembers;
|
|
389
|
+
for(int i = (int) mMemberCount; i > 0; i--, member++)
|
|
390
|
+
if(member->GetName() == name)
|
|
391
|
+
return const_cast<XPCNativeMember*>(member);
|
|
392
|
+
return nsnull;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
inline JSBool
|
|
396
|
+
XPCNativeInterface::HasAncestor(const nsIID* iid) const
|
|
397
|
+
{
|
|
398
|
+
PRBool found = PR_FALSE;
|
|
399
|
+
mInfo->HasAncestor(iid, &found);
|
|
400
|
+
return found;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
inline void
|
|
404
|
+
XPCNativeInterface::DealWithDyingGCThings(JSContext* cx, XPCJSRuntime* rt)
|
|
405
|
+
{
|
|
406
|
+
XPCNativeMember* member = mMembers;
|
|
407
|
+
for(int i = (int) mMemberCount; i > 0; i--, member++)
|
|
408
|
+
member->DealWithDyingGCThings(cx, rt);
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
/***************************************************************************/
|
|
412
|
+
|
|
413
|
+
inline JSBool
|
|
414
|
+
XPCNativeSet::FindMember(jsval name, XPCNativeMember** pMember,
|
|
415
|
+
PRUint16* pInterfaceIndex) const
|
|
416
|
+
{
|
|
417
|
+
XPCNativeInterface* const * iface;
|
|
418
|
+
int count = (int) mInterfaceCount;
|
|
419
|
+
int i;
|
|
420
|
+
|
|
421
|
+
// look for interface names first
|
|
422
|
+
|
|
423
|
+
for(i = 0, iface = mInterfaces; i < count; i++, iface++)
|
|
424
|
+
{
|
|
425
|
+
if(name == (*iface)->GetName())
|
|
426
|
+
{
|
|
427
|
+
if(pMember)
|
|
428
|
+
*pMember = nsnull;
|
|
429
|
+
if(pInterfaceIndex)
|
|
430
|
+
*pInterfaceIndex = (PRUint16) i;
|
|
431
|
+
return JS_TRUE;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
// look for method names
|
|
436
|
+
for(i = 0, iface = mInterfaces; i < count; i++, iface++)
|
|
437
|
+
{
|
|
438
|
+
XPCNativeMember* member = (*iface)->FindMember(name);
|
|
439
|
+
if(member)
|
|
440
|
+
{
|
|
441
|
+
if(pMember)
|
|
442
|
+
*pMember = member;
|
|
443
|
+
if(pInterfaceIndex)
|
|
444
|
+
*pInterfaceIndex = (PRUint16) i;
|
|
445
|
+
return JS_TRUE;
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
return JS_FALSE;
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
inline JSBool
|
|
452
|
+
XPCNativeSet::FindMember(jsval name, XPCNativeMember** pMember,
|
|
453
|
+
XPCNativeInterface** pInterface) const
|
|
454
|
+
{
|
|
455
|
+
PRUint16 index;
|
|
456
|
+
if(!FindMember(name, pMember, &index))
|
|
457
|
+
return JS_FALSE;
|
|
458
|
+
*pInterface = mInterfaces[index];
|
|
459
|
+
return JS_TRUE;
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
inline JSBool
|
|
463
|
+
XPCNativeSet::FindMember(jsval name,
|
|
464
|
+
XPCNativeMember** pMember,
|
|
465
|
+
XPCNativeInterface** pInterface,
|
|
466
|
+
XPCNativeSet* protoSet,
|
|
467
|
+
JSBool* pIsLocal) const
|
|
468
|
+
{
|
|
469
|
+
XPCNativeMember* Member;
|
|
470
|
+
XPCNativeInterface* Interface;
|
|
471
|
+
XPCNativeMember* protoMember;
|
|
472
|
+
|
|
473
|
+
if(!FindMember(name, &Member, &Interface))
|
|
474
|
+
return JS_FALSE;
|
|
475
|
+
|
|
476
|
+
*pMember = Member;
|
|
477
|
+
*pInterface = Interface;
|
|
478
|
+
|
|
479
|
+
*pIsLocal =
|
|
480
|
+
!Member ||
|
|
481
|
+
!protoSet ||
|
|
482
|
+
(protoSet != this &&
|
|
483
|
+
!protoSet->MatchesSetUpToInterface(this, Interface) &&
|
|
484
|
+
(!protoSet->FindMember(name, &protoMember, (PRUint16*)nsnull) ||
|
|
485
|
+
protoMember != Member));
|
|
486
|
+
|
|
487
|
+
return JS_TRUE;
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
inline XPCNativeInterface*
|
|
491
|
+
XPCNativeSet::FindNamedInterface(jsval name) const
|
|
492
|
+
{
|
|
493
|
+
XPCNativeInterface* const * pp = mInterfaces;
|
|
494
|
+
|
|
495
|
+
for(int i = (int) mInterfaceCount; i > 0; i--, pp++)
|
|
496
|
+
{
|
|
497
|
+
XPCNativeInterface* iface = *pp;
|
|
498
|
+
|
|
499
|
+
if(name == iface->GetName())
|
|
500
|
+
return iface;
|
|
501
|
+
}
|
|
502
|
+
return nsnull;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
inline XPCNativeInterface*
|
|
506
|
+
XPCNativeSet::FindInterfaceWithIID(const nsIID& iid) const
|
|
507
|
+
{
|
|
508
|
+
XPCNativeInterface* const * pp = mInterfaces;
|
|
509
|
+
|
|
510
|
+
for(int i = (int) mInterfaceCount; i > 0; i--, pp++)
|
|
511
|
+
{
|
|
512
|
+
XPCNativeInterface* iface = *pp;
|
|
513
|
+
|
|
514
|
+
if(iface->GetIID()->Equals(iid))
|
|
515
|
+
return iface;
|
|
516
|
+
}
|
|
517
|
+
return nsnull;
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
inline JSBool
|
|
521
|
+
XPCNativeSet::HasInterface(XPCNativeInterface* aInterface) const
|
|
522
|
+
{
|
|
523
|
+
XPCNativeInterface* const * pp = mInterfaces;
|
|
524
|
+
|
|
525
|
+
for(int i = (int) mInterfaceCount; i > 0; i--, pp++)
|
|
526
|
+
{
|
|
527
|
+
if(aInterface == *pp)
|
|
528
|
+
return JS_TRUE;
|
|
529
|
+
}
|
|
530
|
+
return JS_FALSE;
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
inline JSBool
|
|
534
|
+
XPCNativeSet::HasInterfaceWithAncestor(XPCNativeInterface* aInterface) const
|
|
535
|
+
{
|
|
536
|
+
const nsIID* iid = aInterface->GetIID();
|
|
537
|
+
|
|
538
|
+
// We can safely skip the first interface which is *always* nsISupports.
|
|
539
|
+
XPCNativeInterface* const * pp = mInterfaces+1;
|
|
540
|
+
for(int i = (int) mInterfaceCount; i > 1; i--, pp++)
|
|
541
|
+
if((*pp)->HasAncestor(iid))
|
|
542
|
+
return JS_TRUE;
|
|
543
|
+
|
|
544
|
+
// This is rare, so check last.
|
|
545
|
+
if(iid == &NS_GET_IID(nsISupports))
|
|
546
|
+
return PR_TRUE;
|
|
547
|
+
|
|
548
|
+
return JS_FALSE;
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
inline JSBool
|
|
552
|
+
XPCNativeSet::MatchesSetUpToInterface(const XPCNativeSet* other,
|
|
553
|
+
XPCNativeInterface* iface) const
|
|
554
|
+
{
|
|
555
|
+
int count = JS_MIN((int)mInterfaceCount, (int)other->mInterfaceCount);
|
|
556
|
+
|
|
557
|
+
XPCNativeInterface* const * pp1 = mInterfaces;
|
|
558
|
+
XPCNativeInterface* const * pp2 = other->mInterfaces;
|
|
559
|
+
|
|
560
|
+
for(int i = (int) count; i > 0; i--, pp1++, pp2++)
|
|
561
|
+
{
|
|
562
|
+
XPCNativeInterface* cur = (*pp1);
|
|
563
|
+
if(cur != (*pp2))
|
|
564
|
+
return JS_FALSE;
|
|
565
|
+
if(cur == iface)
|
|
566
|
+
return JS_TRUE;
|
|
567
|
+
}
|
|
568
|
+
return JS_FALSE;
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
inline void XPCNativeSet::Mark()
|
|
572
|
+
{
|
|
573
|
+
if(IsMarked())
|
|
574
|
+
return;
|
|
575
|
+
|
|
576
|
+
XPCNativeInterface* const * pp = mInterfaces;
|
|
577
|
+
|
|
578
|
+
for(int i = (int) mInterfaceCount; i > 0; i--, pp++)
|
|
579
|
+
(*pp)->Mark();
|
|
580
|
+
|
|
581
|
+
MarkSelfOnly();
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
#ifdef DEBUG
|
|
585
|
+
inline void XPCNativeSet::ASSERT_NotMarked()
|
|
586
|
+
{
|
|
587
|
+
NS_ASSERTION(!IsMarked(), "bad");
|
|
588
|
+
|
|
589
|
+
XPCNativeInterface* const * pp = mInterfaces;
|
|
590
|
+
|
|
591
|
+
for(int i = (int) mInterfaceCount; i > 0; i--, pp++)
|
|
592
|
+
NS_ASSERTION(!(*pp)->IsMarked(), "bad");
|
|
593
|
+
}
|
|
594
|
+
#endif
|
|
595
|
+
|
|
596
|
+
/***************************************************************************/
|
|
597
|
+
|
|
598
|
+
inline
|
|
599
|
+
JSObject* XPCWrappedNativeTearOff::GetJSObject() const
|
|
600
|
+
{
|
|
601
|
+
#ifdef XPC_IDISPATCH_SUPPORT
|
|
602
|
+
if(IsIDispatch())
|
|
603
|
+
{
|
|
604
|
+
XPCDispInterface * iface = GetIDispatchInfo();
|
|
605
|
+
return iface ? iface->GetJSObject() : nsnull;
|
|
606
|
+
}
|
|
607
|
+
#endif
|
|
608
|
+
return mJSObject;
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
inline
|
|
612
|
+
void XPCWrappedNativeTearOff::SetJSObject(JSObject* JSObj)
|
|
613
|
+
{
|
|
614
|
+
#ifdef XPC_IDISPATCH_SUPPORT
|
|
615
|
+
if(IsIDispatch())
|
|
616
|
+
{
|
|
617
|
+
XPCDispInterface* iface = GetIDispatchInfo();
|
|
618
|
+
if(iface)
|
|
619
|
+
iface->SetJSObject(JSObj);
|
|
620
|
+
}
|
|
621
|
+
else
|
|
622
|
+
#endif
|
|
623
|
+
mJSObject = JSObj;
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
#ifdef XPC_IDISPATCH_SUPPORT
|
|
627
|
+
inline void
|
|
628
|
+
XPCWrappedNativeTearOff::SetIDispatch(JSContext* cx)
|
|
629
|
+
{
|
|
630
|
+
mJSObject = (JSObject*)(((jsword)
|
|
631
|
+
::XPCDispInterface::NewInstance(cx,
|
|
632
|
+
mNative)) | 2);
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
inline XPCDispInterface*
|
|
636
|
+
XPCWrappedNativeTearOff::GetIDispatchInfo() const
|
|
637
|
+
{
|
|
638
|
+
NS_ASSERTION((jsword)mJSObject & 2, "XPCWrappedNativeTearOff::GetIDispatchInfo "
|
|
639
|
+
"called on a non IDispatch interface");
|
|
640
|
+
return reinterpret_cast<XPCDispInterface*>
|
|
641
|
+
((((jsword)mJSObject) & ~JSOBJECT_MASK));
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
inline JSBool
|
|
645
|
+
XPCWrappedNativeTearOff::IsIDispatch() const
|
|
646
|
+
{
|
|
647
|
+
return (JSBool)(((jsword)mJSObject) & IDISPATCH_BIT);
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
#endif
|
|
651
|
+
|
|
652
|
+
inline
|
|
653
|
+
XPCWrappedNativeTearOff::~XPCWrappedNativeTearOff()
|
|
654
|
+
{
|
|
655
|
+
NS_ASSERTION(!(GetInterface()||GetNative()||GetJSObject()), "tearoff not empty in dtor");
|
|
656
|
+
#ifdef XPC_IDISPATCH_SUPPORT
|
|
657
|
+
if(IsIDispatch())
|
|
658
|
+
delete GetIDispatchInfo();
|
|
659
|
+
#endif
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
/***************************************************************************/
|
|
663
|
+
|
|
664
|
+
inline JSBool
|
|
665
|
+
XPCWrappedNative::HasInterfaceNoQI(XPCNativeInterface* aInterface)
|
|
666
|
+
{
|
|
667
|
+
return GetSet()->HasInterface(aInterface);
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
inline JSBool
|
|
671
|
+
XPCWrappedNative::HasInterfaceNoQI(const nsIID& iid)
|
|
672
|
+
{
|
|
673
|
+
return nsnull != GetSet()->FindInterfaceWithIID(iid);
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
inline void
|
|
677
|
+
XPCWrappedNative::SweepTearOffs()
|
|
678
|
+
{
|
|
679
|
+
XPCWrappedNativeTearOffChunk* chunk;
|
|
680
|
+
for(chunk = &mFirstChunk; chunk; chunk = chunk->mNextChunk)
|
|
681
|
+
{
|
|
682
|
+
XPCWrappedNativeTearOff* to = chunk->mTearOffs;
|
|
683
|
+
for(int i = XPC_WRAPPED_NATIVE_TEAROFFS_PER_CHUNK; i > 0; i--, to++)
|
|
684
|
+
{
|
|
685
|
+
JSBool marked = to->IsMarked();
|
|
686
|
+
to->Unmark();
|
|
687
|
+
if(marked)
|
|
688
|
+
continue;
|
|
689
|
+
|
|
690
|
+
// If this tearoff does not have a live dedicated JSObject,
|
|
691
|
+
// then let's recycle it.
|
|
692
|
+
if(!to->GetJSObject())
|
|
693
|
+
{
|
|
694
|
+
nsISupports* obj = to->GetNative();
|
|
695
|
+
if(obj)
|
|
696
|
+
{
|
|
697
|
+
obj->Release();
|
|
698
|
+
to->SetNative(nsnull);
|
|
699
|
+
}
|
|
700
|
+
to->SetInterface(nsnull);
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
/***************************************************************************/
|
|
707
|
+
|
|
708
|
+
inline JSBool
|
|
709
|
+
xpc_ForcePropertyResolve(JSContext* cx, JSObject* obj, jsval idval)
|
|
710
|
+
{
|
|
711
|
+
jsval prop;
|
|
712
|
+
jsid id;
|
|
713
|
+
|
|
714
|
+
if(!JS_ValueToId(cx, idval, &id) ||
|
|
715
|
+
!JS_LookupPropertyById(cx, obj, id, &prop))
|
|
716
|
+
return JS_FALSE;
|
|
717
|
+
return JS_TRUE;
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
inline JSObject*
|
|
721
|
+
xpc_NewSystemInheritingJSObject(JSContext *cx, JSClass *clasp, JSObject *proto,
|
|
722
|
+
JSObject *parent)
|
|
723
|
+
{
|
|
724
|
+
return JS_NewSystemObject(cx, clasp, proto, parent,
|
|
725
|
+
JS_IsSystemObject(cx, parent));
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
inline JSBool
|
|
729
|
+
xpc_SameScope(XPCWrappedNativeScope *objectscope, XPCWrappedNativeScope *xpcscope,
|
|
730
|
+
JSBool *sameOrigin)
|
|
731
|
+
{
|
|
732
|
+
if (objectscope == xpcscope)
|
|
733
|
+
{
|
|
734
|
+
*sameOrigin = JS_TRUE;
|
|
735
|
+
return JS_TRUE;
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
nsIPrincipal *objectprincipal = objectscope->GetPrincipal();
|
|
739
|
+
nsIPrincipal *xpcprincipal = xpcscope->GetPrincipal();
|
|
740
|
+
if(!objectprincipal || !xpcprincipal ||
|
|
741
|
+
NS_FAILED(objectprincipal->Equals(xpcprincipal, sameOrigin)))
|
|
742
|
+
{
|
|
743
|
+
*sameOrigin = JS_FALSE;
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
return JS_FALSE;
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
inline jsval
|
|
750
|
+
GetRTStringByIndex(JSContext *cx, uintN index)
|
|
751
|
+
{
|
|
752
|
+
XPCJSRuntime *rt = nsXPConnect::GetRuntimeInstance();
|
|
753
|
+
return ID_TO_VALUE(rt->GetStringID(index));
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
inline
|
|
757
|
+
JSBool ThrowBadParam(nsresult rv, uintN paramNum, XPCCallContext& ccx)
|
|
758
|
+
{
|
|
759
|
+
XPCThrower::ThrowBadParam(rv, paramNum, ccx);
|
|
760
|
+
return JS_FALSE;
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
inline
|
|
764
|
+
void ThrowBadResult(nsresult result, XPCCallContext& ccx)
|
|
765
|
+
{
|
|
766
|
+
XPCThrower::ThrowBadResult(NS_ERROR_XPC_NATIVE_RETURNED_FAILURE,
|
|
767
|
+
result, ccx);
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
/***************************************************************************/
|
|
771
|
+
|
|
772
|
+
#endif /* xpcinlines_h___ */
|