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,128 @@
|
|
|
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
|
+
/* Debug Logging support. */
|
|
42
|
+
|
|
43
|
+
#include "xpcprivate.h"
|
|
44
|
+
|
|
45
|
+
// this all only works for DEBUG...
|
|
46
|
+
#ifdef DEBUG
|
|
47
|
+
|
|
48
|
+
#define SPACE_COUNT 200
|
|
49
|
+
#define LINE_LEN 200
|
|
50
|
+
#define INDENT_FACTOR 2
|
|
51
|
+
|
|
52
|
+
#define CAN_RUN (g_InitState == 1 || (g_InitState == 0 && Init()))
|
|
53
|
+
|
|
54
|
+
static char* g_Spaces;
|
|
55
|
+
static int g_InitState = 0;
|
|
56
|
+
static int g_Indent = 0;
|
|
57
|
+
static PRLogModuleInfo* g_LogMod = nsnull;
|
|
58
|
+
|
|
59
|
+
static PRBool Init()
|
|
60
|
+
{
|
|
61
|
+
g_LogMod = PR_NewLogModule("xpclog");
|
|
62
|
+
g_Spaces = new char[SPACE_COUNT+1];
|
|
63
|
+
if(!g_LogMod || !g_Spaces || !PR_LOG_TEST(g_LogMod,1))
|
|
64
|
+
{
|
|
65
|
+
g_InitState = 1;
|
|
66
|
+
XPC_Log_Finish();
|
|
67
|
+
return PR_FALSE;
|
|
68
|
+
}
|
|
69
|
+
memset(g_Spaces, ' ', SPACE_COUNT);
|
|
70
|
+
g_Spaces[SPACE_COUNT] = 0;
|
|
71
|
+
g_InitState = 1;
|
|
72
|
+
return PR_TRUE;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
void
|
|
76
|
+
XPC_Log_Finish()
|
|
77
|
+
{
|
|
78
|
+
if(g_InitState == 1)
|
|
79
|
+
{
|
|
80
|
+
delete [] g_Spaces;
|
|
81
|
+
// we'd like to properly cleanup the LogModule, but nspr owns that
|
|
82
|
+
g_LogMod = nsnull;
|
|
83
|
+
}
|
|
84
|
+
g_InitState = -1;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
void
|
|
88
|
+
XPC_Log_print(const char *fmt, ...)
|
|
89
|
+
{
|
|
90
|
+
va_list ap;
|
|
91
|
+
char line[LINE_LEN];
|
|
92
|
+
|
|
93
|
+
va_start(ap, fmt);
|
|
94
|
+
PR_vsnprintf(line, sizeof(line)-1, fmt, ap);
|
|
95
|
+
va_end(ap);
|
|
96
|
+
if(g_Indent)
|
|
97
|
+
PR_LogPrint("%s%s",g_Spaces+SPACE_COUNT-(INDENT_FACTOR*g_Indent),line);
|
|
98
|
+
else
|
|
99
|
+
PR_LogPrint("%s",line);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
PRBool
|
|
103
|
+
XPC_Log_Check(int i)
|
|
104
|
+
{
|
|
105
|
+
return CAN_RUN && PR_LOG_TEST(g_LogMod,1);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
void
|
|
109
|
+
XPC_Log_Indent()
|
|
110
|
+
{
|
|
111
|
+
if(INDENT_FACTOR*(++g_Indent) > SPACE_COUNT)
|
|
112
|
+
g_Indent-- ;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
void
|
|
116
|
+
XPC_Log_Outdent()
|
|
117
|
+
{
|
|
118
|
+
if(--g_Indent < 0)
|
|
119
|
+
g_Indent++;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
void
|
|
123
|
+
XPC_Log_Clear_Indent()
|
|
124
|
+
{
|
|
125
|
+
g_Indent = 0;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
#endif
|
|
@@ -0,0 +1,101 @@
|
|
|
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
|
+
/* Debug Logging support. */
|
|
42
|
+
|
|
43
|
+
#ifndef xpclog_h___
|
|
44
|
+
#define xpclog_h___
|
|
45
|
+
|
|
46
|
+
#include "nsIXPConnect.h"
|
|
47
|
+
#include "prtypes.h"
|
|
48
|
+
#include "prlog.h"
|
|
49
|
+
|
|
50
|
+
/*
|
|
51
|
+
* This uses prlog.h See prlog.h for environment settings for output.
|
|
52
|
+
* The module name used here is 'xpclog'. These environment settings
|
|
53
|
+
* should work...
|
|
54
|
+
*
|
|
55
|
+
* SET NSPR_LOG_MODULES=xpclog:5
|
|
56
|
+
* SET NSPR_LOG_FILE=logfile.txt
|
|
57
|
+
*
|
|
58
|
+
* usage:
|
|
59
|
+
* XPC_LOG_ERROR(("my comment number %d", 5)) // note the double parens
|
|
60
|
+
*
|
|
61
|
+
*/
|
|
62
|
+
|
|
63
|
+
#ifdef DEBUG
|
|
64
|
+
#define XPC_LOG_INTERNAL(number,_args) \
|
|
65
|
+
do{if(XPC_Log_Check(number)){XPC_Log_print _args;}}while(0)
|
|
66
|
+
|
|
67
|
+
#define XPC_LOG_ALWAYS(_args) XPC_LOG_INTERNAL(1,_args)
|
|
68
|
+
#define XPC_LOG_ERROR(_args) XPC_LOG_INTERNAL(2,_args)
|
|
69
|
+
#define XPC_LOG_WARNING(_args) XPC_LOG_INTERNAL(3,_args)
|
|
70
|
+
#define XPC_LOG_DEBUG(_args) XPC_LOG_INTERNAL(4,_args)
|
|
71
|
+
#define XPC_LOG_FLUSH() PR_LogFlush()
|
|
72
|
+
#define XPC_LOG_INDENT() XPC_Log_Indent()
|
|
73
|
+
#define XPC_LOG_OUTDENT() XPC_Log_Outdent()
|
|
74
|
+
#define XPC_LOG_CLEAR_INDENT() XPC_Log_Clear_Indent()
|
|
75
|
+
#define XPC_LOG_FINISH() XPC_Log_Finish()
|
|
76
|
+
|
|
77
|
+
JS_BEGIN_EXTERN_C
|
|
78
|
+
|
|
79
|
+
void XPC_Log_print(const char *fmt, ...);
|
|
80
|
+
PRBool XPC_Log_Check(int i);
|
|
81
|
+
void XPC_Log_Indent();
|
|
82
|
+
void XPC_Log_Outdent();
|
|
83
|
+
void XPC_Log_Clear_Indent();
|
|
84
|
+
void XPC_Log_Finish();
|
|
85
|
+
|
|
86
|
+
JS_END_EXTERN_C
|
|
87
|
+
|
|
88
|
+
#else
|
|
89
|
+
|
|
90
|
+
#define XPC_LOG_ALWAYS(_args) ((void)0)
|
|
91
|
+
#define XPC_LOG_ERROR(_args) ((void)0)
|
|
92
|
+
#define XPC_LOG_WARNING(_args) ((void)0)
|
|
93
|
+
#define XPC_LOG_DEBUG(_args) ((void)0)
|
|
94
|
+
#define XPC_LOG_FLUSH() ((void)0)
|
|
95
|
+
#define XPC_LOG_INDENT() ((void)0)
|
|
96
|
+
#define XPC_LOG_OUTDENT() ((void)0)
|
|
97
|
+
#define XPC_LOG_CLEAR_INDENT() ((void)0)
|
|
98
|
+
#define XPC_LOG_FINISH() ((void)0)
|
|
99
|
+
#endif
|
|
100
|
+
|
|
101
|
+
#endif /* xpclog_h___ */
|
|
@@ -0,0 +1,761 @@
|
|
|
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 maps (hashtables). */
|
|
42
|
+
|
|
43
|
+
#include "xpcprivate.h"
|
|
44
|
+
#include "jsbit.h"
|
|
45
|
+
|
|
46
|
+
/***************************************************************************/
|
|
47
|
+
// static shared...
|
|
48
|
+
|
|
49
|
+
// Note this is returning the bit pattern of the first part of the nsID, not
|
|
50
|
+
// the pointer to the nsID.
|
|
51
|
+
|
|
52
|
+
static JSDHashNumber
|
|
53
|
+
HashIIDPtrKey(JSDHashTable *table, const void *key)
|
|
54
|
+
{
|
|
55
|
+
return *((JSHashNumber*)key);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
static JSBool
|
|
59
|
+
MatchIIDPtrKey(JSDHashTable *table,
|
|
60
|
+
const JSDHashEntryHdr *entry,
|
|
61
|
+
const void *key)
|
|
62
|
+
{
|
|
63
|
+
return ((const nsID*)key)->
|
|
64
|
+
Equals(*((const nsID*)((JSDHashEntryStub*)entry)->key));
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
static JSDHashNumber
|
|
68
|
+
HashNativeKey(JSDHashTable *table, const void *key)
|
|
69
|
+
{
|
|
70
|
+
XPCNativeSetKey* Key = (XPCNativeSetKey*) key;
|
|
71
|
+
|
|
72
|
+
JSDHashNumber h = 0;
|
|
73
|
+
|
|
74
|
+
XPCNativeSet* Set;
|
|
75
|
+
XPCNativeInterface* Addition;
|
|
76
|
+
PRUint16 Position;
|
|
77
|
+
|
|
78
|
+
if(Key->IsAKey())
|
|
79
|
+
{
|
|
80
|
+
Set = Key->GetBaseSet();
|
|
81
|
+
Addition = Key->GetAddition();
|
|
82
|
+
Position = Key->GetPosition();
|
|
83
|
+
}
|
|
84
|
+
else
|
|
85
|
+
{
|
|
86
|
+
Set = (XPCNativeSet*) Key;
|
|
87
|
+
Addition = nsnull;
|
|
88
|
+
Position = 0;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
if(!Set)
|
|
92
|
+
{
|
|
93
|
+
NS_ASSERTION(Addition, "bad key");
|
|
94
|
+
// This would be an XOR like below.
|
|
95
|
+
// But "0 ^ x == x". So it does not matter.
|
|
96
|
+
h = (JSHashNumber) NS_PTR_TO_INT32(Addition) >> 2;
|
|
97
|
+
}
|
|
98
|
+
else
|
|
99
|
+
{
|
|
100
|
+
XPCNativeInterface** Current = Set->GetInterfaceArray();
|
|
101
|
+
PRUint16 count = Set->GetInterfaceCount();
|
|
102
|
+
if(Addition)
|
|
103
|
+
{
|
|
104
|
+
count++;
|
|
105
|
+
for(PRUint16 i = 0; i < count; i++)
|
|
106
|
+
{
|
|
107
|
+
if(i == Position)
|
|
108
|
+
h ^= (JSHashNumber) NS_PTR_TO_INT32(Addition) >> 2;
|
|
109
|
+
else
|
|
110
|
+
h ^= (JSHashNumber) NS_PTR_TO_INT32(*(Current++)) >> 2;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else
|
|
114
|
+
{
|
|
115
|
+
for(PRUint16 i = 0; i < count; i++)
|
|
116
|
+
h ^= (JSHashNumber) NS_PTR_TO_INT32(*(Current++)) >> 2;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
return h;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/***************************************************************************/
|
|
124
|
+
// implement JSObject2WrappedJSMap...
|
|
125
|
+
|
|
126
|
+
// static
|
|
127
|
+
JSObject2WrappedJSMap*
|
|
128
|
+
JSObject2WrappedJSMap::newMap(int size)
|
|
129
|
+
{
|
|
130
|
+
JSObject2WrappedJSMap* map = new JSObject2WrappedJSMap(size);
|
|
131
|
+
if(map && map->mTable)
|
|
132
|
+
return map;
|
|
133
|
+
delete map;
|
|
134
|
+
return nsnull;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
JSObject2WrappedJSMap::JSObject2WrappedJSMap(int size)
|
|
138
|
+
{
|
|
139
|
+
mTable = JS_NewDHashTable(JS_DHashGetStubOps(), nsnull,
|
|
140
|
+
sizeof(Entry), size);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
JSObject2WrappedJSMap::~JSObject2WrappedJSMap()
|
|
144
|
+
{
|
|
145
|
+
if(mTable)
|
|
146
|
+
JS_DHashTableDestroy(mTable);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/***************************************************************************/
|
|
150
|
+
// implement Native2WrappedNativeMap...
|
|
151
|
+
|
|
152
|
+
// static
|
|
153
|
+
Native2WrappedNativeMap*
|
|
154
|
+
Native2WrappedNativeMap::newMap(int size)
|
|
155
|
+
{
|
|
156
|
+
Native2WrappedNativeMap* map = new Native2WrappedNativeMap(size);
|
|
157
|
+
if(map && map->mTable)
|
|
158
|
+
return map;
|
|
159
|
+
delete map;
|
|
160
|
+
return nsnull;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
Native2WrappedNativeMap::Native2WrappedNativeMap(int size)
|
|
164
|
+
{
|
|
165
|
+
mTable = JS_NewDHashTable(JS_DHashGetStubOps(), nsnull,
|
|
166
|
+
sizeof(Entry), size);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
Native2WrappedNativeMap::~Native2WrappedNativeMap()
|
|
170
|
+
{
|
|
171
|
+
if(mTable)
|
|
172
|
+
JS_DHashTableDestroy(mTable);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/***************************************************************************/
|
|
176
|
+
// implement IID2WrappedJSClassMap...
|
|
177
|
+
|
|
178
|
+
struct JSDHashTableOps IID2WrappedJSClassMap::Entry::sOps =
|
|
179
|
+
{
|
|
180
|
+
JS_DHashAllocTable,
|
|
181
|
+
JS_DHashFreeTable,
|
|
182
|
+
HashIIDPtrKey,
|
|
183
|
+
MatchIIDPtrKey,
|
|
184
|
+
JS_DHashMoveEntryStub,
|
|
185
|
+
JS_DHashClearEntryStub,
|
|
186
|
+
JS_DHashFinalizeStub
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
// static
|
|
190
|
+
IID2WrappedJSClassMap*
|
|
191
|
+
IID2WrappedJSClassMap::newMap(int size)
|
|
192
|
+
{
|
|
193
|
+
IID2WrappedJSClassMap* map = new IID2WrappedJSClassMap(size);
|
|
194
|
+
if(map && map->mTable)
|
|
195
|
+
return map;
|
|
196
|
+
delete map;
|
|
197
|
+
return nsnull;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
IID2WrappedJSClassMap::IID2WrappedJSClassMap(int size)
|
|
201
|
+
{
|
|
202
|
+
mTable = JS_NewDHashTable(&Entry::sOps, nsnull, sizeof(Entry), size);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
IID2WrappedJSClassMap::~IID2WrappedJSClassMap()
|
|
206
|
+
{
|
|
207
|
+
if(mTable)
|
|
208
|
+
JS_DHashTableDestroy(mTable);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
/***************************************************************************/
|
|
213
|
+
// implement IID2NativeInterfaceMap...
|
|
214
|
+
|
|
215
|
+
struct JSDHashTableOps IID2NativeInterfaceMap::Entry::sOps =
|
|
216
|
+
{
|
|
217
|
+
JS_DHashAllocTable,
|
|
218
|
+
JS_DHashFreeTable,
|
|
219
|
+
HashIIDPtrKey,
|
|
220
|
+
MatchIIDPtrKey,
|
|
221
|
+
JS_DHashMoveEntryStub,
|
|
222
|
+
JS_DHashClearEntryStub,
|
|
223
|
+
JS_DHashFinalizeStub
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
// static
|
|
227
|
+
IID2NativeInterfaceMap*
|
|
228
|
+
IID2NativeInterfaceMap::newMap(int size)
|
|
229
|
+
{
|
|
230
|
+
IID2NativeInterfaceMap* map = new IID2NativeInterfaceMap(size);
|
|
231
|
+
if(map && map->mTable)
|
|
232
|
+
return map;
|
|
233
|
+
delete map;
|
|
234
|
+
return nsnull;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
IID2NativeInterfaceMap::IID2NativeInterfaceMap(int size)
|
|
238
|
+
{
|
|
239
|
+
mTable = JS_NewDHashTable(&Entry::sOps, nsnull, sizeof(Entry), size);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
IID2NativeInterfaceMap::~IID2NativeInterfaceMap()
|
|
243
|
+
{
|
|
244
|
+
if(mTable)
|
|
245
|
+
JS_DHashTableDestroy(mTable);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/***************************************************************************/
|
|
249
|
+
// implement ClassInfo2NativeSetMap...
|
|
250
|
+
|
|
251
|
+
// static
|
|
252
|
+
ClassInfo2NativeSetMap*
|
|
253
|
+
ClassInfo2NativeSetMap::newMap(int size)
|
|
254
|
+
{
|
|
255
|
+
ClassInfo2NativeSetMap* map = new ClassInfo2NativeSetMap(size);
|
|
256
|
+
if(map && map->mTable)
|
|
257
|
+
return map;
|
|
258
|
+
delete map;
|
|
259
|
+
return nsnull;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
ClassInfo2NativeSetMap::ClassInfo2NativeSetMap(int size)
|
|
263
|
+
{
|
|
264
|
+
mTable = JS_NewDHashTable(JS_DHashGetStubOps(), nsnull,
|
|
265
|
+
sizeof(Entry), size);
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
ClassInfo2NativeSetMap::~ClassInfo2NativeSetMap()
|
|
269
|
+
{
|
|
270
|
+
if(mTable)
|
|
271
|
+
JS_DHashTableDestroy(mTable);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/***************************************************************************/
|
|
275
|
+
// implement ClassInfo2WrappedNativeProtoMap...
|
|
276
|
+
|
|
277
|
+
// static
|
|
278
|
+
ClassInfo2WrappedNativeProtoMap*
|
|
279
|
+
ClassInfo2WrappedNativeProtoMap::newMap(int size)
|
|
280
|
+
{
|
|
281
|
+
ClassInfo2WrappedNativeProtoMap* map = new ClassInfo2WrappedNativeProtoMap(size);
|
|
282
|
+
if(map && map->mTable)
|
|
283
|
+
return map;
|
|
284
|
+
delete map;
|
|
285
|
+
return nsnull;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
ClassInfo2WrappedNativeProtoMap::ClassInfo2WrappedNativeProtoMap(int size)
|
|
289
|
+
{
|
|
290
|
+
mTable = JS_NewDHashTable(JS_DHashGetStubOps(), nsnull,
|
|
291
|
+
sizeof(Entry), size);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
ClassInfo2WrappedNativeProtoMap::~ClassInfo2WrappedNativeProtoMap()
|
|
295
|
+
{
|
|
296
|
+
if(mTable)
|
|
297
|
+
JS_DHashTableDestroy(mTable);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
/***************************************************************************/
|
|
301
|
+
// implement NativeSetMap...
|
|
302
|
+
|
|
303
|
+
JSBool
|
|
304
|
+
NativeSetMap::Entry::Match(JSDHashTable *table,
|
|
305
|
+
const JSDHashEntryHdr *entry,
|
|
306
|
+
const void *key)
|
|
307
|
+
{
|
|
308
|
+
XPCNativeSetKey* Key = (XPCNativeSetKey*) key;
|
|
309
|
+
|
|
310
|
+
// See the comment in the XPCNativeSetKey declaration in xpcprivate.h.
|
|
311
|
+
if(!Key->IsAKey())
|
|
312
|
+
{
|
|
313
|
+
XPCNativeSet* Set1 = (XPCNativeSet*) key;
|
|
314
|
+
XPCNativeSet* Set2 = ((Entry*)entry)->key_value;
|
|
315
|
+
|
|
316
|
+
if(Set1 == Set2)
|
|
317
|
+
return JS_TRUE;
|
|
318
|
+
|
|
319
|
+
PRUint16 count = Set1->GetInterfaceCount();
|
|
320
|
+
if(count != Set2->GetInterfaceCount())
|
|
321
|
+
return JS_FALSE;
|
|
322
|
+
|
|
323
|
+
XPCNativeInterface** Current1 = Set1->GetInterfaceArray();
|
|
324
|
+
XPCNativeInterface** Current2 = Set2->GetInterfaceArray();
|
|
325
|
+
for(PRUint16 i = 0; i < count; i++)
|
|
326
|
+
{
|
|
327
|
+
if(*(Current1++) != *(Current2++))
|
|
328
|
+
return JS_FALSE;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
return JS_TRUE;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
XPCNativeSet* SetInTable = ((Entry*)entry)->key_value;
|
|
335
|
+
XPCNativeSet* Set = Key->GetBaseSet();
|
|
336
|
+
XPCNativeInterface* Addition = Key->GetAddition();
|
|
337
|
+
|
|
338
|
+
if(!Set)
|
|
339
|
+
{
|
|
340
|
+
// This is a special case to deal with the invariant that says:
|
|
341
|
+
// "All sets have exactly one nsISupports interface and it comes first."
|
|
342
|
+
// See XPCNativeSet::NewInstance for details.
|
|
343
|
+
//
|
|
344
|
+
// Though we might have a key that represents only one interface, we
|
|
345
|
+
// know that if that one interface were contructed into a set then
|
|
346
|
+
// it would end up really being a set with two interfaces (except for
|
|
347
|
+
// the case where the one interface happened to be nsISupports).
|
|
348
|
+
|
|
349
|
+
return ((SetInTable->GetInterfaceCount() == 1 &&
|
|
350
|
+
SetInTable->GetInterfaceAt(0) == Addition) ||
|
|
351
|
+
(SetInTable->GetInterfaceCount() == 2 &&
|
|
352
|
+
SetInTable->GetInterfaceAt(1) == Addition));
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
if(!Addition && Set == SetInTable)
|
|
356
|
+
return JS_TRUE;
|
|
357
|
+
|
|
358
|
+
PRUint16 count = Set->GetInterfaceCount() + (Addition ? 1 : 0);
|
|
359
|
+
if(count != SetInTable->GetInterfaceCount())
|
|
360
|
+
return JS_FALSE;
|
|
361
|
+
|
|
362
|
+
PRUint16 Position = Key->GetPosition();
|
|
363
|
+
XPCNativeInterface** CurrentInTable = SetInTable->GetInterfaceArray();
|
|
364
|
+
XPCNativeInterface** Current = Set->GetInterfaceArray();
|
|
365
|
+
for(PRUint16 i = 0; i < count; i++)
|
|
366
|
+
{
|
|
367
|
+
if(Addition && i == Position)
|
|
368
|
+
{
|
|
369
|
+
if(Addition != *(CurrentInTable++))
|
|
370
|
+
return JS_FALSE;
|
|
371
|
+
}
|
|
372
|
+
else
|
|
373
|
+
{
|
|
374
|
+
if(*(Current++) != *(CurrentInTable++))
|
|
375
|
+
return JS_FALSE;
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
return JS_TRUE;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
struct JSDHashTableOps NativeSetMap::Entry::sOps =
|
|
383
|
+
{
|
|
384
|
+
JS_DHashAllocTable,
|
|
385
|
+
JS_DHashFreeTable,
|
|
386
|
+
HashNativeKey,
|
|
387
|
+
Match,
|
|
388
|
+
JS_DHashMoveEntryStub,
|
|
389
|
+
JS_DHashClearEntryStub,
|
|
390
|
+
JS_DHashFinalizeStub
|
|
391
|
+
};
|
|
392
|
+
|
|
393
|
+
// static
|
|
394
|
+
NativeSetMap*
|
|
395
|
+
NativeSetMap::newMap(int size)
|
|
396
|
+
{
|
|
397
|
+
NativeSetMap* map = new NativeSetMap(size);
|
|
398
|
+
if(map && map->mTable)
|
|
399
|
+
return map;
|
|
400
|
+
delete map;
|
|
401
|
+
return nsnull;
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
NativeSetMap::NativeSetMap(int size)
|
|
405
|
+
{
|
|
406
|
+
mTable = JS_NewDHashTable(&Entry::sOps, nsnull, sizeof(Entry), size);
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
NativeSetMap::~NativeSetMap()
|
|
410
|
+
{
|
|
411
|
+
if(mTable)
|
|
412
|
+
JS_DHashTableDestroy(mTable);
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
/***************************************************************************/
|
|
416
|
+
// implement IID2ThisTranslatorMap...
|
|
417
|
+
|
|
418
|
+
JSBool
|
|
419
|
+
IID2ThisTranslatorMap::Entry::Match(JSDHashTable *table,
|
|
420
|
+
const JSDHashEntryHdr *entry,
|
|
421
|
+
const void *key)
|
|
422
|
+
{
|
|
423
|
+
return ((const nsID*)key)->Equals(((Entry*)entry)->key);
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
void
|
|
427
|
+
IID2ThisTranslatorMap::Entry::Clear(JSDHashTable *table, JSDHashEntryHdr *entry)
|
|
428
|
+
{
|
|
429
|
+
NS_IF_RELEASE(((Entry*)entry)->value);
|
|
430
|
+
memset(entry, 0, table->entrySize);
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
struct JSDHashTableOps IID2ThisTranslatorMap::Entry::sOps =
|
|
434
|
+
{
|
|
435
|
+
JS_DHashAllocTable,
|
|
436
|
+
JS_DHashFreeTable,
|
|
437
|
+
HashIIDPtrKey,
|
|
438
|
+
Match,
|
|
439
|
+
JS_DHashMoveEntryStub,
|
|
440
|
+
Clear,
|
|
441
|
+
JS_DHashFinalizeStub
|
|
442
|
+
};
|
|
443
|
+
|
|
444
|
+
// static
|
|
445
|
+
IID2ThisTranslatorMap*
|
|
446
|
+
IID2ThisTranslatorMap::newMap(int size)
|
|
447
|
+
{
|
|
448
|
+
IID2ThisTranslatorMap* map = new IID2ThisTranslatorMap(size);
|
|
449
|
+
if(map && map->mTable)
|
|
450
|
+
return map;
|
|
451
|
+
delete map;
|
|
452
|
+
return nsnull;
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
IID2ThisTranslatorMap::IID2ThisTranslatorMap(int size)
|
|
456
|
+
{
|
|
457
|
+
mTable = JS_NewDHashTable(&Entry::sOps, nsnull, sizeof(Entry), size);
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
IID2ThisTranslatorMap::~IID2ThisTranslatorMap()
|
|
461
|
+
{
|
|
462
|
+
if(mTable)
|
|
463
|
+
JS_DHashTableDestroy(mTable);
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
/***************************************************************************/
|
|
467
|
+
|
|
468
|
+
JSDHashNumber
|
|
469
|
+
XPCNativeScriptableSharedMap::Entry::Hash(JSDHashTable *table, const void *key)
|
|
470
|
+
{
|
|
471
|
+
JSDHashNumber h;
|
|
472
|
+
const unsigned char *s;
|
|
473
|
+
|
|
474
|
+
XPCNativeScriptableShared* obj =
|
|
475
|
+
(XPCNativeScriptableShared*) key;
|
|
476
|
+
|
|
477
|
+
// hash together the flags and the classname string
|
|
478
|
+
|
|
479
|
+
h = (JSDHashNumber) obj->GetFlags();
|
|
480
|
+
for (s = (const unsigned char*) obj->GetJSClass()->name; *s != '\0'; s++)
|
|
481
|
+
h = JS_ROTATE_LEFT32(h, 4) ^ *s;
|
|
482
|
+
return h;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
JSBool
|
|
486
|
+
XPCNativeScriptableSharedMap::Entry::Match(JSDHashTable *table,
|
|
487
|
+
const JSDHashEntryHdr *entry,
|
|
488
|
+
const void *key)
|
|
489
|
+
{
|
|
490
|
+
XPCNativeScriptableShared* obj1 =
|
|
491
|
+
((XPCNativeScriptableSharedMap::Entry*) entry)->key;
|
|
492
|
+
|
|
493
|
+
XPCNativeScriptableShared* obj2 =
|
|
494
|
+
(XPCNativeScriptableShared*) key;
|
|
495
|
+
|
|
496
|
+
// match the flags and the classname string
|
|
497
|
+
|
|
498
|
+
if(obj1->GetFlags() != obj2->GetFlags())
|
|
499
|
+
return JS_FALSE;
|
|
500
|
+
|
|
501
|
+
const char* name1 = obj1->GetJSClass()->name;
|
|
502
|
+
const char* name2 = obj2->GetJSClass()->name;
|
|
503
|
+
|
|
504
|
+
if(!name1 || !name2)
|
|
505
|
+
return name1 == name2;
|
|
506
|
+
|
|
507
|
+
return 0 == strcmp(name1, name2);
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
struct JSDHashTableOps XPCNativeScriptableSharedMap::Entry::sOps =
|
|
511
|
+
{
|
|
512
|
+
JS_DHashAllocTable,
|
|
513
|
+
JS_DHashFreeTable,
|
|
514
|
+
Hash,
|
|
515
|
+
Match,
|
|
516
|
+
JS_DHashMoveEntryStub,
|
|
517
|
+
JS_DHashClearEntryStub,
|
|
518
|
+
JS_DHashFinalizeStub
|
|
519
|
+
};
|
|
520
|
+
|
|
521
|
+
// static
|
|
522
|
+
XPCNativeScriptableSharedMap*
|
|
523
|
+
XPCNativeScriptableSharedMap::newMap(int size)
|
|
524
|
+
{
|
|
525
|
+
XPCNativeScriptableSharedMap* map =
|
|
526
|
+
new XPCNativeScriptableSharedMap(size);
|
|
527
|
+
if(map && map->mTable)
|
|
528
|
+
return map;
|
|
529
|
+
delete map;
|
|
530
|
+
return nsnull;
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
XPCNativeScriptableSharedMap::XPCNativeScriptableSharedMap(int size)
|
|
534
|
+
{
|
|
535
|
+
mTable = JS_NewDHashTable(&Entry::sOps, nsnull, sizeof(Entry), size);
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
XPCNativeScriptableSharedMap::~XPCNativeScriptableSharedMap()
|
|
539
|
+
{
|
|
540
|
+
if(mTable)
|
|
541
|
+
JS_DHashTableDestroy(mTable);
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
JSBool
|
|
545
|
+
XPCNativeScriptableSharedMap::GetNewOrUsed(JSUint32 flags,
|
|
546
|
+
char* name,
|
|
547
|
+
JSBool isGlobal,
|
|
548
|
+
XPCNativeScriptableInfo* si)
|
|
549
|
+
{
|
|
550
|
+
NS_PRECONDITION(name,"bad param");
|
|
551
|
+
NS_PRECONDITION(si,"bad param");
|
|
552
|
+
|
|
553
|
+
XPCNativeScriptableShared key(flags, name);
|
|
554
|
+
|
|
555
|
+
Entry* entry = (Entry*)
|
|
556
|
+
JS_DHashTableOperate(mTable, &key, JS_DHASH_ADD);
|
|
557
|
+
if(!entry)
|
|
558
|
+
return JS_FALSE;
|
|
559
|
+
|
|
560
|
+
XPCNativeScriptableShared* shared = entry->key;
|
|
561
|
+
|
|
562
|
+
if(!shared)
|
|
563
|
+
{
|
|
564
|
+
entry->key = shared =
|
|
565
|
+
new XPCNativeScriptableShared(flags, key.TransferNameOwnership());
|
|
566
|
+
if(!shared)
|
|
567
|
+
return JS_FALSE;
|
|
568
|
+
shared->PopulateJSClass(isGlobal);
|
|
569
|
+
}
|
|
570
|
+
si->SetScriptableShared(shared);
|
|
571
|
+
return JS_TRUE;
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
/***************************************************************************/
|
|
575
|
+
// implement XPCWrappedNativeProtoMap...
|
|
576
|
+
|
|
577
|
+
// static
|
|
578
|
+
XPCWrappedNativeProtoMap*
|
|
579
|
+
XPCWrappedNativeProtoMap::newMap(int size)
|
|
580
|
+
{
|
|
581
|
+
XPCWrappedNativeProtoMap* map = new XPCWrappedNativeProtoMap(size);
|
|
582
|
+
if(map && map->mTable)
|
|
583
|
+
return map;
|
|
584
|
+
delete map;
|
|
585
|
+
return nsnull;
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
XPCWrappedNativeProtoMap::XPCWrappedNativeProtoMap(int size)
|
|
589
|
+
{
|
|
590
|
+
mTable = JS_NewDHashTable(JS_DHashGetStubOps(), nsnull,
|
|
591
|
+
sizeof(JSDHashEntryStub), size);
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
XPCWrappedNativeProtoMap::~XPCWrappedNativeProtoMap()
|
|
595
|
+
{
|
|
596
|
+
if(mTable)
|
|
597
|
+
JS_DHashTableDestroy(mTable);
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
/***************************************************************************/
|
|
601
|
+
// implement XPCNativeWrapperMap...
|
|
602
|
+
|
|
603
|
+
// static
|
|
604
|
+
XPCNativeWrapperMap*
|
|
605
|
+
XPCNativeWrapperMap::newMap(int size)
|
|
606
|
+
{
|
|
607
|
+
XPCNativeWrapperMap* map = new XPCNativeWrapperMap(size);
|
|
608
|
+
if(map && map->mTable)
|
|
609
|
+
return map;
|
|
610
|
+
delete map;
|
|
611
|
+
return nsnull;
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
XPCNativeWrapperMap::XPCNativeWrapperMap(int size)
|
|
615
|
+
{
|
|
616
|
+
mTable = JS_NewDHashTable(JS_DHashGetStubOps(), nsnull,
|
|
617
|
+
sizeof(JSDHashEntryStub), size);
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
XPCNativeWrapperMap::~XPCNativeWrapperMap()
|
|
621
|
+
{
|
|
622
|
+
if(mTable)
|
|
623
|
+
JS_DHashTableDestroy(mTable);
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
/***************************************************************************/
|
|
627
|
+
// implement WrappedNative2WrapperMap...
|
|
628
|
+
|
|
629
|
+
struct JSDHashTableOps
|
|
630
|
+
WrappedNative2WrapperMap::sOps = {
|
|
631
|
+
JS_DHashAllocTable,
|
|
632
|
+
JS_DHashFreeTable,
|
|
633
|
+
JS_DHashVoidPtrKeyStub,
|
|
634
|
+
JS_DHashMatchEntryStub,
|
|
635
|
+
MoveLink,
|
|
636
|
+
ClearLink,
|
|
637
|
+
JS_DHashFinalizeStub,
|
|
638
|
+
nsnull
|
|
639
|
+
};
|
|
640
|
+
|
|
641
|
+
// static
|
|
642
|
+
void
|
|
643
|
+
WrappedNative2WrapperMap::ClearLink(JSDHashTable* table,
|
|
644
|
+
JSDHashEntryHdr* entry)
|
|
645
|
+
{
|
|
646
|
+
Entry* e = static_cast<Entry*>(entry);
|
|
647
|
+
e->key = nsnull;
|
|
648
|
+
PR_REMOVE_LINK(&e->value);
|
|
649
|
+
memset(e, 0, sizeof(*e));
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
// static
|
|
653
|
+
void
|
|
654
|
+
WrappedNative2WrapperMap::MoveLink(JSDHashTable* table,
|
|
655
|
+
const JSDHashEntryHdr* from,
|
|
656
|
+
JSDHashEntryHdr* to)
|
|
657
|
+
{
|
|
658
|
+
const Entry* oldEntry = static_cast<const Entry*>(from);
|
|
659
|
+
Entry* newEntry = static_cast<Entry*>(to);
|
|
660
|
+
|
|
661
|
+
newEntry->key = oldEntry->key;
|
|
662
|
+
|
|
663
|
+
// Now update the list.
|
|
664
|
+
if(PR_CLIST_IS_EMPTY(&oldEntry->value))
|
|
665
|
+
{
|
|
666
|
+
PR_INIT_CLIST(&newEntry->value);
|
|
667
|
+
newEntry->value.obj = oldEntry->value.obj;
|
|
668
|
+
}
|
|
669
|
+
else
|
|
670
|
+
{
|
|
671
|
+
newEntry->value = oldEntry->value;
|
|
672
|
+
newEntry->value.next->prev = &newEntry->value;
|
|
673
|
+
newEntry->value.prev->next = &newEntry->value;
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
// static
|
|
678
|
+
WrappedNative2WrapperMap*
|
|
679
|
+
WrappedNative2WrapperMap::newMap(int size)
|
|
680
|
+
{
|
|
681
|
+
WrappedNative2WrapperMap* map = new WrappedNative2WrapperMap(size);
|
|
682
|
+
if(map && map->mTable)
|
|
683
|
+
return map;
|
|
684
|
+
delete map;
|
|
685
|
+
return nsnull;
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
WrappedNative2WrapperMap::WrappedNative2WrapperMap(int size)
|
|
689
|
+
{
|
|
690
|
+
mTable = JS_NewDHashTable(&sOps, nsnull, sizeof(Entry), size);
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
WrappedNative2WrapperMap::~WrappedNative2WrapperMap()
|
|
694
|
+
{
|
|
695
|
+
if(mTable)
|
|
696
|
+
JS_DHashTableDestroy(mTable);
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
JSObject*
|
|
700
|
+
WrappedNative2WrapperMap::Add(WrappedNative2WrapperMap* head,
|
|
701
|
+
JSObject* wrappedObject,
|
|
702
|
+
JSObject* wrapper)
|
|
703
|
+
{
|
|
704
|
+
NS_PRECONDITION(wrappedObject,"bad param");
|
|
705
|
+
Entry* entry = (Entry*)
|
|
706
|
+
JS_DHashTableOperate(mTable, wrappedObject, JS_DHASH_ADD);
|
|
707
|
+
if(!entry)
|
|
708
|
+
return nsnull;
|
|
709
|
+
NS_ASSERTION(!entry->key || this == head, "dangling pointer?");
|
|
710
|
+
entry->key = wrappedObject;
|
|
711
|
+
Link* l = &entry->value;
|
|
712
|
+
|
|
713
|
+
NS_ASSERTION(!l->obj, "Uh, how'd this happen?");
|
|
714
|
+
|
|
715
|
+
if(!l->next)
|
|
716
|
+
{
|
|
717
|
+
// Initialize the circular list. This case only happens when
|
|
718
|
+
// this == head.
|
|
719
|
+
PR_INIT_CLIST(l);
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
l->obj = wrapper;
|
|
723
|
+
|
|
724
|
+
if(this != head)
|
|
725
|
+
{
|
|
726
|
+
Link* headLink = head->FindLink(wrappedObject);
|
|
727
|
+
if(!headLink)
|
|
728
|
+
{
|
|
729
|
+
Entry* dummy = (Entry*)
|
|
730
|
+
JS_DHashTableOperate(head->mTable, wrappedObject, JS_DHASH_ADD);
|
|
731
|
+
dummy->key = wrappedObject;
|
|
732
|
+
headLink = &dummy->value;
|
|
733
|
+
PR_INIT_CLIST(headLink);
|
|
734
|
+
headLink->obj = nsnull;
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
PR_INSERT_BEFORE(l, headLink);
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
return wrapper;
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
PRBool
|
|
744
|
+
WrappedNative2WrapperMap::AddLink(JSObject* wrappedObject, Link* oldLink)
|
|
745
|
+
{
|
|
746
|
+
Entry* entry = (Entry*)
|
|
747
|
+
JS_DHashTableOperate(mTable, wrappedObject, JS_DHASH_ADD);
|
|
748
|
+
if(!entry)
|
|
749
|
+
return PR_FALSE;
|
|
750
|
+
NS_ASSERTION(!entry->key, "Eh? What's happening?");
|
|
751
|
+
entry->key = wrappedObject;
|
|
752
|
+
Link* newLink = &entry->value;
|
|
753
|
+
|
|
754
|
+
PR_INSERT_LINK(newLink, oldLink);
|
|
755
|
+
PR_REMOVE_AND_INIT_LINK(oldLink);
|
|
756
|
+
newLink->obj = oldLink->obj;
|
|
757
|
+
|
|
758
|
+
return PR_TRUE;
|
|
759
|
+
}
|
|
760
|
+
|
|
761
|
+
/***************************************************************************/
|