johnson 2.0.0.pre0 → 2.0.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.rdoc +6 -0
- data/Manifest.txt +3709 -33
- data/Rakefile +19 -0
- data/ext/tracemonkey/extconf.rb +16 -2
- data/ext/tracemonkey/immutable_node.cc +3 -1
- data/ext/tracemonkey/js.cc +474 -0
- data/ext/tracemonkey/runtime.cc +3 -1
- data/ext/tracemonkey/split_global.cc +0 -373
- data/ext/tracemonkey/split_global.h +3 -0
- data/lib/johnson.rb +1 -1
- data/test/generic/parser_test.rb +27 -5
- data/test/johnson/generic/nodes/array_literal_test.rb +1 -1
- data/test/johnson/generic/nodes/ternary_test.rb +1 -1
- data/test/johnson/tracemonkey/split_global_test.html +18 -0
- data/vendor/tracemonkey/Makefile.in +100 -74
- data/vendor/tracemonkey/Makefile.ref +0 -13
- data/vendor/tracemonkey/README.html +2 -3
- data/vendor/tracemonkey/aclocal.m4 +3 -0
- data/vendor/tracemonkey/analysis-tests/Makefile.in +110 -0
- data/vendor/tracemonkey/analysis-tests/green-accessred.cpp +11 -0
- data/vendor/tracemonkey/analysis-tests/green-callred.cpp +12 -0
- data/vendor/tracemonkey/analysis-tests/green-callredptr.cpp +8 -0
- data/vendor/tracemonkey/analysis-tests/green-tored-badpath.cpp +14 -0
- data/vendor/tracemonkey/analysis-tests/green-tored.cpp +12 -0
- data/vendor/tracemonkey/analysis-tests/green-toredptr.cpp +12 -0
- data/vendor/tracemonkey/analysis-tests/misdeclared-red-funcptr.cpp +5 -0
- data/vendor/tracemonkey/analysis-tests/misdeclared-red-funcptr2.cpp +5 -0
- data/vendor/tracemonkey/analysis-tests/red-accessred.cpp +11 -0
- data/vendor/tracemonkey/analysis-tests/red-callgreen.cpp +8 -0
- data/vendor/tracemonkey/analysis-tests/red-callred.cpp +8 -0
- data/vendor/tracemonkey/analysis-tests/red-togreenptr-arg.cpp +11 -0
- data/vendor/tracemonkey/analysis-tests/red-togreenptr-field.cpp +15 -0
- data/vendor/tracemonkey/analysis-tests/red-togreenptr-initializer-array.cpp +8 -0
- data/vendor/tracemonkey/analysis-tests/red-togreenptr-initializer-cast.cpp +7 -0
- data/vendor/tracemonkey/analysis-tests/red-togreenptr-initializer-nested.cpp +18 -0
- data/vendor/tracemonkey/analysis-tests/red-togreenptr-initializer-struct.cpp +12 -0
- data/vendor/tracemonkey/analysis-tests/red-togreenptr-initializer.cpp +7 -0
- data/vendor/tracemonkey/analysis-tests/red-togreenptr-return.cpp +9 -0
- data/vendor/tracemonkey/analysis-tests/red-togreenptr.cpp +10 -0
- data/vendor/tracemonkey/bench.sh +1 -1
- data/vendor/tracemonkey/build/autoconf/acoutput-fast.pl +0 -0
- data/vendor/tracemonkey/build/autoconf/config.sub +154 -63
- data/vendor/tracemonkey/build/autoconf/make-makefile +10 -3
- data/vendor/tracemonkey/build/autoconf/mozprog.m4 +76 -0
- data/vendor/tracemonkey/build/autoconf/nspr.m4 +25 -6
- data/vendor/tracemonkey/build/unix/mddepend.pl +2 -0
- data/vendor/tracemonkey/build/win32/pgomerge.py +0 -0
- data/vendor/tracemonkey/builtins.tbl +1 -1
- data/vendor/tracemonkey/config.mk +3 -5
- data/vendor/tracemonkey/config/Makefile.in +8 -5
- data/vendor/tracemonkey/config/autoconf.mk.in +5 -14
- data/vendor/tracemonkey/config/config.mk +28 -35
- data/vendor/tracemonkey/config/milestone.txt +1 -1
- data/vendor/tracemonkey/config/mkdepend/Makefile.in +2 -3
- data/vendor/tracemonkey/config/nsinstall.exe.manifest +17 -0
- data/vendor/tracemonkey/config/nsinstall_win.c +708 -0
- data/vendor/tracemonkey/config/rules.mk +153 -191
- data/vendor/tracemonkey/config/static-checking.js +21 -30
- data/vendor/tracemonkey/config/system-headers +17 -31
- data/vendor/tracemonkey/config/version.mk +2 -2
- data/vendor/tracemonkey/config/version_win.pl +5 -12
- data/vendor/tracemonkey/configure +1175 -1071
- data/vendor/tracemonkey/configure.in +237 -309
- data/vendor/tracemonkey/dtoa.c +0 -4
- data/vendor/tracemonkey/imacro_asm.js.in +8 -0
- data/vendor/tracemonkey/imacros.c.out +217 -267
- data/vendor/tracemonkey/imacros.jsasm +56 -98
- data/vendor/tracemonkey/jitstats.tbl +58 -16
- data/vendor/tracemonkey/js-config.h.in +8 -6
- data/vendor/tracemonkey/js.msg +1 -1
- data/vendor/tracemonkey/jsapi-tests/Makefile.in +76 -0
- data/vendor/tracemonkey/jsapi-tests/README +160 -0
- data/vendor/tracemonkey/jsapi-tests/selfTest.cpp +20 -0
- data/vendor/tracemonkey/jsapi-tests/testDebugger.cpp +25 -0
- data/vendor/tracemonkey/jsapi-tests/testDefineGetterSetterNonEnumerable.cpp +51 -0
- data/vendor/tracemonkey/jsapi-tests/testExtendedEq.cpp +45 -0
- data/vendor/tracemonkey/jsapi-tests/testIntString.cpp +13 -0
- data/vendor/tracemonkey/jsapi-tests/testIsAboutToBeFinalized.cpp +89 -0
- data/vendor/tracemonkey/jsapi-tests/testPropCache.cpp +31 -0
- data/vendor/tracemonkey/jsapi-tests/testSameValue.cpp +21 -0
- data/vendor/tracemonkey/jsapi-tests/testXDR.cpp +55 -0
- data/vendor/tracemonkey/jsapi-tests/tests.cpp +79 -0
- data/vendor/tracemonkey/jsapi-tests/tests.h +239 -0
- data/vendor/tracemonkey/jsapi.cpp +264 -336
- data/vendor/tracemonkey/jsapi.h +163 -57
- data/vendor/tracemonkey/jsarena.cpp +8 -8
- data/vendor/tracemonkey/jsarray.cpp +551 -602
- data/vendor/tracemonkey/jsarray.h +58 -57
- data/vendor/tracemonkey/jsatom.cpp +59 -56
- data/vendor/tracemonkey/jsatom.h +0 -6
- data/vendor/tracemonkey/jsatominlines.h +95 -0
- data/vendor/tracemonkey/jsbit.h +26 -1
- data/vendor/tracemonkey/jsbool.cpp +18 -11
- data/vendor/tracemonkey/jsbool.h +7 -11
- data/vendor/tracemonkey/jsbuiltins.cpp +91 -66
- data/vendor/tracemonkey/jsbuiltins.h +146 -76
- data/vendor/tracemonkey/jscntxt.cpp +141 -73
- data/vendor/tracemonkey/jscntxt.h +415 -106
- data/vendor/tracemonkey/jscompat.h +3 -4
- data/vendor/tracemonkey/jsconfig.mk +0 -12
- data/vendor/tracemonkey/jscpucfg.cpp +1 -1
- data/vendor/tracemonkey/jsdate.cpp +373 -181
- data/vendor/tracemonkey/jsdate.h +5 -1
- data/vendor/tracemonkey/jsdbgapi.cpp +595 -84
- data/vendor/tracemonkey/jsdbgapi.h +13 -4
- data/vendor/tracemonkey/jsdhash.cpp +42 -15
- data/vendor/tracemonkey/jsdhash.h +19 -0
- data/vendor/tracemonkey/jsdtoa.cpp +7 -7
- data/vendor/tracemonkey/{jsdtracef.c → jsdtracef.cpp} +56 -93
- data/vendor/tracemonkey/jsdtracef.h +2 -2
- data/vendor/tracemonkey/jsemit.cpp +92 -82
- data/vendor/tracemonkey/jsemit.h +3 -6
- data/vendor/tracemonkey/jsexn.cpp +46 -62
- data/vendor/tracemonkey/jsfile.cpp +91 -71
- data/vendor/tracemonkey/jsfun.cpp +535 -549
- data/vendor/tracemonkey/jsfun.h +104 -20
- data/vendor/tracemonkey/jsgc.cpp +275 -255
- data/vendor/tracemonkey/jsgc.h +46 -54
- data/vendor/tracemonkey/jshash.cpp +5 -5
- data/vendor/tracemonkey/jshash.h +3 -1
- data/vendor/tracemonkey/jsinterp.cpp +350 -4490
- data/vendor/tracemonkey/jsinterp.h +50 -39
- data/vendor/tracemonkey/jsinttypes.h +139 -0
- data/vendor/tracemonkey/jsinvoke.cpp +1 -1
- data/vendor/tracemonkey/jsiter.cpp +65 -58
- data/vendor/tracemonkey/jsiter.h +2 -2
- data/vendor/tracemonkey/jskwgen.cpp +2 -2
- data/vendor/tracemonkey/jslibmath.h +17 -0
- data/vendor/tracemonkey/jslock.cpp +73 -71
- data/vendor/tracemonkey/jslock.h +21 -18
- data/vendor/tracemonkey/jslog2.cpp +1 -1
- data/vendor/tracemonkey/jsmath.cpp +69 -109
- data/vendor/tracemonkey/jsmath.h +18 -8
- data/vendor/tracemonkey/jsnum.cpp +129 -106
- data/vendor/tracemonkey/jsnum.h +202 -55
- data/vendor/tracemonkey/jsobj.cpp +1108 -1076
- data/vendor/tracemonkey/jsobj.h +441 -204
- data/vendor/tracemonkey/jsobjinlines.h +59 -0
- data/vendor/tracemonkey/json.cpp +170 -263
- data/vendor/tracemonkey/json.h +2 -13
- data/vendor/tracemonkey/jsopcode.cpp +141 -89
- data/vendor/tracemonkey/jsopcode.h +23 -4
- data/vendor/tracemonkey/jsopcode.tbl +7 -1
- data/vendor/tracemonkey/jsoplengen.cpp +1 -1
- data/vendor/tracemonkey/jsops.cpp +4213 -0
- data/vendor/tracemonkey/jsotypes.h +0 -4
- data/vendor/tracemonkey/jsparse.cpp +147 -262
- data/vendor/tracemonkey/jsparse.h +12 -10
- data/vendor/tracemonkey/jsprf.cpp +11 -11
- data/vendor/tracemonkey/jsprvtd.h +40 -33
- data/vendor/tracemonkey/jspubtd.h +3 -6
- data/vendor/tracemonkey/jsregexp.cpp +1260 -455
- data/vendor/tracemonkey/jsregexp.h +17 -8
- data/vendor/tracemonkey/jsscan.cpp +151 -324
- data/vendor/tracemonkey/jsscan.h +25 -82
- data/vendor/tracemonkey/jsscope.cpp +385 -300
- data/vendor/tracemonkey/jsscope.h +290 -117
- data/vendor/tracemonkey/jsscript.cpp +135 -153
- data/vendor/tracemonkey/jsscript.h +52 -68
- data/vendor/tracemonkey/jsscriptinlines.h +69 -0
- data/vendor/tracemonkey/jsshell.msg +2 -0
- data/vendor/tracemonkey/jsstack.js +213 -7
- data/vendor/tracemonkey/jsstdint.h +58 -40
- data/vendor/tracemonkey/jsstr.cpp +1247 -954
- data/vendor/tracemonkey/jsstr.h +410 -95
- data/vendor/tracemonkey/{jsstddef.h → jsstrinlines.h} +30 -42
- data/vendor/tracemonkey/jstask.cpp +126 -0
- data/vendor/tracemonkey/jstask.h +88 -0
- data/vendor/tracemonkey/jstl.h +262 -0
- data/vendor/tracemonkey/jstracer.cpp +6806 -3438
- data/vendor/tracemonkey/jstracer.h +675 -169
- data/vendor/tracemonkey/jstypes.h +29 -49
- data/vendor/tracemonkey/jsutil.cpp +3 -3
- data/vendor/tracemonkey/jsutil.h +127 -5
- data/vendor/tracemonkey/jsvector.h +775 -0
- data/vendor/tracemonkey/jswince.asm +40 -2
- data/vendor/tracemonkey/jsxdrapi.cpp +24 -30
- data/vendor/tracemonkey/jsxdrapi.h +1 -1
- data/vendor/tracemonkey/jsxml.cpp +542 -712
- data/vendor/tracemonkey/jsxml.h +3 -11
- data/vendor/tracemonkey/lirasm/Makefile.in +78 -0
- data/vendor/tracemonkey/lirasm/lirasm.cpp +1159 -0
- data/vendor/tracemonkey/lirasm/testlirc.sh +27 -0
- data/vendor/tracemonkey/lirasm/tests/add.in +4 -0
- data/vendor/tracemonkey/lirasm/tests/add.out +1 -0
- data/vendor/tracemonkey/lirasm/tests/addsub.in +5 -0
- data/vendor/tracemonkey/lirasm/tests/addsub.out +1 -0
- data/vendor/tracemonkey/lirasm/tests/call1.in +11 -0
- data/vendor/tracemonkey/lirasm/tests/call1.out +2 -0
- data/vendor/tracemonkey/lirasm/tests/call2.in +5 -0
- data/vendor/tracemonkey/lirasm/tests/call2.out +1 -0
- data/vendor/tracemonkey/lirasm/tests/floatingpoint.in +4 -0
- data/vendor/tracemonkey/lirasm/tests/floatingpoint.out +1 -0
- data/vendor/tracemonkey/lirasm/tests/loadstore.in +9 -0
- data/vendor/tracemonkey/lirasm/tests/loadstore.out +1 -0
- data/vendor/tracemonkey/lirasm/tests/multfrag1.in +26 -0
- data/vendor/tracemonkey/lirasm/tests/multfrag1.out +2 -0
- data/vendor/tracemonkey/lirasm/tests/multfrag2.in +14 -0
- data/vendor/tracemonkey/lirasm/tests/multfrag2.out +1 -0
- data/vendor/tracemonkey/lirasm/tests/multfrag3.in +15 -0
- data/vendor/tracemonkey/lirasm/tests/multfrag3.out +1 -0
- data/vendor/tracemonkey/liveconnect/jsj.c +5 -5
- data/vendor/tracemonkey/liveconnect/jsj_JSObject.c +2 -4
- data/vendor/tracemonkey/liveconnect/jsj_JavaArray.c +2 -4
- data/vendor/tracemonkey/liveconnect/jsj_JavaClass.c +3 -5
- data/vendor/tracemonkey/liveconnect/jsj_JavaObject.c +4 -24
- data/vendor/tracemonkey/liveconnect/jsj_private.h +4 -4
- data/vendor/tracemonkey/liveconnect/jsj_utils.c +18 -2
- data/vendor/tracemonkey/liveconnect/nsCLiveconnect.cpp +30 -4
- data/vendor/tracemonkey/nanojit/{TraceTreeDrawer.h → Allocator.cpp} +56 -48
- data/vendor/tracemonkey/nanojit/Allocator.h +117 -0
- data/vendor/tracemonkey/nanojit/Assembler.cpp +1378 -1442
- data/vendor/tracemonkey/nanojit/Assembler.h +250 -280
- data/vendor/tracemonkey/nanojit/CodeAlloc.cpp +506 -0
- data/vendor/tracemonkey/nanojit/CodeAlloc.h +201 -0
- data/vendor/tracemonkey/nanojit/Containers.cpp +95 -0
- data/vendor/tracemonkey/nanojit/Containers.h +463 -0
- data/vendor/tracemonkey/nanojit/Fragmento.cpp +35 -604
- data/vendor/tracemonkey/nanojit/Fragmento.h +84 -183
- data/vendor/tracemonkey/nanojit/LIR.cpp +1969 -2050
- data/vendor/tracemonkey/nanojit/LIR.h +1351 -720
- data/vendor/tracemonkey/nanojit/LIRopcode.tbl +173 -159
- data/vendor/tracemonkey/nanojit/Native.h +61 -48
- data/vendor/tracemonkey/nanojit/NativeARM.cpp +1509 -849
- data/vendor/tracemonkey/nanojit/NativeARM.h +362 -286
- data/vendor/tracemonkey/nanojit/NativePPC.cpp +1296 -0
- data/vendor/tracemonkey/nanojit/NativePPC.h +587 -0
- data/vendor/tracemonkey/nanojit/NativeSparc.cpp +146 -224
- data/vendor/tracemonkey/nanojit/NativeSparc.h +235 -229
- data/vendor/tracemonkey/nanojit/NativeX64.cpp +1434 -0
- data/vendor/tracemonkey/nanojit/NativeX64.h +392 -0
- data/vendor/tracemonkey/nanojit/Nativei386.cpp +1395 -1367
- data/vendor/tracemonkey/nanojit/Nativei386.h +519 -514
- data/vendor/tracemonkey/nanojit/RegAlloc.cpp +37 -130
- data/vendor/tracemonkey/nanojit/RegAlloc.h +90 -49
- data/vendor/tracemonkey/nanojit/avmplus.cpp +249 -32
- data/vendor/tracemonkey/nanojit/avmplus.h +121 -667
- data/vendor/tracemonkey/nanojit/manifest.mk +79 -0
- data/vendor/tracemonkey/nanojit/nanojit.h +179 -157
- data/vendor/tracemonkey/plify_jsdhash.sed +10 -6
- data/vendor/tracemonkey/prmjtime.cpp +97 -55
- data/vendor/tracemonkey/prmjtime.h +1 -1
- data/vendor/tracemonkey/{config/revdepth.pl → ref-config/HP-UXB.11.31.mk} +28 -14
- data/vendor/tracemonkey/resource.h +1 -1
- data/vendor/tracemonkey/shell/js.cpp +358 -201
- data/vendor/tracemonkey/tests/Makefile.in +78 -0
- data/vendor/tracemonkey/tests/Patterns.pm +257 -0
- data/vendor/tracemonkey/tests/README-jsDriver.html +325 -0
- data/vendor/tracemonkey/tests/SisyphusMakefile +58 -0
- data/vendor/tracemonkey/tests/bisect.sh +488 -0
- data/vendor/tracemonkey/tests/browser.js +964 -0
- data/vendor/tracemonkey/tests/changes.sh +122 -0
- data/vendor/tracemonkey/tests/config.mk +113 -0
- data/vendor/tracemonkey/tests/config.sh +138 -0
- data/vendor/tracemonkey/tests/detect-universe.sh +126 -0
- data/vendor/tracemonkey/tests/dikdik-n.tests +3 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.1.1.js +85 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.1.2.js +86 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.1.3.js +56 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.1.4-01.js +61 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.1.4-02.js +58 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.1.4-03.js +60 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.1.4-04.js +56 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.1.4-05.js +57 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.1.4-06.js +61 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.1.4-07.js +78 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.1.4-08.js +158 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.1.4.js +140 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.1.5.js +62 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.2.1.js +173 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.2.2.js +106 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.2.3.js +61 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.2.4.js +117 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.3.1.js +272 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.3.2.js +52 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.4.1.js +139 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.5.1.js +101 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.6.1.js +429 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.6.2.js +326 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/11.6.3.js +119 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/jstests.list +30 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/regress-301545.js +55 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/regress-302531.js +63 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/regress-340024.js +61 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/regress-366123.js +67 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/regress-496113.js +65 -0
- data/vendor/tracemonkey/tests/e4x/Expressions/shell.js +1 -0
- data/vendor/tracemonkey/tests/e4x/GC/jstests.list +11 -0
- data/vendor/tracemonkey/tests/e4x/GC/regress-280844-1.js +59 -0
- data/vendor/tracemonkey/tests/e4x/GC/regress-280844-2.js +71 -0
- data/vendor/tracemonkey/tests/e4x/GC/regress-292455.js +79 -0
- data/vendor/tracemonkey/tests/e4x/GC/regress-313952-01.js +68 -0
- data/vendor/tracemonkey/tests/e4x/GC/regress-313952-02.js +77 -0
- data/vendor/tracemonkey/tests/e4x/GC/regress-324117.js +98 -0
- data/vendor/tracemonkey/tests/e4x/GC/regress-324278.js +86 -0
- data/vendor/tracemonkey/tests/e4x/GC/regress-339785.js +92 -0
- data/vendor/tracemonkey/tests/e4x/GC/regress-357063-01.js +73 -0
- data/vendor/tracemonkey/tests/e4x/GC/regress-357063-02.js +69 -0
- data/vendor/tracemonkey/tests/e4x/GC/shell.js +1 -0
- data/vendor/tracemonkey/tests/e4x/Global/13.1.2.1.js +559 -0
- data/vendor/tracemonkey/tests/e4x/Global/jstests.list +2 -0
- data/vendor/tracemonkey/tests/e4x/Global/shell.js +1 -0
- data/vendor/tracemonkey/tests/e4x/Namespace/13.2.1.js +68 -0
- data/vendor/tracemonkey/tests/e4x/Namespace/13.2.2.js +86 -0
- data/vendor/tracemonkey/tests/e4x/Namespace/13.2.5.js +67 -0
- data/vendor/tracemonkey/tests/e4x/Namespace/jstests.list +9 -0
- data/vendor/tracemonkey/tests/e4x/Namespace/regress-283972.js +65 -0
- data/vendor/tracemonkey/tests/e4x/Namespace/regress-292863.js +62 -0
- data/vendor/tracemonkey/tests/e4x/Namespace/regress-350442.js +74 -0
- data/vendor/tracemonkey/tests/e4x/Namespace/regress-444608-02.js +55 -0
- data/vendor/tracemonkey/tests/e4x/Namespace/regress-444608.js +55 -0
- data/vendor/tracemonkey/tests/e4x/Namespace/shell.js +1 -0
- data/vendor/tracemonkey/tests/e4x/QName/13.3.1.js +75 -0
- data/vendor/tracemonkey/tests/e4x/QName/13.3.2.js +87 -0
- data/vendor/tracemonkey/tests/e4x/QName/13.3.5.js +67 -0
- data/vendor/tracemonkey/tests/e4x/QName/jstests.list +8 -0
- data/vendor/tracemonkey/tests/e4x/QName/regress-373595-01.js +53 -0
- data/vendor/tracemonkey/tests/e4x/QName/regress-373595-02.js +55 -0
- data/vendor/tracemonkey/tests/e4x/QName/regress-373595-03.js +55 -0
- data/vendor/tracemonkey/tests/e4x/QName/regress-444608.js +56 -0
- data/vendor/tracemonkey/tests/e4x/QName/shell.js +1 -0
- data/vendor/tracemonkey/tests/e4x/Regress/jstests.list +93 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-257679.js +52 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-263934.js +66 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-263935.js +67 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-263936.js +65 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-264369.js +53 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-271545.js +74 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-277650.js +64 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-277664.js +64 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-277683.js +65 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-277779.js +60 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-277935.js +68 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-278112.js +55 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-283349.js +57 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-290056.js +61 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-290499.js +52 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-301553.js +60 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-301573.js +57 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-301596.js +60 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-301692.js +83 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-308111.js +959 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-309897.js +68 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-311580.js +61 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-313799.js +53 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-318922.js +108 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-319872.js +78 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-321547.js +91 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-322499.js +72 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-323338-1.js +75 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-323338-2.js +52 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-325425.js +60 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-327564.js +78 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-327691-01.js +59 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-327691-02.js +59 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-327697.js +80 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-328249.js +65 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-329257.js +71 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-331558.js +54 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-331664.js +53 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-344455.js +60 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-347155.js +69 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-350206-1.js +71 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-350206.js +57 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-350238.js +65 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-350629.js +129 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-352097.js +92 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-352103.js +76 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-352223.js +71 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-354145-01.js +67 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-354145-02.js +67 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-354145-03.js +68 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-354145-04.js +66 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-354145-05.js +66 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-354145-07.js +59 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-354998.js +94 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-355474-02.js +58 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-355478.js +62 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-355569.js +163 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-356238-01.js +57 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-356238-02.js +63 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-356238-03.js +64 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-361451.js +57 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-364017.js +58 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-369032.js +63 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-369536.js +48 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-369740.js +82 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-370016.js +52 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-370048-01.js +59 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-370048-02.js +57 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-370372.js +73 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-371369.js +63 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-372563.js +52 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-372564.js +52 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-373082.js +110 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-374106.js +52 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-374112.js +52 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-374116.js +52 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-374160.js +52 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-375406.js +53 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-378492.js +60 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-380833.js +55 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-383255.js +60 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-394941.js +68 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-407323.js +67 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-426520.js +64 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-453915.js +54 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-458679-01.js +64 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-458679-02.js +76 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-460180.js +53 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-465063.js +59 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-473709.js +71 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-474319.js +60 -0
- data/vendor/tracemonkey/tests/e4x/Regress/regress-477053.js +60 -0
- data/vendor/tracemonkey/tests/e4x/Regress/shell.js +1 -0
- data/vendor/tracemonkey/tests/e4x/Statements/12.1.js +134 -0
- data/vendor/tracemonkey/tests/e4x/Statements/12.2.js +104 -0
- data/vendor/tracemonkey/tests/e4x/Statements/12.3-01.js +76 -0
- data/vendor/tracemonkey/tests/e4x/Statements/jstests.list +4 -0
- data/vendor/tracemonkey/tests/e4x/Statements/shell.js +1 -0
- data/vendor/tracemonkey/tests/e4x/TypeConversion/10.1.1.js +141 -0
- data/vendor/tracemonkey/tests/e4x/TypeConversion/10.1.2.js +148 -0
- data/vendor/tracemonkey/tests/e4x/TypeConversion/10.2.1.js +159 -0
- data/vendor/tracemonkey/tests/e4x/TypeConversion/10.3.1.js +60 -0
- data/vendor/tracemonkey/tests/e4x/TypeConversion/10.3.js +77 -0
- data/vendor/tracemonkey/tests/e4x/TypeConversion/10.4.1.js +95 -0
- data/vendor/tracemonkey/tests/e4x/TypeConversion/10.4.js +85 -0
- data/vendor/tracemonkey/tests/e4x/TypeConversion/10.5.1.js +52 -0
- data/vendor/tracemonkey/tests/e4x/TypeConversion/10.5.js +52 -0
- data/vendor/tracemonkey/tests/e4x/TypeConversion/10.6.1.js +52 -0
- data/vendor/tracemonkey/tests/e4x/TypeConversion/10.6.js +52 -0
- data/vendor/tracemonkey/tests/e4x/TypeConversion/jstests.list +13 -0
- data/vendor/tracemonkey/tests/e4x/TypeConversion/regress-302097.js +59 -0
- data/vendor/tracemonkey/tests/e4x/TypeConversion/shell.js +1 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.1.1.1.js +304 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.1.1.10.js +52 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.1.1.11.js +52 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.1.1.12.js +52 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.1.1.13.js +52 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.1.1.2.js +82 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.1.1.3.js +213 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.1.1.4.js +50 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.1.1.5.js +53 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.1.1.6.js +59 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.1.1.7.js +53 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.1.1.8.js +54 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.1.1.9.js +139 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.2.1.1.js +164 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.2.1.10.js +53 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.2.1.2.js +64 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.2.1.3.js +52 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.2.1.4.js +53 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.2.1.5.js +54 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.2.1.6.js +53 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.2.1.7.js +53 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.2.1.8.js +56 -0
- data/vendor/tracemonkey/tests/e4x/Types/9.2.1.9.js +81 -0
- data/vendor/tracemonkey/tests/e4x/Types/jstests.list +24 -0
- data/vendor/tracemonkey/tests/e4x/Types/shell.js +1 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.1.js +113 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.2.js +116 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.3.10.js +52 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.3.js +239 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.1.js +52 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.10.js +100 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.11.js +91 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.12-1.js +89 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.12.js +69 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.13.js +49 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.14.js +69 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.15.js +79 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.16.js +78 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.17.js +64 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.18.js +84 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.19.js +84 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.2.js +69 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.20.js +65 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.21.js +81 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.22.js +81 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.23.js +93 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.24.js +64 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.25.js +62 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.26.js +138 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.27.js +63 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.28.js +73 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.29.js +93 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.3-01.js +72 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.3-02.js +62 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.3.js +84 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.30.js +62 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.31.js +78 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.32-01.js +56 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.32.js +100 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.33.js +80 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.34.js +77 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.35.js +91 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.36.js +72 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.37.js +67 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.38.js +107 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.39.js +129 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.4.js +76 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.40.js +69 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.5.js +71 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.6.js +68 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.7.js +62 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.8.js +69 -0
- data/vendor/tracemonkey/tests/e4x/XML/13.4.4.9.js +63 -0
- data/vendor/tracemonkey/tests/e4x/XML/jstests.list +55 -0
- data/vendor/tracemonkey/tests/e4x/XML/regress-291930.js +54 -0
- data/vendor/tracemonkey/tests/e4x/XML/regress-324422-1.js +78 -0
- data/vendor/tracemonkey/tests/e4x/XML/regress-324422-2.js +72 -0
- data/vendor/tracemonkey/tests/e4x/XML/regress-324688.js +105 -0
- data/vendor/tracemonkey/tests/e4x/XML/regress-336921.js +63 -0
- data/vendor/tracemonkey/tests/e4x/XML/regress-376773.js +584 -0
- data/vendor/tracemonkey/tests/e4x/XML/shell.js +1 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.1.js +97 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.2.js +91 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.10.js +48 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.11.js +76 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.12.js +105 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.13.js +105 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.14.js +80 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.15.js +49 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.16.js +78 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.17.js +49 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.18.js +49 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.19.js +49 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.2.js +87 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.20.js +57 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.21.js +57 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.22.js +50 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.3.js +74 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.4.js +86 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.5.js +96 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.6.js +49 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.7.js +59 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.8.js +75 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.9.js +84 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/jstests.list +25 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/regress-373072.js +61 -0
- data/vendor/tracemonkey/tests/e4x/XMLList/shell.js +1 -0
- data/vendor/tracemonkey/tests/e4x/browser.js +82 -0
- data/vendor/tracemonkey/tests/e4x/decompilation/decompile-xml-escapes.js +78 -0
- data/vendor/tracemonkey/tests/e4x/decompilation/jstests.list +19 -0
- data/vendor/tracemonkey/tests/e4x/decompilation/regress-349814.js +62 -0
- data/vendor/tracemonkey/tests/e4x/decompilation/regress-349815.js +56 -0
- data/vendor/tracemonkey/tests/e4x/decompilation/regress-349822.js +63 -0
- data/vendor/tracemonkey/tests/e4x/decompilation/regress-349956.js +60 -0
- data/vendor/tracemonkey/tests/e4x/decompilation/regress-350226.js +55 -0
- data/vendor/tracemonkey/tests/e4x/decompilation/regress-350531.js +61 -0
- data/vendor/tracemonkey/tests/e4x/decompilation/regress-351706.js +61 -0
- data/vendor/tracemonkey/tests/e4x/decompilation/regress-351988.js +56 -0
- data/vendor/tracemonkey/tests/e4x/decompilation/regress-352013.js +137 -0
- data/vendor/tracemonkey/tests/e4x/decompilation/regress-352459.js +54 -0
- data/vendor/tracemonkey/tests/e4x/decompilation/regress-352649.js +54 -0
- data/vendor/tracemonkey/tests/e4x/decompilation/regress-352789.js +66 -0
- data/vendor/tracemonkey/tests/e4x/decompilation/regress-355101.js +54 -0
- data/vendor/tracemonkey/tests/e4x/decompilation/regress-355474-01.js +61 -0
- data/vendor/tracemonkey/tests/e4x/decompilation/regress-373678.js +55 -0
- data/vendor/tracemonkey/tests/e4x/decompilation/regress-429249.js +64 -0
- data/vendor/tracemonkey/tests/e4x/decompilation/regress-461233.js +56 -0
- data/vendor/tracemonkey/tests/e4x/decompilation/shell.js +1 -0
- data/vendor/tracemonkey/tests/e4x/extensions/jstests.list +21 -0
- data/vendor/tracemonkey/tests/e4x/extensions/regress-305335.js +62 -0
- data/vendor/tracemonkey/tests/e4x/extensions/regress-312196.js +115 -0
- data/vendor/tracemonkey/tests/e4x/extensions/regress-313080.js +60 -0
- data/vendor/tracemonkey/tests/e4x/extensions/regress-321547.js +61 -0
- data/vendor/tracemonkey/tests/e4x/extensions/regress-327534.js +61 -0
- data/vendor/tracemonkey/tests/e4x/extensions/regress-327897.js +66 -0
- data/vendor/tracemonkey/tests/e4x/extensions/regress-337226.js +52 -0
- data/vendor/tracemonkey/tests/e4x/extensions/regress-352846-01.js +81 -0
- data/vendor/tracemonkey/tests/e4x/extensions/regress-352846-02.js +86 -0
- data/vendor/tracemonkey/tests/e4x/extensions/regress-352846-03.js +86 -0
- data/vendor/tracemonkey/tests/e4x/extensions/regress-353165.js +115 -0
- data/vendor/tracemonkey/tests/e4x/extensions/regress-354145-06.js +67 -0
- data/vendor/tracemonkey/tests/e4x/extensions/regress-354151-01.js +63 -0
- data/vendor/tracemonkey/tests/e4x/extensions/regress-354151-02.js +69 -0
- data/vendor/tracemonkey/tests/e4x/extensions/regress-374025.js +54 -0
- data/vendor/tracemonkey/tests/e4x/extensions/regress-374163.js +62 -0
- data/vendor/tracemonkey/tests/e4x/extensions/regress-410192.js +55 -0
- data/vendor/tracemonkey/tests/e4x/extensions/regress-450871-01.js +67 -0
- data/vendor/tracemonkey/tests/e4x/extensions/regress-450871-02.js +68 -0
- data/vendor/tracemonkey/tests/e4x/extensions/regress-462734-01.js +67 -0
- data/vendor/tracemonkey/tests/e4x/extensions/shell.js +1 -0
- data/vendor/tracemonkey/tests/e4x/jstests.list +13 -0
- data/vendor/tracemonkey/tests/e4x/shell.js +121 -0
- data/vendor/tracemonkey/tests/e4x/template.js +51 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4-1.js +133 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4-2.js +114 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.1.1.js +111 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.1.2.js +162 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.1.3.js +84 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.1.js +132 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.2.1-1.js +112 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.2.1-2.js +101 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.2.1-3.js +137 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.2.2-1.js +183 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.2.2-2.js +118 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.2.3.js +101 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.3.1-2.js +81 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.3.2.js +62 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.4.1.js +63 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.4.2.js +110 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.4.3-1.js +163 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.4.4-1.js +294 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.4.4-2.js +169 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.4.5-1.js +225 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.4.5-2.js +227 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.4.5-3.js +182 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.4.js +74 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.5.1-1.js +170 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.5.1-2.js +152 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.5.2-1.js +86 -0
- data/vendor/tracemonkey/tests/ecma/Array/15.4.5.2-2.js +127 -0
- data/vendor/tracemonkey/tests/ecma/Array/jstests.list +28 -0
- data/vendor/tracemonkey/tests/ecma/Array/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma/Boolean/15.6.1.js +96 -0
- data/vendor/tracemonkey/tests/ecma/Boolean/15.6.2.js +161 -0
- data/vendor/tracemonkey/tests/ecma/Boolean/15.6.3.1-1.js +72 -0
- data/vendor/tracemonkey/tests/ecma/Boolean/15.6.3.1-2.js +71 -0
- data/vendor/tracemonkey/tests/ecma/Boolean/15.6.3.1-3.js +71 -0
- data/vendor/tracemonkey/tests/ecma/Boolean/15.6.3.1-4.js +75 -0
- data/vendor/tracemonkey/tests/ecma/Boolean/15.6.3.1.js +69 -0
- data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4-1.js +72 -0
- data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.1.js +62 -0
- data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.2-1.js +97 -0
- data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.2-2.js +73 -0
- data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.2-3.js +65 -0
- data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.2-4-n.js +69 -0
- data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.3-1.js +88 -0
- data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.3-2.js +67 -0
- data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.3-3.js +66 -0
- data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.3-4-n.js +69 -0
- data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.3.js +83 -0
- data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.js +80 -0
- data/vendor/tracemonkey/tests/ecma/Boolean/jstests.list +20 -0
- data/vendor/tracemonkey/tests/ecma/Boolean/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.1.1-1.js +95 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.1.1-2.js +90 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.1.13-1.js +78 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.2.1.js +174 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.2.2-1.js +86 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.2.2-2.js +89 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.2.2-3.js +86 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.2.2-4.js +82 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.2.2-5.js +86 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.2.2-6.js +85 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.3.1-1.js +239 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.3.1-2.js +152 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.3.1-3.js +141 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.3.1-4.js +151 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.3.1-5.js +140 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.3.2-1.js +150 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.3.2-2.js +141 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.3.2-3.js +145 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.3.2-4.js +142 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.3.2-5.js +139 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.3.8-1.js +155 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.3.8-2.js +153 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.3.8-3.js +160 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.3.8-4.js +161 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.3.8-5.js +161 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.4.2-1.js +81 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.4.2.js +191 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.4.3.js +185 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.1.js +63 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-1.js +85 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-10.js +89 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-11.js +89 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-12.js +89 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-13.js +89 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-2.js +85 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-3.js +85 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-4.js +85 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-5.js +85 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-6.js +85 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-7.js +85 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-8.js +89 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-9.js +89 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.11-1.js +76 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.11-2.js +76 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.11-3.js +76 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.11-4.js +76 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.11-5.js +76 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.11-6.js +76 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.11-7.js +76 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.12-1.js +77 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.12-2.js +77 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.12-3.js +77 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.12-4.js +77 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.12-5.js +77 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.12-6.js +77 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.12-7.js +77 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.12-8.js +71 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.13-1.js +79 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.13-2.js +76 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.13-3.js +77 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.13-4.js +77 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.13-5.js +77 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.13-6.js +77 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.13-7.js +76 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.13-8.js +71 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.14.js +87 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.15.js +88 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.16.js +87 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.17.js +88 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.18.js +88 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.19.js +88 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.2-1.js +151 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.2-2-n.js +84 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.2.js +151 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.20.js +88 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.21-1.js +70 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.21-2.js +70 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.21-3.js +70 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.21-4.js +70 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.21-5.js +70 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.21-6.js +70 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.21-7.js +70 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.21-8.js +71 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.22-1.js +89 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.22-2.js +74 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.22-3.js +74 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.22-4.js +74 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.22-5.js +74 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.22-6.js +74 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.22-7.js +74 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.22-8.js +72 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-1.js +139 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-10.js +139 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-11.js +140 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-12.js +137 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-13.js +137 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-14.js +137 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-15.js +137 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-16.js +137 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-17.js +137 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-18.js +137 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-2.js +109 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-3-n.js +79 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-4.js +112 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-5.js +113 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-6.js +112 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-7.js +113 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-8.js +103 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-9.js +103 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.24-1.js +134 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.24-2.js +134 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.24-3.js +134 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.24-4.js +134 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.24-5.js +134 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.24-6.js +134 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.24-7.js +134 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.24-8.js +133 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.25-1.js +174 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.26-1.js +183 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.27-1.js +183 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.28-1.js +196 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.29-1.js +191 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.3-1-n.js +80 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.3-2.js +104 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.30-1.js +192 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.31-1.js +222 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.32-1.js +141 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.33-1.js +145 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.34-1.js +182 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.35-1.js +139 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.36-1.js +165 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.36-2.js +164 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.36-3.js +163 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.36-4.js +163 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.36-5.js +163 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.36-6.js +163 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.36-7.js +163 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.37-1.js +173 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.37-2.js +161 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.37-3.js +164 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.37-4.js +163 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.37-5.js +159 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.4-1.js +93 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.4-2-n.js +76 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.5.js +112 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.6.js +104 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.7.js +105 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.8.js +113 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.9.js +113 -0
- data/vendor/tracemonkey/tests/ecma/Date/15.9.5.js +83 -0
- data/vendor/tracemonkey/tests/ecma/Date/jstests.list +151 -0
- data/vendor/tracemonkey/tests/ecma/Date/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.3-1.js +107 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.3-2.js +73 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.3.js +170 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.4-1.js +111 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.4-10.js +105 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.4-2.js +113 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.4-3.js +111 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.4-4.js +113 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.4-5.js +112 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.4-6.js +100 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.4-7.js +112 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.4-8.js +113 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.5-1.js +118 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.5-2.js +100 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.5-3.js +130 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.5-4.js +91 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.8-2.js +120 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.8-3.js +66 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.2.1.js +85 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.2.2-1.js +122 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.2.2-2.js +133 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.2.3-1.js +86 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.2.3-2.js +92 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/jstests.list +24 -0
- data/vendor/tracemonkey/tests/ecma/ExecutionContexts/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.1.1.js +137 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.10-1.js +270 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.10-2.js +269 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.10-3.js +268 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.12-1.js +110 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.12-2-n.js +74 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.12-3.js +71 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.12-4.js +71 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.13.1.js +72 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.13.2-1.js +231 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.13.2-2.js +253 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.13.2-3.js +300 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.13.2-4.js +137 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.13.2-5.js +137 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.13.js +86 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.14-1.js +73 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.1-1.js +272 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.1-2.js +128 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.1-3-n.js +128 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.1-4-n.js +128 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.1-5.js +128 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-1-n.js +104 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-1.js +100 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-10-n.js +102 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-11.js +104 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-2-n.js +104 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-3-n.js +100 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-4-n.js +104 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-5-n.js +104 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-6-n.js +103 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-7-n.js +104 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-8-n.js +104 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-9-n.js +104 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.3-1.js +125 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.3-2-n.js +94 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.3-3-n.js +91 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.3-4-n.js +91 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.2.3-5.js +85 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.3.1.js +153 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.3.2.js +153 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.4.1.js +92 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.4.2.js +83 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.4.3.js +111 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.4.4.js +156 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.4.5.js +154 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.4.6.js +299 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.4.7-01.js +299 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.4.7-02.js +87 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.4.8.js +215 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.4.9.js +94 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.5.1.js +115 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.5.2.js +154 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.5.3.js +161 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.6.1-1.js +160 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.6.1-2.js +164 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.6.1-3.js +150 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.6.2-1.js +165 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.6.3.js +115 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.7.1.js +228 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.7.2.js +246 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.7.3.js +230 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.8.1.js +121 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.8.2.js +121 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.8.3.js +120 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.8.4.js +121 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.9.1.js +159 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.9.2.js +159 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/11.9.3.js +159 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/jstests.list +69 -0
- data/vendor/tracemonkey/tests/ecma/Expressions/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.1.1-1.js +136 -0
- data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.1.1-2.js +183 -0
- data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.1.1-3.js +99 -0
- data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.2.1-1.js +132 -0
- data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.2.1-2.js +107 -0
- data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.2.1-3.js +95 -0
- data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.3.1-2.js +70 -0
- data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.3.1-3.js +79 -0
- data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.3.1-4.js +70 -0
- data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.3.2.js +62 -0
- data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.4-1.js +94 -0
- data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.4.1.js +61 -0
- data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.4.js +81 -0
- data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.5-1.js +117 -0
- data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.5-2.js +90 -0
- data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.5.1.js +83 -0
- data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.5.3.js +72 -0
- data/vendor/tracemonkey/tests/ecma/FunctionObjects/jstests.list +18 -0
- data/vendor/tracemonkey/tests/ecma/FunctionObjects/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1-1-n.js +70 -0
- data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1-2-n.js +67 -0
- data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.1.1.js +63 -0
- data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.1.2.js +62 -0
- data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.1-2.js +66 -0
- data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.2-1.js +410 -0
- data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.2-2.js +238 -0
- data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.3-1.js +441 -0
- data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.3-2.js +291 -0
- data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.4.js +205 -0
- data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.5-1.js +206 -0
- data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.5-2.js +183 -0
- data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.5-3.js +207 -0
- data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.6.js +125 -0
- data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.7.js +130 -0
- data/vendor/tracemonkey/tests/ecma/GlobalObject/jstests.list +16 -0
- data/vendor/tracemonkey/tests/ecma/GlobalObject/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.1-1.js +82 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.1-2.js +73 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.1-3.js +89 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.2-1.js +73 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.2-2-n.js +74 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.2-3-n.js +74 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.2-4-n.js +73 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.2-5-n.js +72 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.2-6.js +68 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-1.js +92 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-10.js +65 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-11.js +66 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-12.js +64 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-13-n.js +66 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-2.js +65 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-3.js +65 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-4.js +65 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-5.js +65 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-6.js +65 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-7.js +66 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-8.js +65 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-9.js +65 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.1-1-n.js +71 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.1-2-n.js +71 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.1-3-n.js +69 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-1-n.js +77 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-10-n.js +77 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-11-n.js +77 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-12-n.js +77 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-13-n.js +77 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-14-n.js +77 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-15-n.js +77 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-16-n.js +77 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-2-n.js +77 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-3-n.js +77 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-4-n.js +77 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-5-n.js +77 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-6-n.js +77 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-7-n.js +75 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-8-n.js +76 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-9-n.js +77 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-1-n.js +71 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-10-n.js +71 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-11-n.js +71 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-12-n.js +71 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-13-n.js +71 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-14-n.js +103 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-15-n.js +97 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-16-n.js +88 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-2-n.js +71 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-3-n.js +71 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-4-n.js +102 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-5-n.js +71 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-6-n.js +71 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-7-n.js +103 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-8-n.js +71 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-9-n.js +104 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.5-1.js +62 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.5-10-n.js +64 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.5-2-n.js +64 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.5-3-n.js +64 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.5-4-n.js +64 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.5-5-n.js +64 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.5-6.js +61 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.5-7.js +61 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.5-8-n.js +64 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.5-9-n.js +64 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.6.js +313 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.7.1.js +64 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.7.2.js +71 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.7.3-1.js +198 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.7.3-2.js +93 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.7.3.js +331 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.7.4.js +269 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.8.2-n.js +63 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/jstests.list +76 -0
- data/vendor/tracemonkey/tests/ecma/LexicalConventions/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8-2-n.js +82 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8-3-n.js +81 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.1.1-1.js +64 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.1.1-2.js +69 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.1.2-1.js +64 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.1.2-2.js +70 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.1.3-1.js +65 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.1.3-2.js +72 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.1.4-1.js +65 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.1.4-2.js +69 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.1.5-1.js +66 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.1.5-2.js +70 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.1.6-1.js +65 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.1.6-2.js +70 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.1.7-1.js +65 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.1.7-2.js +70 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.1.8-1.js +65 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.1.8-2.js +69 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.1.8-3.js +63 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.1.js +149 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.2.1.js +226 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.2.10.js +153 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.2.11.js +200 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.2.12.js +177 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.2.13.js +385 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.2.14.js +79 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.2.15.js +202 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.2.16.js +132 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.2.17.js +217 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.2.18.js +165 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.2.2.js +156 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.2.3.js +158 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.2.4.js +156 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.2.5.js +244 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.2.6.js +232 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.2.7.js +283 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.2.8.js +134 -0
- data/vendor/tracemonkey/tests/ecma/Math/15.8.2.9.js +191 -0
- data/vendor/tracemonkey/tests/ecma/Math/jstests.list +39 -0
- data/vendor/tracemonkey/tests/ecma/Math/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma/NativeObjects/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.1.js +88 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.2.js +168 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.1-1.js +71 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.1-2.js +71 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.1-3.js +67 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.2-1.js +65 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.2-2.js +70 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.2-3.js +67 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.2-4.js +64 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.3-1.js +68 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.3-2.js +73 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.3-3.js +64 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.3-4.js +66 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.4-1.js +66 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.4-2.js +71 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.4-3.js +65 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.4-4.js +66 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.5-1.js +64 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.5-2.js +70 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.5-3.js +65 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.5-4.js +66 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.6-1.js +65 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.6-2.js +69 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.6-3.js +65 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.6-4.js +66 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.3.js +69 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.4-1.js +60 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.4.1.js +62 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.4.2-1.js +111 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.4.2-2-n.js +76 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.4.2-3-n.js +73 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.4.2-4.js +70 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.4.3-1.js +97 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.4.3-2.js +65 -0
- data/vendor/tracemonkey/tests/ecma/Number/15.7.4.3-3-n.js +72 -0
- data/vendor/tracemonkey/tests/ecma/Number/jstests.list +36 -0
- data/vendor/tracemonkey/tests/ecma/Number/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.1.1.js +146 -0
- data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.1.2.js +81 -0
- data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.2.1.js +138 -0
- data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.2.2.js +74 -0
- data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.3-1.js +64 -0
- data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.3.1-1.js +69 -0
- data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.3.1-2.js +70 -0
- data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.3.1-3.js +70 -0
- data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.3.1-4.js +70 -0
- data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.3.js +67 -0
- data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.4.1.js +64 -0
- data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.4.2.js +130 -0
- data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.4.3.js +117 -0
- data/vendor/tracemonkey/tests/ecma/ObjectObjects/jstests.list +14 -0
- data/vendor/tracemonkey/tests/ecma/ObjectObjects/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma/README +1 -0
- data/vendor/tracemonkey/tests/ecma/SourceText/6-1.js +128 -0
- data/vendor/tracemonkey/tests/ecma/SourceText/6-2.js +131 -0
- data/vendor/tracemonkey/tests/ecma/SourceText/jstests.list +3 -0
- data/vendor/tracemonkey/tests/ecma/SourceText/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.10-1.js +151 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.10.js +61 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.2-1.js +74 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.5-1.js +102 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.5-2.js +99 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.1-1.js +74 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.2-1.js +75 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.2-2.js +76 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.2-3.js +72 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.2-4.js +72 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.2-5.js +73 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.2-6.js +75 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.2-7.js +73 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.2-8.js +71 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.2-9-n.js +76 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-1.js +63 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-10.js +115 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-11.js +98 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-12.js +103 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-19.js +117 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-2.js +63 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-3.js +73 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-4.js +202 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-5-n.js +110 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-6-n.js +109 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-7-n.js +110 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-8-n.js +110 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-9-n.js +109 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.7-1-n.js +64 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.8-1-n.js +67 -0
- data/vendor/tracemonkey/tests/ecma/Statements/12.9-1-n.js +63 -0
- data/vendor/tracemonkey/tests/ecma/Statements/jstests.list +32 -0
- data/vendor/tracemonkey/tests/ecma/Statements/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.1.js +134 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.2.js +110 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.3.1-1.js +71 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.3.1-2.js +69 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.3.1-3.js +66 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.3.1-4.js +66 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.3.2-1.js +190 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.3.2-2.js +77 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.3.2-3.js +121 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.3.js +66 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.1.js +63 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.10-1.js +217 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.11-1.js +518 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.11-2.js +515 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.11-3.js +514 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.11-4.js +507 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.11-5.js +520 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.11-6.js +516 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.12-1.js +520 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.12-2.js +518 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.12-3.js +559 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.12-4.js +515 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.12-5.js +515 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.2-1.js +72 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.2-2-n.js +73 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.2-3.js +83 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.2.js +87 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.3-1.js +72 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.3-2.js +90 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.3-3-n.js +72 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.4-1.js +92 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.4-2.js +136 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.4-3.js +112 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.4-4.js +124 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.5-1.js +87 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.5-2.js +121 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.5-3.js +131 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.5-4.js +75 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.5-5.js +106 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.6-1.js +155 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.6-2.js +259 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.7-1.js +219 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.7-2.js +217 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.8-1.js +232 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.8-2.js +247 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.8-3.js +204 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.9-1.js +202 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.4.js +108 -0
- data/vendor/tracemonkey/tests/ecma/String/15.5.5.1.js +88 -0
- data/vendor/tracemonkey/tests/ecma/String/jstests.list +50 -0
- data/vendor/tracemonkey/tests/ecma/String/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma/TypeConversion/9.2.js +138 -0
- data/vendor/tracemonkey/tests/ecma/TypeConversion/9.3-1.js +100 -0
- data/vendor/tracemonkey/tests/ecma/TypeConversion/9.3.1-1.js +323 -0
- data/vendor/tracemonkey/tests/ecma/TypeConversion/9.3.1-2.js +87 -0
- data/vendor/tracemonkey/tests/ecma/TypeConversion/9.3.1-3.js +747 -0
- data/vendor/tracemonkey/tests/ecma/TypeConversion/9.3.js +87 -0
- data/vendor/tracemonkey/tests/ecma/TypeConversion/9.4-1.js +112 -0
- data/vendor/tracemonkey/tests/ecma/TypeConversion/9.4-2.js +112 -0
- data/vendor/tracemonkey/tests/ecma/TypeConversion/9.5-2.js +173 -0
- data/vendor/tracemonkey/tests/ecma/TypeConversion/9.6.js +140 -0
- data/vendor/tracemonkey/tests/ecma/TypeConversion/9.7.js +160 -0
- data/vendor/tracemonkey/tests/ecma/TypeConversion/9.8.1.js +167 -0
- data/vendor/tracemonkey/tests/ecma/TypeConversion/9.9-1.js +119 -0
- data/vendor/tracemonkey/tests/ecma/TypeConversion/jstests.list +14 -0
- data/vendor/tracemonkey/tests/ecma/TypeConversion/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma/Types/8.1.js +75 -0
- data/vendor/tracemonkey/tests/ecma/Types/8.4.js +130 -0
- data/vendor/tracemonkey/tests/ecma/Types/8.6.2.1-1.js +78 -0
- data/vendor/tracemonkey/tests/ecma/Types/jstests.list +4 -0
- data/vendor/tracemonkey/tests/ecma/Types/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma/browser.js +62 -0
- data/vendor/tracemonkey/tests/ecma/extensions/10.1.4-9.js +110 -0
- data/vendor/tracemonkey/tests/ecma/extensions/10.1.6.js +127 -0
- data/vendor/tracemonkey/tests/ecma/extensions/10.1.8-1.js +135 -0
- data/vendor/tracemonkey/tests/ecma/extensions/11.6.1-1.js +145 -0
- data/vendor/tracemonkey/tests/ecma/extensions/11.6.1-2.js +136 -0
- data/vendor/tracemonkey/tests/ecma/extensions/11.6.1-3.js +137 -0
- data/vendor/tracemonkey/tests/ecma/extensions/11.6.2-1.js +124 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15-1.js +94 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15-2.js +77 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.1.2.1-1.js +88 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.2.1.1.js +82 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.2.3-1.js +64 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.2.4.js +66 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.3.1.1-1.js +82 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.3.1.1-2.js +82 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.3.2.1-1.js +72 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.3.2.1-2.js +72 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.3.3.1-1.js +67 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.4.3.js +63 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.5.3.js +66 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.5.4.2.js +59 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.5.4.4-4.js +107 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.5.4.5-6.js +94 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.5.4.7-3.js +161 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.6.3.1-5.js +58 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.6.3.js +65 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.6.4-2.js +66 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.7.3.js +69 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.7.4.js +90 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.8-1.js +84 -0
- data/vendor/tracemonkey/tests/ecma/extensions/15.9.5.js +76 -0
- data/vendor/tracemonkey/tests/ecma/extensions/8.6.2.1-1.js +98 -0
- data/vendor/tracemonkey/tests/ecma/extensions/9.9-1.js +102 -0
- data/vendor/tracemonkey/tests/ecma/extensions/jstests.list +34 -0
- data/vendor/tracemonkey/tests/ecma/extensions/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma/jsref.js +632 -0
- data/vendor/tracemonkey/tests/ecma/jstests.list +18 -0
- data/vendor/tracemonkey/tests/ecma/shell.js +581 -0
- data/vendor/tracemonkey/tests/ecma/template.js +70 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/boolean-001.js +80 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/boolean-002.js +84 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/date-001.js +93 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/date-002.js +87 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/date-003.js +89 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/date-004.js +83 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-001.js +78 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-002.js +78 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-003.js +82 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-004.js +78 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-005.js +78 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-006.js +89 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-007.js +90 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-008.js +77 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-009.js +86 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-010-n.js +61 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-011-n.js +62 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-001.js +83 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-002.js +93 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-003.js +88 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-004.js +82 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-005.js +74 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-006.js +79 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-007.js +77 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-008.js +74 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-009.js +75 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-010.js +76 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-011.js +76 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-012.js +77 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-013.js +77 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-014.js +79 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-015.js +73 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-016.js +73 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-017.js +73 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-019.js +77 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/function-001.js +86 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/global-001.js +78 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/global-002.js +78 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/jstests.list +103 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-001.js +85 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-002.js +85 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-003.js +76 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-004.js +85 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-005.js +85 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-006.js +91 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-007.js +84 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-008.js +86 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-009.js +86 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-010.js +84 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-011.js +95 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-012.js +86 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-013.js +86 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-014.js +95 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-015.js +86 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-016.js +95 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-017.js +87 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-018.js +86 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-019.js +86 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-020.js +86 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-021.js +95 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-022.js +86 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-023.js +85 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-024.js +92 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-025.js +92 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-026.js +92 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-027.js +94 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-028.js +92 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-029.js +92 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-030.js +92 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-031.js +92 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-032.js +92 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-033.js +92 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-034.js +91 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-035.js +92 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-036.js +92 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-037.js +92 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-038.js +92 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-039.js +79 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-040.js +79 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-041.js +81 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-042.js +82 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-047.js +83 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-048.js +77 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-049.js +82 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-050.js +78 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-051.js +78 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-052.js +80 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-053.js +78 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-054.js +79 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/number-001.js +86 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/number-002.js +81 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/number-003.js +83 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/statement-001.js +80 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/statement-002.js +102 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/statement-003.js +113 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/statement-004.js +85 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/statement-005.js +84 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/statement-006.js +84 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/statement-007.js +75 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/statement-008.js +75 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/statement-009.js +74 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/string-001.js +86 -0
- data/vendor/tracemonkey/tests/ecma_2/Exceptions/string-002.js +85 -0
- data/vendor/tracemonkey/tests/ecma_2/Expressions/StrictEquality-001.js +106 -0
- data/vendor/tracemonkey/tests/ecma_2/Expressions/jstests.list +2 -0
- data/vendor/tracemonkey/tests/ecma_2/Expressions/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_2/FunctionObjects/apply-001-n.js +65 -0
- data/vendor/tracemonkey/tests/ecma_2/FunctionObjects/call-1.js +75 -0
- data/vendor/tracemonkey/tests/ecma_2/FunctionObjects/jstests.list +3 -0
- data/vendor/tracemonkey/tests/ecma_2/FunctionObjects/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_2/LexicalConventions/jstests.list +4 -0
- data/vendor/tracemonkey/tests/ecma_2/LexicalConventions/keywords-001.js +81 -0
- data/vendor/tracemonkey/tests/ecma_2/LexicalConventions/regexp-literals-001.js +77 -0
- data/vendor/tracemonkey/tests/ecma_2/LexicalConventions/regexp-literals-002.js +61 -0
- data/vendor/tracemonkey/tests/ecma_2/LexicalConventions/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_2/README +1 -0
- data/vendor/tracemonkey/tests/ecma_2/RegExp/constructor-001.js +99 -0
- data/vendor/tracemonkey/tests/ecma_2/RegExp/exec-001.js +73 -0
- data/vendor/tracemonkey/tests/ecma_2/RegExp/exec-002.js +221 -0
- data/vendor/tracemonkey/tests/ecma_2/RegExp/function-001.js +99 -0
- data/vendor/tracemonkey/tests/ecma_2/RegExp/hex-001.js +102 -0
- data/vendor/tracemonkey/tests/ecma_2/RegExp/jstests.list +15 -0
- data/vendor/tracemonkey/tests/ecma_2/RegExp/multiline-001.js +101 -0
- data/vendor/tracemonkey/tests/ecma_2/RegExp/octal-001.js +111 -0
- data/vendor/tracemonkey/tests/ecma_2/RegExp/octal-002.js +126 -0
- data/vendor/tracemonkey/tests/ecma_2/RegExp/octal-003.js +120 -0
- data/vendor/tracemonkey/tests/ecma_2/RegExp/properties-001.js +124 -0
- data/vendor/tracemonkey/tests/ecma_2/RegExp/properties-002.js +162 -0
- data/vendor/tracemonkey/tests/ecma_2/RegExp/regexp-enumerate-001.js +121 -0
- data/vendor/tracemonkey/tests/ecma_2/RegExp/regress-001.js +78 -0
- data/vendor/tracemonkey/tests/ecma_2/RegExp/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_2/RegExp/unicode-001.js +92 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/dowhile-001.js +77 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/dowhile-002.js +104 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/dowhile-003.js +96 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/dowhile-004.js +100 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/dowhile-005.js +106 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/dowhile-006.js +122 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/dowhile-007.js +130 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/forin-001.js +330 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/forin-002.js +109 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/if-001.js +75 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/jstests.list +31 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/label-001.js +75 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/label-002.js +89 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/switch-001.js +98 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/switch-002.js +96 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/switch-003.js +90 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/switch-004.js +127 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/try-001.js +116 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/try-003.js +115 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/try-004.js +87 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/try-005.js +90 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/try-006.js +120 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/try-007.js +125 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/try-008.js +92 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/try-009.js +99 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/try-010.js +106 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/try-012.js +128 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/while-001.js +75 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/while-002.js +119 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/while-003.js +120 -0
- data/vendor/tracemonkey/tests/ecma_2/Statements/while-004.js +250 -0
- data/vendor/tracemonkey/tests/ecma_2/String/jstests.list +9 -0
- data/vendor/tracemonkey/tests/ecma_2/String/match-001.js +139 -0
- data/vendor/tracemonkey/tests/ecma_2/String/match-002.js +207 -0
- data/vendor/tracemonkey/tests/ecma_2/String/match-003.js +165 -0
- data/vendor/tracemonkey/tests/ecma_2/String/match-004.js +206 -0
- data/vendor/tracemonkey/tests/ecma_2/String/replace-001.js +99 -0
- data/vendor/tracemonkey/tests/ecma_2/String/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_2/String/split-001.js +145 -0
- data/vendor/tracemonkey/tests/ecma_2/String/split-002.js +303 -0
- data/vendor/tracemonkey/tests/ecma_2/String/split-003.js +156 -0
- data/vendor/tracemonkey/tests/ecma_2/browser.js +37 -0
- data/vendor/tracemonkey/tests/ecma_2/extensions/constructor-001.js +74 -0
- data/vendor/tracemonkey/tests/ecma_2/extensions/function-001.js +74 -0
- data/vendor/tracemonkey/tests/ecma_2/extensions/instanceof-001.js +144 -0
- data/vendor/tracemonkey/tests/ecma_2/extensions/instanceof-002.js +160 -0
- data/vendor/tracemonkey/tests/ecma_2/extensions/instanceof-003-n.js +121 -0
- data/vendor/tracemonkey/tests/ecma_2/extensions/instanceof-004-n.js +121 -0
- data/vendor/tracemonkey/tests/ecma_2/extensions/instanceof-005-n.js +122 -0
- data/vendor/tracemonkey/tests/ecma_2/extensions/instanceof-006.js +119 -0
- data/vendor/tracemonkey/tests/ecma_2/extensions/jstests.list +9 -0
- data/vendor/tracemonkey/tests/ecma_2/extensions/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_2/instanceof/instanceof-001.js +67 -0
- data/vendor/tracemonkey/tests/ecma_2/instanceof/instanceof-002.js +84 -0
- data/vendor/tracemonkey/tests/ecma_2/instanceof/instanceof-003.js +98 -0
- data/vendor/tracemonkey/tests/ecma_2/instanceof/jstests.list +5 -0
- data/vendor/tracemonkey/tests/ecma_2/instanceof/regress-7635.js +88 -0
- data/vendor/tracemonkey/tests/ecma_2/instanceof/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_2/jsref.js +591 -0
- data/vendor/tracemonkey/tests/ecma_2/jstests.list +9 -0
- data/vendor/tracemonkey/tests/ecma_2/shell.js +51 -0
- data/vendor/tracemonkey/tests/ecma_2/template.js +57 -0
- data/vendor/tracemonkey/tests/ecma_3/Array/15.4.4.11-01.js +61 -0
- data/vendor/tracemonkey/tests/ecma_3/Array/15.4.4.3-1.js +88 -0
- data/vendor/tracemonkey/tests/ecma_3/Array/15.4.4.4-001.js +153 -0
- data/vendor/tracemonkey/tests/ecma_3/Array/15.4.5.1-01.js +93 -0
- data/vendor/tracemonkey/tests/ecma_3/Array/15.5.4.8-01.js +76 -0
- data/vendor/tracemonkey/tests/ecma_3/Array/jstests.list +16 -0
- data/vendor/tracemonkey/tests/ecma_3/Array/regress-101488.js +172 -0
- data/vendor/tracemonkey/tests/ecma_3/Array/regress-130451.js +219 -0
- data/vendor/tracemonkey/tests/ecma_3/Array/regress-322135-01.js +73 -0
- data/vendor/tracemonkey/tests/ecma_3/Array/regress-322135-02.js +65 -0
- data/vendor/tracemonkey/tests/ecma_3/Array/regress-322135-03.js +73 -0
- data/vendor/tracemonkey/tests/ecma_3/Array/regress-322135-04.js +71 -0
- data/vendor/tracemonkey/tests/ecma_3/Array/regress-387501.js +94 -0
- data/vendor/tracemonkey/tests/ecma_3/Array/regress-421325.js +67 -0
- data/vendor/tracemonkey/tests/ecma_3/Array/regress-430717.js +65 -0
- data/vendor/tracemonkey/tests/ecma_3/Array/regress-488989.js +68 -0
- data/vendor/tracemonkey/tests/ecma_3/Array/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_3/Date/15.9.1.2-01.js +62 -0
- data/vendor/tracemonkey/tests/ecma_3/Date/15.9.3.2-1.js +91 -0
- data/vendor/tracemonkey/tests/ecma_3/Date/15.9.4.3.js +233 -0
- data/vendor/tracemonkey/tests/ecma_3/Date/15.9.5.3.js +152 -0
- data/vendor/tracemonkey/tests/ecma_3/Date/15.9.5.4.js +185 -0
- data/vendor/tracemonkey/tests/ecma_3/Date/15.9.5.5-02.js +88 -0
- data/vendor/tracemonkey/tests/ecma_3/Date/15.9.5.5.js +144 -0
- data/vendor/tracemonkey/tests/ecma_3/Date/15.9.5.6.js +153 -0
- data/vendor/tracemonkey/tests/ecma_3/Date/15.9.5.7.js +142 -0
- data/vendor/tracemonkey/tests/ecma_3/Date/browser.js +37 -0
- data/vendor/tracemonkey/tests/ecma_3/Date/jstests.list +11 -0
- data/vendor/tracemonkey/tests/ecma_3/Date/regress-452786.js +66 -0
- data/vendor/tracemonkey/tests/ecma_3/Date/shell.js +564 -0
- data/vendor/tracemonkey/tests/ecma_3/Exceptions/15.11.1.1.js +137 -0
- data/vendor/tracemonkey/tests/ecma_3/Exceptions/15.11.4.4-1.js +174 -0
- data/vendor/tracemonkey/tests/ecma_3/Exceptions/15.11.7.6-001.js +130 -0
- data/vendor/tracemonkey/tests/ecma_3/Exceptions/15.11.7.6-002.js +132 -0
- data/vendor/tracemonkey/tests/ecma_3/Exceptions/15.11.7.6-003.js +132 -0
- data/vendor/tracemonkey/tests/ecma_3/Exceptions/binding-001.js +128 -0
- data/vendor/tracemonkey/tests/ecma_3/Exceptions/jstests.list +11 -0
- data/vendor/tracemonkey/tests/ecma_3/Exceptions/regress-181654.js +155 -0
- data/vendor/tracemonkey/tests/ecma_3/Exceptions/regress-181914.js +194 -0
- data/vendor/tracemonkey/tests/ecma_3/Exceptions/regress-58946.js +71 -0
- data/vendor/tracemonkey/tests/ecma_3/Exceptions/regress-95101.js +118 -0
- data/vendor/tracemonkey/tests/ecma_3/Exceptions/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_3/ExecutionContexts/10.1.3-1.js +201 -0
- data/vendor/tracemonkey/tests/ecma_3/ExecutionContexts/10.1.3-2.js +70 -0
- data/vendor/tracemonkey/tests/ecma_3/ExecutionContexts/10.1.3.js +73 -0
- data/vendor/tracemonkey/tests/ecma_3/ExecutionContexts/10.1.4-1.js +85 -0
- data/vendor/tracemonkey/tests/ecma_3/ExecutionContexts/10.6.1-01.js +136 -0
- data/vendor/tracemonkey/tests/ecma_3/ExecutionContexts/jstests.list +8 -0
- data/vendor/tracemonkey/tests/ecma_3/ExecutionContexts/regress-23346.js +71 -0
- data/vendor/tracemonkey/tests/ecma_3/ExecutionContexts/regress-448595-01.js +91 -0
- data/vendor/tracemonkey/tests/ecma_3/ExecutionContexts/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_3/Expressions/11.10-01.js +76 -0
- data/vendor/tracemonkey/tests/ecma_3/Expressions/11.10-02.js +76 -0
- data/vendor/tracemonkey/tests/ecma_3/Expressions/11.10-03.js +76 -0
- data/vendor/tracemonkey/tests/ecma_3/Expressions/11.6.1-1.js +176 -0
- data/vendor/tracemonkey/tests/ecma_3/Expressions/11.7.1-01.js +76 -0
- data/vendor/tracemonkey/tests/ecma_3/Expressions/11.7.2-01.js +76 -0
- data/vendor/tracemonkey/tests/ecma_3/Expressions/11.7.3-01.js +76 -0
- data/vendor/tracemonkey/tests/ecma_3/Expressions/11.9.6-1.js +213 -0
- data/vendor/tracemonkey/tests/ecma_3/Expressions/jstests.list +9 -0
- data/vendor/tracemonkey/tests/ecma_3/Expressions/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_3/FunExpr/fe-001-n.js +58 -0
- data/vendor/tracemonkey/tests/ecma_3/FunExpr/fe-001.js +57 -0
- data/vendor/tracemonkey/tests/ecma_3/FunExpr/fe-002.js +61 -0
- data/vendor/tracemonkey/tests/ecma_3/FunExpr/jstests.list +5 -0
- data/vendor/tracemonkey/tests/ecma_3/FunExpr/regress-528082.js +21 -0
- data/vendor/tracemonkey/tests/ecma_3/FunExpr/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_3/Function/15.3.4.3-1.js +210 -0
- data/vendor/tracemonkey/tests/ecma_3/Function/15.3.4.4-1.js +185 -0
- data/vendor/tracemonkey/tests/ecma_3/Function/arguments-001.js +169 -0
- data/vendor/tracemonkey/tests/ecma_3/Function/arguments-002.js +73 -0
- data/vendor/tracemonkey/tests/ecma_3/Function/call-001.js +153 -0
- data/vendor/tracemonkey/tests/ecma_3/Function/jstests.list +17 -0
- data/vendor/tracemonkey/tests/ecma_3/Function/regress-131964.js +196 -0
- data/vendor/tracemonkey/tests/ecma_3/Function/regress-137181.js +113 -0
- data/vendor/tracemonkey/tests/ecma_3/Function/regress-193555.js +136 -0
- data/vendor/tracemonkey/tests/ecma_3/Function/regress-313570.js +63 -0
- data/vendor/tracemonkey/tests/ecma_3/Function/regress-49286.js +137 -0
- data/vendor/tracemonkey/tests/ecma_3/Function/regress-58274.js +226 -0
- data/vendor/tracemonkey/tests/ecma_3/Function/regress-85880.js +173 -0
- data/vendor/tracemonkey/tests/ecma_3/Function/regress-94506.js +163 -0
- data/vendor/tracemonkey/tests/ecma_3/Function/regress-97921.js +152 -0
- data/vendor/tracemonkey/tests/ecma_3/Function/scope-001.js +265 -0
- data/vendor/tracemonkey/tests/ecma_3/Function/scope-002.js +245 -0
- data/vendor/tracemonkey/tests/ecma_3/Function/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_3/LexicalConventions/7.4-01.js +73 -0
- data/vendor/tracemonkey/tests/ecma_3/LexicalConventions/7.9.1.js +157 -0
- data/vendor/tracemonkey/tests/ecma_3/LexicalConventions/jstests.list +3 -0
- data/vendor/tracemonkey/tests/ecma_3/LexicalConventions/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_3/Number/15.7.4.2-01.js +77 -0
- data/vendor/tracemonkey/tests/ecma_3/Number/15.7.4.3-01.js +69 -0
- data/vendor/tracemonkey/tests/ecma_3/Number/15.7.4.3-02.js +53 -0
- data/vendor/tracemonkey/tests/ecma_3/Number/15.7.4.5-1.js +145 -0
- data/vendor/tracemonkey/tests/ecma_3/Number/15.7.4.5-2.js +62 -0
- data/vendor/tracemonkey/tests/ecma_3/Number/15.7.4.6-1.js +149 -0
- data/vendor/tracemonkey/tests/ecma_3/Number/15.7.4.7-1.js +154 -0
- data/vendor/tracemonkey/tests/ecma_3/Number/15.7.4.7-2.js +72 -0
- data/vendor/tracemonkey/tests/ecma_3/Number/jstests.list +10 -0
- data/vendor/tracemonkey/tests/ecma_3/Number/regress-442242-01.js +62 -0
- data/vendor/tracemonkey/tests/ecma_3/Number/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_3/NumberFormatting/jstests.list +2 -0
- data/vendor/tracemonkey/tests/ecma_3/NumberFormatting/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_3/NumberFormatting/tostring-001.js +60 -0
- data/vendor/tracemonkey/tests/ecma_3/Object/8.6.1-01.js +113 -0
- data/vendor/tracemonkey/tests/ecma_3/Object/8.6.2.6-001.js +113 -0
- data/vendor/tracemonkey/tests/ecma_3/Object/8.6.2.6-002.js +79 -0
- data/vendor/tracemonkey/tests/ecma_3/Object/browser.js +7 -0
- data/vendor/tracemonkey/tests/ecma_3/Object/class-001.js +156 -0
- data/vendor/tracemonkey/tests/ecma_3/Object/class-002.js +146 -0
- data/vendor/tracemonkey/tests/ecma_3/Object/class-003.js +139 -0
- data/vendor/tracemonkey/tests/ecma_3/Object/class-004.js +139 -0
- data/vendor/tracemonkey/tests/ecma_3/Object/class-005.js +124 -0
- data/vendor/tracemonkey/tests/ecma_3/Object/jstests.list +14 -0
- data/vendor/tracemonkey/tests/ecma_3/Object/regress-361274.js +66 -0
- data/vendor/tracemonkey/tests/ecma_3/Object/regress-385393-07.js +67 -0
- data/vendor/tracemonkey/tests/ecma_3/Object/regress-459405.js +71 -0
- data/vendor/tracemonkey/tests/ecma_3/Object/regress-72773.js +97 -0
- data/vendor/tracemonkey/tests/ecma_3/Object/regress-79129-001.js +80 -0
- data/vendor/tracemonkey/tests/ecma_3/Object/shell.js +105 -0
- data/vendor/tracemonkey/tests/ecma_3/Operators/11.13.1-001.js +152 -0
- data/vendor/tracemonkey/tests/ecma_3/Operators/11.13.1-002.js +57 -0
- data/vendor/tracemonkey/tests/ecma_3/Operators/11.4.1-001.js +120 -0
- data/vendor/tracemonkey/tests/ecma_3/Operators/11.4.1-002.js +72 -0
- data/vendor/tracemonkey/tests/ecma_3/Operators/jstests.list +6 -0
- data/vendor/tracemonkey/tests/ecma_3/Operators/order-01.js +108 -0
- data/vendor/tracemonkey/tests/ecma_3/Operators/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_3/README +1 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.2-1.js +181 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.2.12.js +63 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.3.1-1.js +136 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.3.1-2.js +144 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.4.1-1.js +127 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.4.1-2.js +133 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.4.1-3.js +139 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.4.1-4.js +146 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.4.1-5-n.js +139 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.4.1-6.js +95 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.6.2-1.js +140 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.6.2-2.js +367 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/jstests.list +68 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/octal-001.js +136 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/octal-002.js +218 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/perlstress-001.js +3230 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/perlstress-002.js +1842 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-100199.js +307 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-105972.js +157 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-119909.js +92 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-122076.js +110 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-123437.js +112 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-165353.js +122 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-169497.js +105 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-169534.js +95 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-187133.js +142 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-188206.js +219 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-191479.js +198 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-202564.js +101 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-209067.js +1106 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-209919.js +174 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-216591.js +117 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-220367-001.js +104 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-223273.js +279 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-223535.js +133 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-224676.js +226 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-225289.js +176 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-225343.js +125 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-24712.js +59 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-285219.js +51 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-28686.js +57 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-289669.js +88 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-307456.js +54 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-309840.js +58 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-311414.js +101 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-312351.js +50 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-31316.js +96 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-330684.js +53 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-334158.js +58 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-346090.js +63 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-367888.js +62 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-375642.js +61 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-375711.js +118 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-375715-01-n.js +63 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-375715-02.js +60 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-375715-03.js +60 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-375715-04.js +68 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-436700.js +67 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-465862.js +117 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-57572.js +150 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-57631.js +152 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-67773.js +211 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-72964.js +121 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-76683.js +114 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-78156.js +123 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-85721.js +276 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-87231.js +145 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-98306.js +99 -0
- data/vendor/tracemonkey/tests/ecma_3/RegExp/shell.js +266 -0
- data/vendor/tracemonkey/tests/ecma_3/Regress/jstests.list +7 -0
- data/vendor/tracemonkey/tests/ecma_3/Regress/regress-385393-04.js +66 -0
- data/vendor/tracemonkey/tests/ecma_3/Regress/regress-419152.js +90 -0
- data/vendor/tracemonkey/tests/ecma_3/Regress/regress-420087.js +64 -0
- data/vendor/tracemonkey/tests/ecma_3/Regress/regress-420610.js +50 -0
- data/vendor/tracemonkey/tests/ecma_3/Regress/regress-441477-01.js +73 -0
- data/vendor/tracemonkey/tests/ecma_3/Regress/regress-469937.js +60 -0
- data/vendor/tracemonkey/tests/ecma_3/Regress/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_3/Statements/12.10-01.js +68 -0
- data/vendor/tracemonkey/tests/ecma_3/Statements/12.6.3.js +80 -0
- data/vendor/tracemonkey/tests/ecma_3/Statements/jstests.list +17 -0
- data/vendor/tracemonkey/tests/ecma_3/Statements/regress-121744.js +217 -0
- data/vendor/tracemonkey/tests/ecma_3/Statements/regress-131348.js +184 -0
- data/vendor/tracemonkey/tests/ecma_3/Statements/regress-157509.js +111 -0
- data/vendor/tracemonkey/tests/ecma_3/Statements/regress-194364.js +152 -0
- data/vendor/tracemonkey/tests/ecma_3/Statements/regress-226517.js +112 -0
- data/vendor/tracemonkey/tests/ecma_3/Statements/regress-302439.js +1368 -0
- data/vendor/tracemonkey/tests/ecma_3/Statements/regress-324650.js +5461 -0
- data/vendor/tracemonkey/tests/ecma_3/Statements/regress-444979.js +77 -0
- data/vendor/tracemonkey/tests/ecma_3/Statements/regress-74474-001.js +139 -0
- data/vendor/tracemonkey/tests/ecma_3/Statements/regress-74474-002.js +9097 -0
- data/vendor/tracemonkey/tests/ecma_3/Statements/regress-74474-003.js +9099 -0
- data/vendor/tracemonkey/tests/ecma_3/Statements/regress-83532-001.js +71 -0
- data/vendor/tracemonkey/tests/ecma_3/Statements/regress-83532-002.js +74 -0
- data/vendor/tracemonkey/tests/ecma_3/Statements/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_3/Statements/switch-001.js +143 -0
- data/vendor/tracemonkey/tests/ecma_3/String/15.5.4.11.js +532 -0
- data/vendor/tracemonkey/tests/ecma_3/String/15.5.4.14.js +50 -0
- data/vendor/tracemonkey/tests/ecma_3/String/jstests.list +9 -0
- data/vendor/tracemonkey/tests/ecma_3/String/regress-104375.js +116 -0
- data/vendor/tracemonkey/tests/ecma_3/String/regress-189898.js +157 -0
- data/vendor/tracemonkey/tests/ecma_3/String/regress-304376.js +68 -0
- data/vendor/tracemonkey/tests/ecma_3/String/regress-313567.js +56 -0
- data/vendor/tracemonkey/tests/ecma_3/String/regress-392378.js +77 -0
- data/vendor/tracemonkey/tests/ecma_3/String/regress-83293.js +216 -0
- data/vendor/tracemonkey/tests/ecma_3/String/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_3/Unicode/jstests.list +10 -0
- data/vendor/tracemonkey/tests/ecma_3/Unicode/regress-352044-01.js +72 -0
- data/vendor/tracemonkey/tests/ecma_3/Unicode/regress-352044-02-n.js +72 -0
- data/vendor/tracemonkey/tests/ecma_3/Unicode/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_3/Unicode/uc-001-n.js +62 -0
- data/vendor/tracemonkey/tests/ecma_3/Unicode/uc-001.js +56 -0
- data/vendor/tracemonkey/tests/ecma_3/Unicode/uc-002-n.js +55 -0
- data/vendor/tracemonkey/tests/ecma_3/Unicode/uc-002.js +60 -0
- data/vendor/tracemonkey/tests/ecma_3/Unicode/uc-003.js +71 -0
- data/vendor/tracemonkey/tests/ecma_3/Unicode/uc-004.js +65 -0
- data/vendor/tracemonkey/tests/ecma_3/Unicode/uc-005.js +276 -0
- data/vendor/tracemonkey/tests/ecma_3/browser.js +36 -0
- data/vendor/tracemonkey/tests/ecma_3/extensions/10.1.3-2.js +162 -0
- data/vendor/tracemonkey/tests/ecma_3/extensions/7.9.1.js +83 -0
- data/vendor/tracemonkey/tests/ecma_3/extensions/jstests.list +15 -0
- data/vendor/tracemonkey/tests/ecma_3/extensions/regress-103087.js +178 -0
- data/vendor/tracemonkey/tests/ecma_3/extensions/regress-188206-01.js +108 -0
- data/vendor/tracemonkey/tests/ecma_3/extensions/regress-188206-02.js +158 -0
- data/vendor/tracemonkey/tests/ecma_3/extensions/regress-220367-002.js +112 -0
- data/vendor/tracemonkey/tests/ecma_3/extensions/regress-228087.js +352 -0
- data/vendor/tracemonkey/tests/ecma_3/extensions/regress-274152.js +83 -0
- data/vendor/tracemonkey/tests/ecma_3/extensions/regress-320854.js +53 -0
- data/vendor/tracemonkey/tests/ecma_3/extensions/regress-327170.js +58 -0
- data/vendor/tracemonkey/tests/ecma_3/extensions/regress-368516.js +78 -0
- data/vendor/tracemonkey/tests/ecma_3/extensions/regress-385393-03.js +63 -0
- data/vendor/tracemonkey/tests/ecma_3/extensions/regress-429248.js +67 -0
- data/vendor/tracemonkey/tests/ecma_3/extensions/regress-430740.js +72 -0
- data/vendor/tracemonkey/tests/ecma_3/extensions/shell.js +266 -0
- data/vendor/tracemonkey/tests/ecma_3/jstests.list +18 -0
- data/vendor/tracemonkey/tests/ecma_3/shell.js +40 -0
- data/vendor/tracemonkey/tests/ecma_3/template.js +59 -0
- data/vendor/tracemonkey/tests/ecma_3_1/Object/jstests.list +2 -0
- data/vendor/tracemonkey/tests/ecma_3_1/Object/regress-444787.js +155 -0
- data/vendor/tracemonkey/tests/ecma_3_1/Object/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_3_1/README +1 -0
- data/vendor/tracemonkey/tests/ecma_3_1/RegExp/jstests.list +2 -0
- data/vendor/tracemonkey/tests/ecma_3_1/RegExp/regress-305064.js +92 -0
- data/vendor/tracemonkey/tests/ecma_3_1/RegExp/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_3_1/browser.js +36 -0
- data/vendor/tracemonkey/tests/ecma_3_1/extensions/jstests.list +1 -0
- data/vendor/tracemonkey/tests/ecma_3_1/extensions/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_3_1/jstests.list +3 -0
- data/vendor/tracemonkey/tests/ecma_3_1/shell.js +47 -0
- data/vendor/tracemonkey/tests/ecma_3_1/template.js +59 -0
- data/vendor/tracemonkey/tests/ecma_5/Date/15.9.4.2.js +158 -0
- data/vendor/tracemonkey/tests/ecma_5/Date/jstests.list +2 -0
- data/vendor/tracemonkey/tests/ecma_5/Date/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_5/Object/15.2.3.14-01.js +91 -0
- data/vendor/tracemonkey/tests/ecma_5/Object/15.2.3.3-01.js +341 -0
- data/vendor/tracemonkey/tests/ecma_5/Object/jstests.list +3 -0
- data/vendor/tracemonkey/tests/ecma_5/Object/shell.js +1 -0
- data/vendor/tracemonkey/tests/ecma_5/README +1 -0
- data/vendor/tracemonkey/tests/ecma_5/browser.js +36 -0
- data/vendor/tracemonkey/tests/ecma_5/jstests.list +2 -0
- data/vendor/tracemonkey/tests/ecma_5/shell.js +40 -0
- data/vendor/tracemonkey/tests/ecma_5/template.js +59 -0
- data/vendor/tracemonkey/tests/get-universe.sh +52 -0
- data/vendor/tracemonkey/tests/importList.html +22 -0
- data/vendor/tracemonkey/tests/importList.js +94 -0
- data/vendor/tracemonkey/tests/js-test-driver-begin.js +1 -0
- data/vendor/tracemonkey/tests/js-test-driver-end.js +3 -0
- data/vendor/tracemonkey/tests/js-test-driver-quirks.html +23 -0
- data/vendor/tracemonkey/tests/js-test-driver-standards.html +23 -0
- data/vendor/tracemonkey/tests/js1_1/README +1 -0
- data/vendor/tracemonkey/tests/js1_1/browser.js +37 -0
- data/vendor/tracemonkey/tests/js1_1/jsref.js +167 -0
- data/vendor/tracemonkey/tests/js1_1/jstests.list +1 -0
- data/vendor/tracemonkey/tests/js1_1/regress/function-001.js +79 -0
- data/vendor/tracemonkey/tests/js1_1/regress/jstests.list +2 -0
- data/vendor/tracemonkey/tests/js1_1/regress/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_1/shell.js +39 -0
- data/vendor/tracemonkey/tests/js1_2/Array/array_split_1.js +86 -0
- data/vendor/tracemonkey/tests/js1_2/Array/general1.js +78 -0
- data/vendor/tracemonkey/tests/js1_2/Array/general2.js +93 -0
- data/vendor/tracemonkey/tests/js1_2/Array/jstests.list +9 -0
- data/vendor/tracemonkey/tests/js1_2/Array/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_2/Array/slice.js +123 -0
- data/vendor/tracemonkey/tests/js1_2/Array/splice1.js +153 -0
- data/vendor/tracemonkey/tests/js1_2/Array/splice2.js +150 -0
- data/vendor/tracemonkey/tests/js1_2/Array/tostring_1.js +126 -0
- data/vendor/tracemonkey/tests/js1_2/Array/tostring_2.js +82 -0
- data/vendor/tracemonkey/tests/js1_2/Objects/jstests.list +2 -0
- data/vendor/tracemonkey/tests/js1_2/Objects/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_2/Objects/toString-001.js +120 -0
- data/vendor/tracemonkey/tests/js1_2/README +1 -0
- data/vendor/tracemonkey/tests/js1_2/String/charCodeAt.js +72 -0
- data/vendor/tracemonkey/tests/js1_2/String/concat.js +83 -0
- data/vendor/tracemonkey/tests/js1_2/String/jstests.list +5 -0
- data/vendor/tracemonkey/tests/js1_2/String/match.js +63 -0
- data/vendor/tracemonkey/tests/js1_2/String/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_2/String/slice.js +124 -0
- data/vendor/tracemonkey/tests/js1_2/browser.js +37 -0
- data/vendor/tracemonkey/tests/js1_2/function/Function_object.js +87 -0
- data/vendor/tracemonkey/tests/js1_2/function/Number.js +85 -0
- data/vendor/tracemonkey/tests/js1_2/function/String.js +73 -0
- data/vendor/tracemonkey/tests/js1_2/function/definition-1.js +77 -0
- data/vendor/tracemonkey/tests/js1_2/function/function-001-n.js +77 -0
- data/vendor/tracemonkey/tests/js1_2/function/jstests.list +13 -0
- data/vendor/tracemonkey/tests/js1_2/function/length.js +96 -0
- data/vendor/tracemonkey/tests/js1_2/function/nesting-1.js +65 -0
- data/vendor/tracemonkey/tests/js1_2/function/nesting.js +84 -0
- data/vendor/tracemonkey/tests/js1_2/function/regexparg-1.js +105 -0
- data/vendor/tracemonkey/tests/js1_2/function/regexparg-2-n.js +73 -0
- data/vendor/tracemonkey/tests/js1_2/function/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_2/function/tostring-1.js +145 -0
- data/vendor/tracemonkey/tests/js1_2/function/tostring-2.js +188 -0
- data/vendor/tracemonkey/tests/js1_2/jsref.js +228 -0
- data/vendor/tracemonkey/tests/js1_2/jstests.list +9 -0
- data/vendor/tracemonkey/tests/js1_2/operator/equality.js +72 -0
- data/vendor/tracemonkey/tests/js1_2/operator/jstests.list +3 -0
- data/vendor/tracemonkey/tests/js1_2/operator/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_2/operator/strictEquality.js +93 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_dollar_number.js +111 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_input.js +104 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_input_as_array.js +104 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_lastIndex.js +85 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_lastMatch.js +88 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_lastMatch_as_array.js +88 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_lastParen.js +102 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_lastParen_as_array.js +102 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_leftContext.js +92 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_leftContext_as_array.js +92 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_multiline.js +131 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_multiline_as_array.js +132 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_object.js +90 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_rightContext.js +92 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_rightContext_as_array.js +92 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/alphanumeric.js +131 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/asterisk.js +107 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/backslash.js +81 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/backspace.js +81 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/beginLine.js +83 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/character_class.js +110 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/compile.js +96 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/control_characters.js +74 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/digit.js +120 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/dot.js +98 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/endLine.js +83 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/everything.js +83 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/exec.js +79 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/flags.js +87 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/global.js +97 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/hexadecimal.js +109 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/ignoreCase.js +114 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/interval.js +117 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/jstests.list +51 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/octal.js +109 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/parentheses.js +109 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/plus.js +89 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/question_mark.js +101 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/regress-6359.js +86 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/regress-9141.js +105 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/simple_form.js +92 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/source.js +90 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/special_characters.js +160 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/string_replace.js +83 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/string_search.js +89 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/string_split.js +94 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/test.js +89 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/toString.js +81 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/vertical_bar.js +98 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/whitespace.js +125 -0
- data/vendor/tracemonkey/tests/js1_2/regexp/word_boundary.js +121 -0
- data/vendor/tracemonkey/tests/js1_2/regress/jstests.list +3 -0
- data/vendor/tracemonkey/tests/js1_2/regress/regress-144834.js +84 -0
- data/vendor/tracemonkey/tests/js1_2/regress/regress-7703.js +102 -0
- data/vendor/tracemonkey/tests/js1_2/regress/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_2/shell.js +40 -0
- data/vendor/tracemonkey/tests/js1_2/statements/break.js +164 -0
- data/vendor/tracemonkey/tests/js1_2/statements/continue.js +177 -0
- data/vendor/tracemonkey/tests/js1_2/statements/do_while.js +69 -0
- data/vendor/tracemonkey/tests/js1_2/statements/jstests.list +6 -0
- data/vendor/tracemonkey/tests/js1_2/statements/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_2/statements/switch.js +130 -0
- data/vendor/tracemonkey/tests/js1_2/statements/switch2.js +192 -0
- data/vendor/tracemonkey/tests/js1_2/version120/boolean-001.js +77 -0
- data/vendor/tracemonkey/tests/js1_2/version120/browser.js +37 -0
- data/vendor/tracemonkey/tests/js1_2/version120/jstests.list +3 -0
- data/vendor/tracemonkey/tests/js1_2/version120/regress-99663.js +165 -0
- data/vendor/tracemonkey/tests/js1_2/version120/shell.js +42 -0
- data/vendor/tracemonkey/tests/js1_3/Boolean/boolean-001.js +77 -0
- data/vendor/tracemonkey/tests/js1_3/Boolean/jstests.list +2 -0
- data/vendor/tracemonkey/tests/js1_3/Boolean/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_3/README +1 -0
- data/vendor/tracemonkey/tests/js1_3/Script/delete-001.js +83 -0
- data/vendor/tracemonkey/tests/js1_3/Script/function-001-n.js +78 -0
- data/vendor/tracemonkey/tests/js1_3/Script/function-002.js +79 -0
- data/vendor/tracemonkey/tests/js1_3/Script/in-001.js +69 -0
- data/vendor/tracemonkey/tests/js1_3/Script/jstests.list +7 -0
- data/vendor/tracemonkey/tests/js1_3/Script/new-001.js +123 -0
- data/vendor/tracemonkey/tests/js1_3/Script/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_3/Script/switch-001.js +84 -0
- data/vendor/tracemonkey/tests/js1_3/browser.js +36 -0
- data/vendor/tracemonkey/tests/js1_3/extensions/jstests.list +5 -0
- data/vendor/tracemonkey/tests/js1_3/extensions/proto_10.js +156 -0
- data/vendor/tracemonkey/tests/js1_3/extensions/proto_2.js +125 -0
- data/vendor/tracemonkey/tests/js1_3/extensions/proto_5.js +149 -0
- data/vendor/tracemonkey/tests/js1_3/extensions/script-001.js +174 -0
- data/vendor/tracemonkey/tests/js1_3/extensions/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_3/inherit/jstests.list +11 -0
- data/vendor/tracemonkey/tests/js1_3/inherit/proto_1.js +170 -0
- data/vendor/tracemonkey/tests/js1_3/inherit/proto_10.js +124 -0
- data/vendor/tracemonkey/tests/js1_3/inherit/proto_11.js +120 -0
- data/vendor/tracemonkey/tests/js1_3/inherit/proto_12.js +146 -0
- data/vendor/tracemonkey/tests/js1_3/inherit/proto_3.js +107 -0
- data/vendor/tracemonkey/tests/js1_3/inherit/proto_4.js +159 -0
- data/vendor/tracemonkey/tests/js1_3/inherit/proto_6.js +174 -0
- data/vendor/tracemonkey/tests/js1_3/inherit/proto_7.js +129 -0
- data/vendor/tracemonkey/tests/js1_3/inherit/proto_8.js +127 -0
- data/vendor/tracemonkey/tests/js1_3/inherit/proto_9.js +105 -0
- data/vendor/tracemonkey/tests/js1_3/inherit/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_3/jsref.js +195 -0
- data/vendor/tracemonkey/tests/js1_3/jstests.list +6 -0
- data/vendor/tracemonkey/tests/js1_3/misc/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_3/regress/delete-001.js +83 -0
- data/vendor/tracemonkey/tests/js1_3/regress/function-001-n.js +78 -0
- data/vendor/tracemonkey/tests/js1_3/regress/function-002.js +79 -0
- data/vendor/tracemonkey/tests/js1_3/regress/in-001.js +70 -0
- data/vendor/tracemonkey/tests/js1_3/regress/jstests.list +7 -0
- data/vendor/tracemonkey/tests/js1_3/regress/new-001.js +123 -0
- data/vendor/tracemonkey/tests/js1_3/regress/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_3/regress/switch-001.js +84 -0
- data/vendor/tracemonkey/tests/js1_3/shell.js +40 -0
- data/vendor/tracemonkey/tests/js1_4/Eval/eval-001.js +91 -0
- data/vendor/tracemonkey/tests/js1_4/Eval/eval-002.js +97 -0
- data/vendor/tracemonkey/tests/js1_4/Eval/eval-003.js +101 -0
- data/vendor/tracemonkey/tests/js1_4/Eval/jstests.list +5 -0
- data/vendor/tracemonkey/tests/js1_4/Eval/regress-531037.js +39 -0
- data/vendor/tracemonkey/tests/js1_4/Eval/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_4/Functions/function-001.js +123 -0
- data/vendor/tracemonkey/tests/js1_4/Functions/jstests.list +2 -0
- data/vendor/tracemonkey/tests/js1_4/Functions/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_4/README +1 -0
- data/vendor/tracemonkey/tests/js1_4/Regress/date-001-n.js +76 -0
- data/vendor/tracemonkey/tests/js1_4/Regress/function-001.js +96 -0
- data/vendor/tracemonkey/tests/js1_4/Regress/function-002.js +141 -0
- data/vendor/tracemonkey/tests/js1_4/Regress/function-003.js +94 -0
- data/vendor/tracemonkey/tests/js1_4/Regress/function-004-n.js +71 -0
- data/vendor/tracemonkey/tests/js1_4/Regress/jstests.list +8 -0
- data/vendor/tracemonkey/tests/js1_4/Regress/regress-7224.js +90 -0
- data/vendor/tracemonkey/tests/js1_4/Regress/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_4/Regress/toString-001-n.js +71 -0
- data/vendor/tracemonkey/tests/js1_4/browser.js +37 -0
- data/vendor/tracemonkey/tests/js1_4/jsref.js +166 -0
- data/vendor/tracemonkey/tests/js1_4/jstests.list +3 -0
- data/vendor/tracemonkey/tests/js1_4/shell.js +39 -0
- data/vendor/tracemonkey/tests/js1_5/Array/11.1.4.js +102 -0
- data/vendor/tracemonkey/tests/js1_5/Array/array-001.js +122 -0
- data/vendor/tracemonkey/tests/js1_5/Array/jstests.list +35 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-101964.js +119 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-107138.js +211 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-108440.js +110 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-154338.js +124 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-157652.js +155 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-178722.js +164 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-255555.js +66 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-299644.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-300858.js +54 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-310351.js +87 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-311515.js +53 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-313153.js +51 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-315509-01.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-330812.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-345961.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-348810.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-350256-01.js +78 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-350256-02.js +78 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-350256-03.js +88 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-360681-01.js +66 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-360681-02.js +91 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-364104.js +107 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-422286.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-424954.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-451483.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-451906.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-456845.js +87 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-465980-01.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-465980-02.js +202 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-94257.js +120 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-99120-01.js +84 -0
- data/vendor/tracemonkey/tests/js1_5/Array/regress-99120-02.js +79 -0
- data/vendor/tracemonkey/tests/js1_5/Array/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_5/Date/jstests.list +8 -0
- data/vendor/tracemonkey/tests/js1_5/Date/regress-188211.js +60 -0
- data/vendor/tracemonkey/tests/js1_5/Date/regress-301738-01.js +130 -0
- data/vendor/tracemonkey/tests/js1_5/Date/regress-301738-02.js +163 -0
- data/vendor/tracemonkey/tests/js1_5/Date/regress-309925-01.js +48 -0
- data/vendor/tracemonkey/tests/js1_5/Date/regress-309925-02.js +48 -0
- data/vendor/tracemonkey/tests/js1_5/Date/regress-346027.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/Date/regress-346363.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Date/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_5/Error/jstests.list +4 -0
- data/vendor/tracemonkey/tests/js1_5/Error/regress-354246.js +70 -0
- data/vendor/tracemonkey/tests/js1_5/Error/regress-412324.js +50 -0
- data/vendor/tracemonkey/tests/js1_5/Error/regress-465377.js +114 -0
- data/vendor/tracemonkey/tests/js1_5/Error/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_5/Exceptions/catchguard-002-n.js +72 -0
- data/vendor/tracemonkey/tests/js1_5/Exceptions/catchguard-003-n.js +76 -0
- data/vendor/tracemonkey/tests/js1_5/Exceptions/errstack-001.js +279 -0
- data/vendor/tracemonkey/tests/js1_5/Exceptions/jstests.list +16 -0
- data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-121658.js +158 -0
- data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-123002.js +132 -0
- data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-232182.js +155 -0
- data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-257751.js +127 -0
- data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-273931.js +108 -0
- data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-315147.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-332472.js +58 -0
- data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-333728.js +116 -0
- data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-342359.js +77 -0
- data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-347674.js +96 -0
- data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-350650-n.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-350837.js +79 -0
- data/vendor/tracemonkey/tests/js1_5/Exceptions/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_5/Expressions/jstests.list +6 -0
- data/vendor/tracemonkey/tests/js1_5/Expressions/regress-192288.js +119 -0
- data/vendor/tracemonkey/tests/js1_5/Expressions/regress-394673.js +82 -0
- data/vendor/tracemonkey/tests/js1_5/Expressions/regress-96526-argsub.js +125 -0
- data/vendor/tracemonkey/tests/js1_5/Expressions/regress-96526-delelem.js +125 -0
- data/vendor/tracemonkey/tests/js1_5/Expressions/regress-96526-noargsub.js +125 -0
- data/vendor/tracemonkey/tests/js1_5/Expressions/shell.js +137 -0
- data/vendor/tracemonkey/tests/js1_5/Function/10.1.6-01.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/Function/10.1.6.js +56 -0
- data/vendor/tracemonkey/tests/js1_5/Function/15.3.4.4.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/Function/jstests.list +15 -0
- data/vendor/tracemonkey/tests/js1_5/Function/regress-123371.js +53 -0
- data/vendor/tracemonkey/tests/js1_5/Function/regress-178389.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/Function/regress-222029-001.js +160 -0
- data/vendor/tracemonkey/tests/js1_5/Function/regress-222029-002.js +169 -0
- data/vendor/tracemonkey/tests/js1_5/Function/regress-292215.js +71 -0
- data/vendor/tracemonkey/tests/js1_5/Function/regress-338001.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/Function/regress-338121-01.js +70 -0
- data/vendor/tracemonkey/tests/js1_5/Function/regress-338121-02.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/Function/regress-338121-03.js +75 -0
- data/vendor/tracemonkey/tests/js1_5/Function/regress-344052.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/Function/regress-364023.js +73 -0
- data/vendor/tracemonkey/tests/js1_5/Function/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_5/GC/jstests.list +26 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-104584.js +80 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-203278-2.js +113 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-203278-3.js +76 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-278725.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-306788.js +57 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-311497.js +94 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-313276.js +73 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-313479.js +70 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-316885-01.js +66 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-316885-02.js +75 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-316885-03.js +75 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-319980-01.js +160 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-324278.js +95 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-331719.js +52 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-338653.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-341877-01.js +73 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-341877-02.js +78 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-346794.js +77 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-348532.js +83 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-352606.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-383269-01.js +94 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-383269-02.js +98 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-390078.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-418128.js +73 -0
- data/vendor/tracemonkey/tests/js1_5/GC/regress-440558.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/GC/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_5/GetSet/getset-002.js +86 -0
- data/vendor/tracemonkey/tests/js1_5/GetSet/jstests.list +4 -0
- data/vendor/tracemonkey/tests/js1_5/GetSet/regress-353264.js +50 -0
- data/vendor/tracemonkey/tests/js1_5/GetSet/regress-375976.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/GetSet/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_5/LexicalConventions/jstests.list +5 -0
- data/vendor/tracemonkey/tests/js1_5/LexicalConventions/lexical-001.js +183 -0
- data/vendor/tracemonkey/tests/js1_5/LexicalConventions/regress-177314.js +110 -0
- data/vendor/tracemonkey/tests/js1_5/LexicalConventions/regress-343675.js +82 -0
- data/vendor/tracemonkey/tests/js1_5/LexicalConventions/regress-469940.js +71 -0
- data/vendor/tracemonkey/tests/js1_5/LexicalConventions/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_5/Object/jstests.list +11 -0
- data/vendor/tracemonkey/tests/js1_5/Object/regress-137000.js +240 -0
- data/vendor/tracemonkey/tests/js1_5/Object/regress-192105.js +183 -0
- data/vendor/tracemonkey/tests/js1_5/Object/regress-308806-01.js +53 -0
- data/vendor/tracemonkey/tests/js1_5/Object/regress-338709.js +107 -0
- data/vendor/tracemonkey/tests/js1_5/Object/regress-362872-01.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/Object/regress-362872-02.js +55 -0
- data/vendor/tracemonkey/tests/js1_5/Object/regress-382503.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/Object/regress-382532.js +70 -0
- data/vendor/tracemonkey/tests/js1_5/Object/regress-465476.js +96 -0
- data/vendor/tracemonkey/tests/js1_5/Object/regress-90596-003.js +312 -0
- data/vendor/tracemonkey/tests/js1_5/Object/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_5/README +1 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/jstests.list +363 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-102725.js +99 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-10278.js +79 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-103602.js +168 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-104077.js +509 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-106244.js +71 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-110286.js +156 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-111557.js +10965 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-114491.js +106 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-114493.js +114 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-115436.js +58 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-116228.js +59 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-118849.js +186 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-119719.js +58 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-127243.js +108 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-127557.js +124 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-131510-001.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-139316.js +80 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-140852.js +66 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-140974.js +140 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-146596.js +159 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-152646.js +127 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-155081-2.js +17554 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-155081.js +17561 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-156354.js +131 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-159334.js +129 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-162392.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-165201.js +89 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-167328.js +60 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-167658.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-168347.js +220 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-169559.js +91 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-170193.js +111 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-172699.js +99 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-173067.js +58 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-174709.js +104 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-176125.js +82 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-179524.js +368 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-185165.js +101 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-191633.js +107 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-191668.js +104 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-192414.js +122 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-193418.js +104 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-203278-1.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-203402.js +95 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-203841.js +164 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-204210.js +150 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-210682.js +101 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-211590.js +88 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-213482.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-214761.js +78 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-216320.js +1040 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-224956.js +287 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-229006.js +65597 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-230216-1.js +81 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-230216-2.js +70 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-230216-3.js +80 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-233483-2.js +100 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-233483.js +86 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-234389.js +72 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-238881.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-238945.js +52 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-240317.js +99 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-240577.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-243174.js +55 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-243389-n.js +58 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-243869.js +72 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-244470.js +1113 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-244619.js +66 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-245113.js +81 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-245308.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-246911.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-246964.js +196 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-247179.js +53 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-248444.js +77 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-249211.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-252892.js +163 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-253150.js +123 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-254296.js +60 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-254974.js +72 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-256501.js +72 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-256617.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-256798.js +70 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-259935.js +75 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-260541.js +55 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-261886.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-261887.js +70 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-271716-n.js +60 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-274035.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-274888.js +73 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-275378.js +81 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-276103.js +60 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-278873.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-280769-1.js +58 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-280769-2.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-280769-3.js +79 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-280769-4.js +81 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-280769-5.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-280769.js +73 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-281487.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-281606.js +80 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-281930.js +54 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-283477.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-286216.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-288688.js +81 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-289094.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-290575.js +90 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-290656.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-294191.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-294195-01.js +58 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-294195-02.js +50 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-294302.js +57 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-295052.js +50 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-295666.js +56 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-299209.js +56 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-299641.js +58 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-303213.js +88 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-306633.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-306727.js +73 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-306794.js +56 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-308085.js +602 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-308566.js +60 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-309242.js +77 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-310295.js +54 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-310607.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-310993.js +55 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-311071.js +51 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-311629.js +55 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-312260.js +60 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-31255.js +113 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-312588.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-313967-01.js +112 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-313967-02.js +87 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-314401.js +104 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-315974.js +83 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-315990.js +73 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-317476.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-317533.js +87 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-317714-01.js +52 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-317714-02.js +53 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-319384.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-319391.js +73 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-320032.js +60 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-320119.js +148 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-321757.js +143 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-321874.js +241 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-321971.js +56 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-322430.js +70 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-323314-1.js +73 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-325925.js +50 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-326453.js +52 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-326467.js +51 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-328012.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-328664.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-328897.js +79 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-329383.js +116 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-329530.js +73 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-330352.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-330951.js +50 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-334807-01.js +57 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-334807-02.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-334807-03.js +57 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-334807-04.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-334807-05.js +66 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-334807-06.js +70 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-336100.js +55 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-338307.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-340369.js +58 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-341360.js +88 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-343713.js +54 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-343966.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-344711-n.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-344804.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-344959.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-346237.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-346801.js +109 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-347306-01.js +85 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-349482-01.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-349482-02.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-349592.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-349648.js +98 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-350253.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-350268.js +107 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-350312.js +114 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-350415.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-350529.js +66 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-350692.js +70 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-351116.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-351515.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-352009.js +60 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-352197.js +102 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-352208.js +77 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-352604.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-354924.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-355341.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-355344.js +82 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-355556.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-355829-01.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-355829-02.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-355829-03.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-356250.js +77 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-356693.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-360969-01.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-360969-02.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-360969-03.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-360969-04.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-360969-05.js +76 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-360969-06.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-361467.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-361617.js +66 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-362583.js +77 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-3649-n.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-366122.js +79 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-366468.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-366601.js +71 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-367561-01.js +70 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-367561-03.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-372364.js +80 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-379245.js +72 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-383674.js +91 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-383682.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-385393-06.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-387951-01.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-387951-02.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-387951-03.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-39309.js +110 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-396684.js +81 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-398085-01.js +778 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-398085-02.js +761 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-398609.js +72 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-404755.js +83 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-406769.js +188 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-407024.js +53 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-407323.js +75 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-407957.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-410852.js +71 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-416628.js +142 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-416737-01.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-416737-02.js +66 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-417893.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-418504.js +86 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-418540.js +94 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-419018.js +80 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-419803.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-420919.js +70 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-422348.js +70 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-424311.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-425360.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-426827.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-428366.js +52 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-438415-01.js +60 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-438415-02.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-449627.js +147 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-449666.js +98 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-450369.js +345 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-450833.js +82 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-451884.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-451946.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-452008.js +186 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-452170.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-452333.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-452336.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-452346.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-452495.js +54 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-452573-01.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-452573-02.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-452713.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-452724-01.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-452724-02.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-452742-01.js +84 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-452742-02.js +89 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-452853.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-452884-01.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-452884-02.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-453024.js +78 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-453173.js +66 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-453397.js +81 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-453701.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-453747.js +72 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-454682.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-454981.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-455605.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-455748.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-455758-01.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-455758-02.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-455775.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-456470.js +73 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-456477-01.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-456477-02.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-456494.js +83 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-456540-01.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-456540-02.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-457065-03.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-457456.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-457778.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-458851.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-459085.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-459628.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-459990.js +66 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-460024.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-460117.js +80 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-461307.js +66 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-461723.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-462292.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-462879.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-462989.js +66 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-463259.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-463782.js +101 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-464334.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-464862.js +156 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-465013.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-465132.js +78 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-465133.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-465135.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-465136.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-465137.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-465262.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-465272.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-465347.js +85 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-465366.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-466262.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-466747.js +94 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-469044.js +104 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-470061.js +78 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-470187-01.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-470187-02.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-470758-01.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-470758-02.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-475645-01.js +82 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-475645-02.js +89 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-476049.js +76 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-476192.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-477733.js +77 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-477758.js +85 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-478314.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-479353.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-480147.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-480244.js +86 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-481436.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-482421.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-483103.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-501124.js +78 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-504078.js +84 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-506567.js +78 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-57043.js +109 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-58116.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-68498-001.js +78 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-68498-002.js +101 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-68498-003.js +105 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-68498-004.js +133 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-69607.js +76 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-71107.js +80 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-76054.js +160 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-80981.js +3144 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-82306.js +82 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-89443.js +2153 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-89474.js +85 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-90445.js +329 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-96128-n.js +85 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-96526-001.js +537 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-96526-002.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-96526-003.js +4438 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/regress-98901.js +3925 -0
- data/vendor/tracemonkey/tests/js1_5/Regress/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_5/Scope/jstests.list +18 -0
- data/vendor/tracemonkey/tests/js1_5/Scope/regress-154693.js +101 -0
- data/vendor/tracemonkey/tests/js1_5/Scope/regress-181834.js +183 -0
- data/vendor/tracemonkey/tests/js1_5/Scope/regress-184107.js +127 -0
- data/vendor/tracemonkey/tests/js1_5/Scope/regress-185485.js +163 -0
- data/vendor/tracemonkey/tests/js1_5/Scope/regress-191276.js +128 -0
- data/vendor/tracemonkey/tests/js1_5/Scope/regress-192226.js +125 -0
- data/vendor/tracemonkey/tests/js1_5/Scope/regress-202678-001.js +136 -0
- data/vendor/tracemonkey/tests/js1_5/Scope/regress-202678-002.js +137 -0
- data/vendor/tracemonkey/tests/js1_5/Scope/regress-208496-001.js +174 -0
- data/vendor/tracemonkey/tests/js1_5/Scope/regress-208496-002.js +166 -0
- data/vendor/tracemonkey/tests/js1_5/Scope/regress-220362.js +116 -0
- data/vendor/tracemonkey/tests/js1_5/Scope/regress-446026-01.js +84 -0
- data/vendor/tracemonkey/tests/js1_5/Scope/regress-446026-02.js +60 -0
- data/vendor/tracemonkey/tests/js1_5/Scope/regress-77578-001.js +184 -0
- data/vendor/tracemonkey/tests/js1_5/Scope/scope-002.js +142 -0
- data/vendor/tracemonkey/tests/js1_5/Scope/scope-003.js +143 -0
- data/vendor/tracemonkey/tests/js1_5/Scope/scope-004.js +225 -0
- data/vendor/tracemonkey/tests/js1_5/Scope/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_5/String/jstests.list +9 -0
- data/vendor/tracemonkey/tests/js1_5/String/regress-107771.js +125 -0
- data/vendor/tracemonkey/tests/js1_5/String/regress-112626.js +52 -0
- data/vendor/tracemonkey/tests/js1_5/String/regress-157334-01.js +90 -0
- data/vendor/tracemonkey/tests/js1_5/String/regress-179068.js +159 -0
- data/vendor/tracemonkey/tests/js1_5/String/regress-314890.js +84 -0
- data/vendor/tracemonkey/tests/js1_5/String/regress-322772.js +84 -0
- data/vendor/tracemonkey/tests/js1_5/String/regress-56940-01.js +81 -0
- data/vendor/tracemonkey/tests/js1_5/String/regress-56940-02.js +81 -0
- data/vendor/tracemonkey/tests/js1_5/String/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_5/browser.js +37 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/jstests.list +65 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-344120.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-346892.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-346902.js +91 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-346904.js +156 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-346915.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-349484.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-349489.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-349491.js +79 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-349596.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-349650.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-349663.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-350242.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-350263.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-350271.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-350666.js +93 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-350670.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-351104.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-351219.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-351336.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-351597.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-351625.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-351626.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-351693.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-351705.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-351793.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352013.js +93 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352022.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352073.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352202.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352312.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352360.js +70 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352375.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352453.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352649.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352873-01.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352873-02.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-353000.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-353120.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-353146.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-354878.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-354910.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-355992.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-356083.js +66 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-356248.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-371692.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-373678.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-375639.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-375882.js +76 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-376564.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-383721.js +66 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-406555.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-437288-02.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-443071-01.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-456964-01.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-457093-01.js +77 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-457824.js +66 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-460116-01.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-460116-02.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-460116-03.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-460501.js +71 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-460870.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-461108.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-461110.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/regress-461111.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/decompilation/shell.js +2 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/catchguard-001-n.js +79 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/catchguard-001.js +83 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/catchguard-002.js +79 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/catchguard-003.js +94 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/getset-001.js +90 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/getset-003.js +211 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/getset-004.js +211 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/getset-005.js +220 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/getset-006.js +194 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/jstests.list +241 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/no-such-method.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-104077.js +233 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-164697.js +112 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-178722.js +127 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-192465.js +157 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-220584.js +147 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-225831.js +196 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-226078.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-226507.js +187 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-231518.js +136 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-237461.js +80 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-245148.js +55 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-245795.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-254375.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-255245.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-291213.js +81 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-300079.js +80 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-303277.js +52 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-304897.js +53 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-306738.js +58 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-311161.js +1471 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-311583.js +54 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-311792-01.js +59 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-311792-02.js +73 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-312278.js +75 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-313500.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-313630.js +71 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-313763.js +79 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-313803.js +57 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-313938.js +87 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-314874.js +73 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-315509-02.js +75 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-319683.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-322957.js +60 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-325269.js +93 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-327608.js +81 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-328443.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-328556.js +52 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-330569.js +129 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-333541.js +123 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-335700.js +127 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-336409-1.js +82 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-336409-2.js +82 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-336410-1.js +82 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-336410-2.js +82 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-338804-01.js +102 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-338804-02.js +103 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-338804-03.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-339685.js +60 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-340199.js +82 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-341956-01.js +101 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-341956-02.js +88 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-341956-03.js +105 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-342960.js +87 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-345967.js +100 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-346494-01.js +123 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-346494.js +141 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-347306-02.js +84 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-348986.js +161 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-349616.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-350312-01.js +83 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-350312-02.js +145 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-350312-03.js +149 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-350531.js +188 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-351102-01.js +72 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-351102-02.js +78 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-351102-06.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-351448.js +96 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-351463-01.js +287 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-351973.js +84 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-352060.js +80 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-352094.js +79 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-352261.js +81 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-352281.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-352291.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-352372.js +98 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-352455.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-352604.js +66 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-353214.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-354297.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-354541-01.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-354541-02.js +77 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-354541-03.js +89 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-354541-04.js +94 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-355339.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-355497.js +94 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-355622.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-355655.js +78 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-355736.js +72 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-355820.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-355982.js +76 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-356085.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-356106.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-356378.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-356402.js +56 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-358594-01.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-358594-02.js +54 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-358594-03.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-358594-04.js +54 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-358594-05.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-358594-06.js +54 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-359024.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-361346.js +55 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-361360.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-361552.js +60 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-361558.js +52 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-361571.js +71 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-361856.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-361964.js +81 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-363258.js +80 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-363988.js +82 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-365527.js +99 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-365692.js +73 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-365869.js +115 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-366288.js +51 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-366292.js +52 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-366396.js +50 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-367118-01.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-367118-02.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-367119-01.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-367119-02.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-367120-01.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-367120-02.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-367121.js +97 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-367501-01.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-367501-02.js +70 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-367501-03.js +71 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-367501-04.js +71 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-367589.js +81 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-367630.js +77 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-367923.js +83 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-368859.js +70 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-369404.js +81 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-369696-01.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-369696-02.js +72 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-369696-03.js +80 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-371636.js +88 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-372309.js +80 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-374589.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-375183.js +95 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-375344.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-375801.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-376052.js +104 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-379523.js +71 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-380581.js +70 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-380831.js +81 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-380889.js +73 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-381205.js +52 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-381211.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-381304.js +113 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-382509.js +118 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-383965.js +57 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-384680.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-385134.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-385393-02.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-385393-09.js +51 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-390597.js +75 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-394967.js +75 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-396326.js +81 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-406572.js +77 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-407019.js +70 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-407501.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-407720.js +84 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-412926.js +90 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-414755.js +86 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-416354.js +80 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-416460.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-416834.js +53 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-418730.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-420612.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-420869-01.js +73 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-421621.js +54 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-422137.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-422592.js +103 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-424257.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-424683-01.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-426711.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-427196-01.js +73 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-427196-02.js +70 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-427196-03.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-429264.js +65 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-431428.js +70 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-432075.js +57 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-434837-01.js +123 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-435345-01.js +132 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-435497-01.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-435497-02.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-435497-03.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-436741.js +68 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-437288-01.js +61 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-44009.js +86 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-443569.js +74 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-446386.js +80 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-449657.js +92 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-452168.js +72 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-452178.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-452329.js +60 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-452338.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-452372.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-452565.js +54 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-453249.js +56 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-454040.js +59 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-454142.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-454704.js +88 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-455380.js +93 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-455408.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-455413.js +59 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-459606.js +62 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-462734-02.js +64 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-462734-03.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-462734-04.js +66 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-465276.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-469625.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-469761.js +66 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-472599.js +67 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-472787.js +63 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-476447.js +66 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-479487.js +79 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-479551.js +77 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-480579.js +69 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-481516.js +72 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-488995.js +79 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-50447-1.js +210 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-50447.js +169 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-90596-001.js +299 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-90596-002.js +299 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-96284-001.js +182 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/regress-96284-002.js +182 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/scope-001.js +117 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/toLocaleFormat-01.js +271 -0
- data/vendor/tracemonkey/tests/js1_5/extensions/toLocaleFormat-02.js +138 -0
- data/vendor/tracemonkey/tests/js1_5/jstests.list +15 -0
- data/vendor/tracemonkey/tests/js1_5/shell.js +41 -0
- data/vendor/tracemonkey/tests/js1_5/template.js +59 -0
- data/vendor/tracemonkey/tests/js1_6/Array/filter.js +86 -0
- data/vendor/tracemonkey/tests/js1_6/Array/jstests.list +13 -0
- data/vendor/tracemonkey/tests/js1_6/Array/regress-290592.js +695 -0
- data/vendor/tracemonkey/tests/js1_6/Array/regress-304828.js +272 -0
- data/vendor/tracemonkey/tests/js1_6/Array/regress-305002.js +58 -0
- data/vendor/tracemonkey/tests/js1_6/Array/regress-310425-01.js +60 -0
- data/vendor/tracemonkey/tests/js1_6/Array/regress-310425-02.js +50 -0
- data/vendor/tracemonkey/tests/js1_6/Array/regress-320887.js +57 -0
- data/vendor/tracemonkey/tests/js1_6/Array/regress-352742-01.js +73 -0
- data/vendor/tracemonkey/tests/js1_6/Array/regress-352742-02.js +65 -0
- data/vendor/tracemonkey/tests/js1_6/Array/regress-386030.js +98 -0
- data/vendor/tracemonkey/tests/js1_6/Array/regress-415451.js +57 -0
- data/vendor/tracemonkey/tests/js1_6/Array/regress-415540.js +54 -0
- data/vendor/tracemonkey/tests/js1_6/Array/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_6/README +1 -0
- data/vendor/tracemonkey/tests/js1_6/Regress/jstests.list +16 -0
- data/vendor/tracemonkey/tests/js1_6/Regress/regress-301574.js +69 -0
- data/vendor/tracemonkey/tests/js1_6/Regress/regress-311157-01.js +57 -0
- data/vendor/tracemonkey/tests/js1_6/Regress/regress-311157-02.js +57 -0
- data/vendor/tracemonkey/tests/js1_6/Regress/regress-314887.js +53 -0
- data/vendor/tracemonkey/tests/js1_6/Regress/regress-320172.js +58 -0
- data/vendor/tracemonkey/tests/js1_6/Regress/regress-350417.js +69 -0
- data/vendor/tracemonkey/tests/js1_6/Regress/regress-351795.js +69 -0
- data/vendor/tracemonkey/tests/js1_6/Regress/regress-352271.js +67 -0
- data/vendor/tracemonkey/tests/js1_6/Regress/regress-353078.js +65 -0
- data/vendor/tracemonkey/tests/js1_6/Regress/regress-355002.js +70 -0
- data/vendor/tracemonkey/tests/js1_6/Regress/regress-372565.js +61 -0
- data/vendor/tracemonkey/tests/js1_6/Regress/regress-378492.js +65 -0
- data/vendor/tracemonkey/tests/js1_6/Regress/regress-382509.js +78 -0
- data/vendor/tracemonkey/tests/js1_6/Regress/regress-475469.js +68 -0
- data/vendor/tracemonkey/tests/js1_6/Regress/regress-476655.js +75 -0
- data/vendor/tracemonkey/tests/js1_6/Regress/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_6/String/jstests.list +2 -0
- data/vendor/tracemonkey/tests/js1_6/String/regress-306591.js +99 -0
- data/vendor/tracemonkey/tests/js1_6/String/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_6/browser.js +36 -0
- data/vendor/tracemonkey/tests/js1_6/decompilation/jstests.list +4 -0
- data/vendor/tracemonkey/tests/js1_6/decompilation/regress-352084.js +79 -0
- data/vendor/tracemonkey/tests/js1_6/decompilation/regress-352613-01.js +73 -0
- data/vendor/tracemonkey/tests/js1_6/decompilation/regress-352613-02.js +73 -0
- data/vendor/tracemonkey/tests/js1_6/decompilation/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_6/extensions/jstests.list +15 -0
- data/vendor/tracemonkey/tests/js1_6/extensions/regress-312385-01.js +155 -0
- data/vendor/tracemonkey/tests/js1_6/extensions/regress-352392.js +71 -0
- data/vendor/tracemonkey/tests/js1_6/extensions/regress-385393-08.js +58 -0
- data/vendor/tracemonkey/tests/js1_6/extensions/regress-414098.js +72 -0
- data/vendor/tracemonkey/tests/js1_6/extensions/regress-455464-01.js +54 -0
- data/vendor/tracemonkey/tests/js1_6/extensions/regress-455464-02.js +64 -0
- data/vendor/tracemonkey/tests/js1_6/extensions/regress-455464-03.js +66 -0
- data/vendor/tracemonkey/tests/js1_6/extensions/regress-455464-04.js +63 -0
- data/vendor/tracemonkey/tests/js1_6/extensions/regress-456826.js +159 -0
- data/vendor/tracemonkey/tests/js1_6/extensions/regress-457521.js +57 -0
- data/vendor/tracemonkey/tests/js1_6/extensions/regress-465443.js +74 -0
- data/vendor/tracemonkey/tests/js1_6/extensions/regress-470310.js +66 -0
- data/vendor/tracemonkey/tests/js1_6/extensions/regress-472508.js +59 -0
- data/vendor/tracemonkey/tests/js1_6/extensions/regress-475144.js +58 -0
- data/vendor/tracemonkey/tests/js1_6/extensions/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_6/jstests.list +5 -0
- data/vendor/tracemonkey/tests/js1_6/shell.js +47 -0
- data/vendor/tracemonkey/tests/js1_6/template.js +59 -0
- data/vendor/tracemonkey/tests/js1_7/GC/jstests.list +3 -0
- data/vendor/tracemonkey/tests/js1_7/GC/regress-341675.js +68 -0
- data/vendor/tracemonkey/tests/js1_7/GC/regress-381374.js +92 -0
- data/vendor/tracemonkey/tests/js1_7/GC/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_7/README +1 -0
- data/vendor/tracemonkey/tests/js1_7/block/jstests.list +37 -0
- data/vendor/tracemonkey/tests/js1_7/block/order-of-operation.js +185 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-341939.js +58 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-343765.js +129 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-344139.js +125 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-344262.js +73 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-344370.js +61 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-344601.js +70 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-345542.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-347559.js +110 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-348685.js +80 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-349283.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-349298.js +71 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-349507.js +69 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-349653.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-349962.js +60 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-350279.js +69 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-350730.js +71 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-350793-01.js +72 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-351497.js +69 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-351606.js +53 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-351794.js +67 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-352092.js +71 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-352185.js +71 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-352212.js +70 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-352267.js +61 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-352422.js +70 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-352609.js +90 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-352616.js +95 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-352624.js +71 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-352786.js +70 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-352907.js +70 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-357754.js +96 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-358508.js +70 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-376410.js +70 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-396900.js +64 -0
- data/vendor/tracemonkey/tests/js1_7/block/regress-411279.js +98 -0
- data/vendor/tracemonkey/tests/js1_7/block/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_7/browser.js +36 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/jstests.list +52 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-346642-01.js +200 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-348904.js +67 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-349493.js +64 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-349499.js +64 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-349602.js +69 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-349605.js +69 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-349633.js +69 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-349634.js +64 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-350704.js +65 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-350793-02.js +68 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-350810.js +62 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-350991.js +87 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-351070-01.js +102 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-351070-03.js +173 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-351496.js +68 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352008.js +66 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352011.js +75 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352015.js +69 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352022.js +69 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352025.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352026.js +79 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352068.js +64 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352079.js +79 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352198.js +64 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352217.js +77 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352266.js +80 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352268.js +77 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352269.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352272.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352283.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352402.js +62 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352415.js +62 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352441.js +64 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352732.js +93 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-355004.js +62 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-355049-01.js +62 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-355049-02.js +62 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-355105.js +62 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-355635.js +62 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-355786.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-356247.js +103 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-371802.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-374713.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-375794.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-379925.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-380506.js +68 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-381101.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-381108.js +64 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-410571.js +159 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-410649.js +62 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/regress-429252.js +70 -0
- data/vendor/tracemonkey/tests/js1_7/decompilation/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_7/expressions/destructuring-scope.js +96 -0
- data/vendor/tracemonkey/tests/js1_7/expressions/jstests.list +11 -0
- data/vendor/tracemonkey/tests/js1_7/expressions/regress-346203.js +61 -0
- data/vendor/tracemonkey/tests/js1_7/expressions/regress-346645-01.js +68 -0
- data/vendor/tracemonkey/tests/js1_7/expressions/regress-346645-02.js +68 -0
- data/vendor/tracemonkey/tests/js1_7/expressions/regress-346645-03.js +68 -0
- data/vendor/tracemonkey/tests/js1_7/expressions/regress-349624.js +61 -0
- data/vendor/tracemonkey/tests/js1_7/expressions/regress-349818.js +61 -0
- data/vendor/tracemonkey/tests/js1_7/expressions/regress-418051.js +67 -0
- data/vendor/tracemonkey/tests/js1_7/expressions/regress-421806.js +74 -0
- data/vendor/tracemonkey/tests/js1_7/expressions/regress-451340.js +60 -0
- data/vendor/tracemonkey/tests/js1_7/expressions/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/basic-Iterator.js +198 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/basic-for-each.js +123 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/basic-for-in.js +111 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/destructuring-order.js +185 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/iterator-ctor.js +136 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/jstests.list +65 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-346021.js +78 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-346642-02.js +68 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-346642-06.js +109 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-346773.js +85 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-349619.js +61 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-350312.js +113 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-351070-02.js +102 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-351102-03.js +77 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-351102-04.js +67 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-351102-05.js +67 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-351102-07.js +76 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-352797-01.js +68 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-352885-01.js +62 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-352885-02.js +99 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-353214-01.js +79 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-353214-02.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-353249.js +67 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-353454.js +70 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-354499-01.js +79 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-354499-02.js +82 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-354945-01.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-354945-02.js +71 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-355052-01.js +70 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-355052-02.js +70 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-355052-03.js +76 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-355145.js +66 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-355410.js +73 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-355512.js +71 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-355578.js +78 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-355583.js +72 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-363040-01.js +98 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-363040-02.js +97 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-366668-01.js +64 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-366668-02.js +64 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-367629.js +66 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-368213.js +50 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-368224.js +61 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-372364.js +69 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-379482.js +64 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-379566.js +78 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-380933.js +75 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-381301.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-381303.js +68 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-387955-01.js +73 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-387955-02.js +75 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-392308.js +80 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-396326.js +70 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-429266.js +73 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-453955.js +64 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-455982-01.js +59 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-455982-02.js +59 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-458679.js +85 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-469234.js +65 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-470176.js +71 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-470300-01.js +65 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-470300-02.js +65 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-474771-01.js +67 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-474771-02.js +55 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/regress-477048.js +67 -0
- data/vendor/tracemonkey/tests/js1_7/extensions/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/326466-01.js +78 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/builtin-Iterator-function.js +122 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/evens.js +58 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/fibonacci-matrix-generator.js +97 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/iterator-toString.js +76 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/jstests.list +49 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/message-value-passing.js +121 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/multiple-close.js +98 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/nested-yield.js +91 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/pi-generator.js +92 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-345736.js +80 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-345855.js +126 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-345879-01.js +66 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-345879-02.js +67 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-347593.js +88 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-347739.js +81 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-349012-01.js +84 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-349012-02.js +94 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-349012-03.js +75 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-349012-04.js +75 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-349012-05.js +77 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-349023-01.js +75 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-349023-02.js +62 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-349023-03.js +62 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-349331.js +127 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-349362.js +62 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-349851.js +69 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-350621.js +96 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-350809.js +69 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-351120.js +69 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-351514.js +69 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-352197.js +69 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-352605.js +68 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-352876.js +75 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-355834.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-359062.js +74 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-366941.js +114 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-382335.js +69 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-387871.js +75 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-390918.js +80 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-392310.js +82 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/regress-466206.js +71 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/send-no-rhs.js +90 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/sequential-yields.js +105 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/simple-fib.js +88 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/throw-after-close.js +123 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/throw-forever.js +118 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/unreachable-yield.js +90 -0
- data/vendor/tracemonkey/tests/js1_7/geniter/yield-undefined.js +96 -0
- data/vendor/tracemonkey/tests/js1_7/iterable/jstests.list +15 -0
- data/vendor/tracemonkey/tests/js1_7/iterable/regress-340526-01.js +61 -0
- data/vendor/tracemonkey/tests/js1_7/iterable/regress-340526-02.js +75 -0
- data/vendor/tracemonkey/tests/js1_7/iterable/regress-341496.js +52 -0
- data/vendor/tracemonkey/tests/js1_7/iterable/regress-341499.js +66 -0
- data/vendor/tracemonkey/tests/js1_7/iterable/regress-341510.js +62 -0
- data/vendor/tracemonkey/tests/js1_7/iterable/regress-341815.js +126 -0
- data/vendor/tracemonkey/tests/js1_7/iterable/regress-341821.js +115 -0
- data/vendor/tracemonkey/tests/js1_7/iterable/regress-354750-01.js +75 -0
- data/vendor/tracemonkey/tests/js1_7/iterable/regress-355025.js +61 -0
- data/vendor/tracemonkey/tests/js1_7/iterable/regress-355075-01.js +71 -0
- data/vendor/tracemonkey/tests/js1_7/iterable/regress-355075-02.js +71 -0
- data/vendor/tracemonkey/tests/js1_7/iterable/regress-355090.js +70 -0
- data/vendor/tracemonkey/tests/js1_7/iterable/regress-412467.js +69 -0
- data/vendor/tracemonkey/tests/js1_7/iterable/regress-415922.js +82 -0
- data/vendor/tracemonkey/tests/js1_7/iterable/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_7/jstests.list +10 -0
- data/vendor/tracemonkey/tests/js1_7/lexical/jstests.list +5 -0
- data/vendor/tracemonkey/tests/js1_7/lexical/regress-336376-01.js +441 -0
- data/vendor/tracemonkey/tests/js1_7/lexical/regress-346642-03.js +169 -0
- data/vendor/tracemonkey/tests/js1_7/lexical/regress-346642-04.js +70 -0
- data/vendor/tracemonkey/tests/js1_7/lexical/regress-351515.js +130 -0
- data/vendor/tracemonkey/tests/js1_7/lexical/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_7/regexp/jstests.list +2 -0
- data/vendor/tracemonkey/tests/js1_7/regexp/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_7/regexp/yflag.js +111 -0
- data/vendor/tracemonkey/tests/js1_7/regress/jstests.list +67 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-350387.js +70 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-351503-01.js +118 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-351503-02.js +123 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-352640-01.js +67 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-352640-02.js +67 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-352640-03.js +67 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-352640-04.js +67 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-352797-02.js +70 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-352870-01.js +70 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-352870-02.js +69 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-352870-03.js +71 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-353079.js +62 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-355023.js +64 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-355832-01.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-355832-02.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-361566.js +60 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-363040-01.js +128 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-363040-02.js +100 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-369666-01.js +92 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-369666-02.js +96 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-372331.js +88 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-373827-01.js +61 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-373827-02.js +67 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-373828.js +68 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-375695.js +60 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-379442.js +61 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-379483.js +61 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-385133-01.js +71 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-385133-02.js +69 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-385393-05.js +77 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-387951.js +61 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-406477.js +81 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-407727-01.js +50 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-407727-02.js +52 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-407957.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-410649.js +75 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-414553.js +55 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-416601.js +70 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-416705.js +73 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-418641.js +113 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-419803.js +64 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-420399.js +69 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-428706.js +61 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-428708.js +61 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-452703.js +54 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-452960.js +66 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-453049.js +64 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-453051.js +64 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-453411.js +65 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-461235.js +65 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-461945.js +65 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-462071.js +65 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-462282.js +65 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-462388.js +65 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-462407.js +54 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-464403.js +68 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-465236.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-465424.js +65 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-465484.js +63 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-469239-01.js +71 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-469239-02.js +71 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-470223.js +73 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-470388-01.js +61 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-470388-02.js +66 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-470388-03.js +65 -0
- data/vendor/tracemonkey/tests/js1_7/regress/regress-474771.js +79 -0
- data/vendor/tracemonkey/tests/js1_7/regress/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_7/shell.js +47 -0
- data/vendor/tracemonkey/tests/js1_7/template.js +59 -0
- data/vendor/tracemonkey/tests/js1_8/README +1 -0
- data/vendor/tracemonkey/tests/js1_8/browser.js +36 -0
- data/vendor/tracemonkey/tests/js1_8/decompilation/jstests.list +12 -0
- data/vendor/tracemonkey/tests/js1_8/decompilation/regress-260106.js +64 -0
- data/vendor/tracemonkey/tests/js1_8/decompilation/regress-346749.js +62 -0
- data/vendor/tracemonkey/tests/js1_8/decompilation/regress-381372.js +63 -0
- data/vendor/tracemonkey/tests/js1_8/decompilation/regress-381504.js +78 -0
- data/vendor/tracemonkey/tests/js1_8/decompilation/regress-381963-01.js +63 -0
- data/vendor/tracemonkey/tests/js1_8/decompilation/regress-381963-02.js +65 -0
- data/vendor/tracemonkey/tests/js1_8/decompilation/regress-382981.js +67 -0
- data/vendor/tracemonkey/tests/js1_8/decompilation/regress-443074.js +63 -0
- data/vendor/tracemonkey/tests/js1_8/decompilation/regress-460504.js +63 -0
- data/vendor/tracemonkey/tests/js1_8/decompilation/regress-461233.js +64 -0
- data/vendor/tracemonkey/tests/js1_8/decompilation/regress-469625-01.js +66 -0
- data/vendor/tracemonkey/tests/js1_8/decompilation/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/dekker.js +98 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/for-in.js +85 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/jstests.list +41 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/lamport.js +126 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/peterson.js +89 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-353116.js +112 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-378789.js +67 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-385393-01.js +67 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-385393-10.js +67 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-385393-11.js +68 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-385729.js +88 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-394709.js +84 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-415721.js +74 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-417131.js +108 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-417817.js +87 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-419091.js +79 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-422269.js +83 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-445818.js +73 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-446169-01.js +82 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-446169-02.js +80 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-452476.js +62 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-452913.js +51 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-454744.js +71 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-455973.js +62 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-465337.js +65 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-465453.js +77 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-469625.js +75 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-471197.js +79 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-472450-03.js +67 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-472450-04.js +69 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-473040.js +56 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-475971.js +90 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-476414-01.js +99 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-476414-02.js +100 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-476427.js +69 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-476869.js +79 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-479252.js +73 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-479381.js +81 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-481989.js +54 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/regress-482263.js +57 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_8/extensions/simple-tree.js +82 -0
- data/vendor/tracemonkey/tests/js1_8/genexps/jstests.list +10 -0
- data/vendor/tracemonkey/tests/js1_8/genexps/regress-347739.js +84 -0
- data/vendor/tracemonkey/tests/js1_8/genexps/regress-349012-01.js +87 -0
- data/vendor/tracemonkey/tests/js1_8/genexps/regress-349326.js +181 -0
- data/vendor/tracemonkey/tests/js1_8/genexps/regress-349331.js +126 -0
- data/vendor/tracemonkey/tests/js1_8/genexps/regress-380237-01.js +234 -0
- data/vendor/tracemonkey/tests/js1_8/genexps/regress-380237-02.js +63 -0
- data/vendor/tracemonkey/tests/js1_8/genexps/regress-380237-03.js +195 -0
- data/vendor/tracemonkey/tests/js1_8/genexps/regress-380237-04.js +329 -0
- data/vendor/tracemonkey/tests/js1_8/genexps/regress-384991.js +92 -0
- data/vendor/tracemonkey/tests/js1_8/genexps/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_8/jstests.list +4 -0
- data/vendor/tracemonkey/tests/js1_8/regress/jstests.list +85 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-366941.js +105 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-384412.js +231 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-384758.js +69 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-404734.js +64 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-427798.js +91 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-433279-01.js +61 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-433279-02.js +66 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-433279-03.js +66 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-442333-01.js +70 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-452491.js +64 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-453492.js +61 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-455981-01.js +69 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-455981-02.js +69 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-457065-01.js +67 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-457065-02.js +65 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-458076.js +65 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-459185.js +67 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-459186.js +67 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-459389.js +153 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-461930.js +66 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-461932.js +66 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-463334-01.js +66 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-463334-02.js +68 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-463783.js +68 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-464092-01.js +61 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-464092-02.js +68 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-464096.js +67 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-464418.js +80 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-464978.js +65 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465220.js +78 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465234.js +68 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465239.js +68 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465241.js +68 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465249.js +65 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465261.js +69 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465308.js +66 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465454.js +66 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-01.js +67 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-02.js +65 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-03.js +65 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-04.js +65 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-05.js +65 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-06.js +65 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-07.js +74 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-08.js +65 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-09.js +65 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-10.js +65 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-11.js +65 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-12.js +65 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465483.js +65 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465567-01.js +64 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465567-02.js +60 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-465688.js +63 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-466128.js +66 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-466787.js +68 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-467495-01.js +61 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-467495-02.js +67 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-467495-03.js +80 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-467495-04.js +75 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-467495-05.js +64 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-467495-06.js +77 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-468711.js +65 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-469625-02.js +66 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-469625-03.js +73 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-471373.js +78 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-471660.js +72 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-472450-01.js +66 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-472450-02.js +66 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-472528-01.js +74 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-472528-02.js +74 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-472703.js +73 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-474769.js +70 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-474771.js +73 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-474935.js +75 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-476655.js +74 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-477234.js +79 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-477581.js +68 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-478205.js +65 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-479353.js +56 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-479740.js +71 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-481800.js +65 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-483749.js +60 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-499524.js +48 -0
- data/vendor/tracemonkey/tests/js1_8/regress/regress-532491.js +71 -0
- data/vendor/tracemonkey/tests/js1_8/regress/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_8/shell.js +47 -0
- data/vendor/tracemonkey/tests/js1_8/template.js +59 -0
- data/vendor/tracemonkey/tests/js1_8_1/JSON/jstests.list +3 -0
- data/vendor/tracemonkey/tests/js1_8_1/JSON/regress-458959.js +65 -0
- data/vendor/tracemonkey/tests/js1_8_1/JSON/regress-459293.js +56 -0
- data/vendor/tracemonkey/tests/js1_8_1/JSON/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_8_1/README +1 -0
- data/vendor/tracemonkey/tests/js1_8_1/String/jstests.list +2 -0
- data/vendor/tracemonkey/tests/js1_8_1/String/regress-305064.js +177 -0
- data/vendor/tracemonkey/tests/js1_8_1/String/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_8_1/browser.js +36 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/jstests.list +21 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-346642-01.js +200 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-349605.js +69 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-349634.js +64 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-350991.js +87 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-351070-01.js +102 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-351336.js +63 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-351626.js +64 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-352011.js +75 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-352022.js +69 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-352026.js +79 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-352609.js +90 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-353249.js +67 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-354878.js +62 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-371802.js +63 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-373678-01.js +62 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-380237-03.js +195 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-380237-04.js +334 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-443074.js +63 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-466905-03.js +87 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-530537.js +41 -0
- data/vendor/tracemonkey/tests/js1_8_1/decompilation/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_8_1/extensions/jstests.list +13 -0
- data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-352281.js +67 -0
- data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-353214-02.js +63 -0
- data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-437288-01.js +69 -0
- data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-452498-162.js +59 -0
- data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-452498-193.js +66 -0
- data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-452498-196.js +76 -0
- data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-452498-224.js +63 -0
- data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-466905-04.js +82 -0
- data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-466905-05.js +77 -0
- data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-477158.js +66 -0
- data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-477187.js +73 -0
- data/vendor/tracemonkey/tests/js1_8_1/extensions/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_8_1/extensions/strict-warning.js +29 -0
- data/vendor/tracemonkey/tests/js1_8_1/jstests.list +6 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/jstests.list +82 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-420399.js +69 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-006.js +78 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-027.js +71 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-030.js +64 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-038.js +63 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-039.js +68 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-040.js +70 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-050.js +77 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-051.js +79 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-052-a.js +72 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-052.js +82 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-053.js +111 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-054.js +73 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-058.js +64 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-062.js +77 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-063.js +68 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-068.js +129 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-071.js +64 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-072.js +64 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-073.js +71 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-074.js +67 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-075.js +65 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-076.js +64 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-077.js +67 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-079.js +65 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-082.js +190 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-091.js +65 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-092.js +73 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-098.js +73 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-099-a.js +72 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-099.js +87 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-101.js +64 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-102.js +120 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-103.js +64 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-104.js +64 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-107.js +67 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-108.js +66 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-110.js +82 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-111.js +68 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-112.js +72 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-114-a.js +76 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-114.js +83 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-116.js +66 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-117.js +171 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-118.js +66 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-119.js +93 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-121.js +66 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-123.js +92 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-129.js +83 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-130.js +90 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-131.js +82 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-135-a.js +68 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-135.js +120 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-138.js +77 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-139.js +74 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-155.js +67 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-160.js +72 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-168-1.js +66 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-168-2.js +64 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-176.js +64 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-178.js +64 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-181.js +64 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-184.js +64 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-185.js +70 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-187.js +70 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-191.js +80 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-192.js +62 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-466905-01.js +63 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-466905-02.js +62 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-479430-01.js +76 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-479430-02.js +78 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-479430-03.js +81 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-479430-04.js +77 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-479430-05.js +76 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-495773.js +77 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-495907.js +69 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-496922.js +73 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-507053.js +81 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-507295.js +76 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-507424.js +68 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-509354.js +41 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/regress-515885.js +6 -0
- data/vendor/tracemonkey/tests/js1_8_1/regress/shell.js +1 -0
- data/vendor/tracemonkey/tests/js1_8_1/shell.js +47 -0
- data/vendor/tracemonkey/tests/js1_8_1/template.js +59 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/jstests.list +23 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/math-trace-tests.js +734 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/regress-451673.js +116 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/regress-451974-01.js +87 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/regress-451974-02.js +98 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/regress-452498-01.js +106 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/regress-458838.js +96 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-01.js +108 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-02.js +108 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-03.js +108 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-04.js +108 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-05.js +108 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-06.js +108 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-07.js +108 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-08.js +108 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-09.js +108 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-10.js +108 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-11.js +108 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-12.js +108 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/regress-469927.js +79 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/regress-470739.js +81 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/regress-471635.js +89 -0
- data/vendor/tracemonkey/tests/js1_8_1/trace/shell.js +1 -0
- data/vendor/tracemonkey/{trace-test.js → tests/js1_8_1/trace/trace-test.js} +1261 -1454
- data/vendor/tracemonkey/tests/jsDriver.pl +1537 -0
- data/vendor/tracemonkey/tests/jsreftest.html +19 -0
- data/vendor/tracemonkey/tests/jstests.list +15 -0
- data/vendor/tracemonkey/tests/known-failures.pl +720 -0
- data/vendor/tracemonkey/tests/menufoot.html +8 -0
- data/vendor/tracemonkey/tests/menuhead.html +58 -0
- data/vendor/tracemonkey/tests/menuhead.js +761 -0
- data/vendor/tracemonkey/tests/mkhtml.pl +84 -0
- data/vendor/tracemonkey/tests/mklistpage.pl +443 -0
- data/vendor/tracemonkey/tests/most.tests +892 -0
- data/vendor/tracemonkey/tests/pattern-expander.pl +181 -0
- data/vendor/tracemonkey/tests/pattern-extracter.pl +227 -0
- data/vendor/tracemonkey/tests/performance-1.8.0.tests +19 -0
- data/vendor/tracemonkey/tests/performance-1.8.1.tests +19 -0
- data/vendor/tracemonkey/tests/performance-1.9.0.tests +19 -0
- data/vendor/tracemonkey/tests/performance-1.9.1.tests +19 -0
- data/vendor/tracemonkey/tests/performance-1.9.2.tests +19 -0
- data/vendor/tracemonkey/tests/performance.tests +18 -0
- data/vendor/tracemonkey/tests/post-process-logs.pl +602 -0
- data/vendor/tracemonkey/tests/process-logs.sh +203 -0
- data/vendor/tracemonkey/tests/remove-fixed-failures.sh +82 -0
- data/vendor/tracemonkey/tests/runRhinoTests.pl +447 -0
- data/vendor/tracemonkey/tests/runtests.pl +495 -0
- data/vendor/tracemonkey/tests/runtests.sh +262 -0
- data/vendor/tracemonkey/tests/runtests2.pl +3 -0
- data/vendor/tracemonkey/tests/shell.js +928 -0
- data/vendor/tracemonkey/tests/slow-n-1.8.1-browser.tests +62 -0
- data/vendor/tracemonkey/tests/slow-n-1.8.1.tests +35 -0
- data/vendor/tracemonkey/tests/slow-n-1.9.0-browser.tests +51 -0
- data/vendor/tracemonkey/tests/slow-n-1.9.0.tests +21 -0
- data/vendor/tracemonkey/tests/slow-n-1.9.1-browser.tests +49 -0
- data/vendor/tracemonkey/tests/slow-n-1.9.1.tests +25 -0
- data/vendor/tracemonkey/tests/slow-n-1.9.2-browser.tests +50 -0
- data/vendor/tracemonkey/tests/slow-n-1.9.2.tests +24 -0
- data/vendor/tracemonkey/tests/slow-n.tests +30 -0
- data/vendor/tracemonkey/tests/spidermonkey-gc.tests +28 -0
- data/vendor/tracemonkey/tests/spidermonkey-n-1.8.0.tests +95 -0
- data/vendor/tracemonkey/tests/spidermonkey-n-1.8.1.tests +95 -0
- data/vendor/tracemonkey/tests/spidermonkey-n-1.9.0.tests +99 -0
- data/vendor/tracemonkey/tests/spidermonkey-n-1.9.1.tests +152 -0
- data/vendor/tracemonkey/tests/spidermonkey-n-1.9.2.tests +152 -0
- data/vendor/tracemonkey/tests/spidermonkey-n-1.9.3.tests +152 -0
- data/vendor/tracemonkey/tests/spidermonkey-n.tests +90 -0
- data/vendor/tracemonkey/tests/template.js +73 -0
- data/vendor/tracemonkey/tests/test.sh +531 -0
- data/vendor/tracemonkey/tests/user.js +33 -0
- data/vendor/tracemonkey/tests/userhookeach.js +198 -0
- data/vendor/tracemonkey/trace-test/README +70 -0
- data/vendor/tracemonkey/trace-test/lib/andTestHelper.js +9 -0
- data/vendor/tracemonkey/{mandelbrot-results.js → trace-test/lib/mandelbrot-results.js} +0 -0
- data/vendor/tracemonkey/trace-test/lib/orTestHelper.js +9 -0
- data/vendor/tracemonkey/trace-test/lib/prolog.js +37 -0
- data/vendor/tracemonkey/trace-test/lib/range.js +18 -0
- data/vendor/tracemonkey/trace-test/progressbar.py +35 -0
- data/vendor/tracemonkey/trace-test/tests/basic/FPQuadCmp.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/argumentsPassedToBuiltin.js +14 -0
- data/vendor/tracemonkey/trace-test/tests/basic/arith.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/arityMismatchExtraArg.js +13 -0
- data/vendor/tracemonkey/trace-test/tests/basic/arityMismatchMissingArg.js +8 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bitwiseAnd.js +10 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bitwiseGlobal.js +8 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug464403.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug465902.js +13 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug504587-1.js +13 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug507180.js +69 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug509639.js +3 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug509982.js +15 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug510434.js +2 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug510437-2.js +13 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug510437.js +12 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug510642.js +14 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug510655.js +15 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug511214.js +18 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug511241.js +15 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug513038.js +16 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug516009.js +20 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug517721.js +8 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug525028.js +16 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug531037.js +22 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug531513.js +23 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug532568-2.js +20 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug532568.js +19 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug532823.js +23 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug535760.js +13 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug539553-2.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug539553-3.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/bug539553.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/call.js +28 -0
- data/vendor/tracemonkey/{call.js → trace-test/tests/basic/call2.js} +1 -1
- data/vendor/tracemonkey/trace-test/tests/basic/createMandelSet.js +242 -0
- data/vendor/tracemonkey/trace-test/tests/basic/deep2.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/deepForInLoop.js +12 -0
- data/vendor/tracemonkey/trace-test/tests/basic/dependentStrings.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/doMath.js +60 -0
- data/vendor/tracemonkey/trace-test/tests/basic/equalInt.js +29 -0
- data/vendor/tracemonkey/trace-test/tests/basic/fannkuch.js +17 -0
- data/vendor/tracemonkey/trace-test/tests/basic/forVarInWith.js +12 -0
- data/vendor/tracemonkey/trace-test/tests/basic/getelem.js +30 -0
- data/vendor/tracemonkey/trace-test/tests/basic/getprop.js +16 -0
- data/vendor/tracemonkey/trace-test/tests/basic/globalGet.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/globalSet.js +4 -0
- data/vendor/tracemonkey/trace-test/tests/basic/ifInsideLoop.js +12 -0
- data/vendor/tracemonkey/trace-test/tests/basic/inArrayTest.js +9 -0
- data/vendor/tracemonkey/trace-test/tests/basic/inObjectTest.js +13 -0
- data/vendor/tracemonkey/trace-test/tests/basic/innerLoopIntOuterDouble.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/inner_double_outer_int.js +10 -0
- data/vendor/tracemonkey/trace-test/tests/basic/jitstatsArchFlags.js +14 -0
- data/vendor/tracemonkey/trace-test/tests/basic/joinTest.js +15 -0
- data/vendor/tracemonkey/trace-test/tests/basic/matchInLoop.js +8 -0
- data/vendor/tracemonkey/{math-trace-tests.js → trace-test/tests/basic/math-trace-tests.js} +25 -12
- data/vendor/tracemonkey/trace-test/tests/basic/merge_type_maps.js +9 -0
- data/vendor/tracemonkey/trace-test/tests/basic/missingArgTest.js +12 -0
- data/vendor/tracemonkey/trace-test/tests/basic/missingArgTest2.js +26 -0
- data/vendor/tracemonkey/trace-test/tests/basic/mod.js +14 -0
- data/vendor/tracemonkey/trace-test/tests/basic/name-inactive-del.js +28 -0
- data/vendor/tracemonkey/trace-test/tests/basic/name-inactive-eval-del.js +10 -0
- data/vendor/tracemonkey/trace-test/tests/basic/name-inactive-inferflags.js +18 -0
- data/vendor/tracemonkey/trace-test/tests/basic/name-inactive.js +20 -0
- data/vendor/tracemonkey/trace-test/tests/basic/name.js +9 -0
- data/vendor/tracemonkey/trace-test/tests/basic/nestedExit2.js +17 -0
- data/vendor/tracemonkey/trace-test/tests/basic/nestedExitLoop.js +14 -0
- data/vendor/tracemonkey/trace-test/tests/basic/newArrayTest.js +8 -0
- data/vendor/tracemonkey/trace-test/tests/basic/newTest.js +14 -0
- data/vendor/tracemonkey/trace-test/tests/basic/nonEmptyStack1.js +13 -0
- data/vendor/tracemonkey/trace-test/tests/basic/nonEmptyStack2.js +10 -0
- data/vendor/tracemonkey/trace-test/tests/basic/orNaNTest1.js +3 -0
- data/vendor/tracemonkey/trace-test/tests/basic/orNaNTest2.js +3 -0
- data/vendor/tracemonkey/trace-test/tests/basic/outerline.js +15 -0
- data/vendor/tracemonkey/trace-test/tests/basic/parseIntTests.js +21 -0
- data/vendor/tracemonkey/trace-test/tests/basic/parsingNumbers.js +23 -0
- data/vendor/tracemonkey/trace-test/tests/basic/putargsNoReturn.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/putargsReturn.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/regexpLastIndex.js +13 -0
- data/vendor/tracemonkey/trace-test/tests/basic/setArgumentsLength.js +14 -0
- data/vendor/tracemonkey/trace-test/tests/basic/setArgumentsLength2.js +12 -0
- data/vendor/tracemonkey/trace-test/tests/basic/setCall.js +26 -0
- data/vendor/tracemonkey/trace-test/tests/basic/setCallEvalMiddle.js +17 -0
- data/vendor/tracemonkey/trace-test/tests/basic/setCallEvalMiddle2.js +18 -0
- data/vendor/tracemonkey/trace-test/tests/basic/setCallGlobal.js +14 -0
- data/vendor/tracemonkey/trace-test/tests/basic/setelem.js +12 -0
- data/vendor/tracemonkey/trace-test/tests/basic/setprop.js +10 -0
- data/vendor/tracemonkey/trace-test/tests/basic/shapelessCalleeTest.js +67 -0
- data/vendor/tracemonkey/trace-test/tests/basic/stringConvert.js +18 -0
- data/vendor/tracemonkey/trace-test/tests/basic/stringSplitIntoArrayTest.js +9 -0
- data/vendor/tracemonkey/trace-test/tests/basic/stringSplitTest.js +9 -0
- data/vendor/tracemonkey/trace-test/tests/basic/strings.js +21 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testAbortedImacroDecompilation.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testAddAnyInconvertibleObject.js +33 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testAddInconvertibleObjectAny.js +39 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testAddInconvertibleObjectInconvertibleObject.js +38 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testAddNull.js +13 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testAddUndefined.js +5 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testApply.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testApplyCall.js +42 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testApplyUnbox.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testArrayComp1.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testArrayComp2.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testArrayDensityChange.js +17 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testArrayNaNIndex.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testArrayNamedProp.js +5 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testArrayPushPop.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testAtomize.js +10 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBitOrAnyInconvertibleObject.js +33 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBitOrInconvertibleObjectAny.js +33 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBitOrInconvertibleObjectInconvertibleObject.js +38 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBitwise.js +12 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBoxDoubleWithDoubleSizedInt.js +10 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBranchCse.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBranchingLoop.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBranchingUnstableLoop.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBranchingUnstableLoopCounter.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBranchingUnstableObject.js +13 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBreak.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBug458838.js +18 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBug462388.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBug462407.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBug463490.js +18 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBug465261.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBug465272.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBug465483.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBug465688.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBug466128.js +9 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBug466262.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBug474769.js +10 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBug501690.js +14 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBug502914.js +19 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBug504520.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBug504520Harder.js +32 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBug507425.js +14 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testBug532363.js +2 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testCallElem.js +17 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testCallPick.js +18 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testCallProtoMethod.js +14 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testCaseAbort.js +19 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testCaseTypeMismatchBadness.js +22 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testChangingObjectWithLength.js +37 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testClosingRecursion.js +13 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testClosureIncrSideExit.js +17 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testClosures.js +18 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testComparisons.js +988 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testConstIf.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testConstSwitch.js +13 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testConstSwitch2.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testConstantBooleanExpr.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testConstructorBail.js +4 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testContinue.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testContinueWithLabel.js +16 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testContinueWithLabel2.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testContinueWithLabel3.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testContinueWithLabel4.js +25 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testConvertibleObjectEqUndefined.js +33 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testCustomIterator.js +26 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testDateNow.js +15 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testDecayingInnerLoop.js +9 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testDeepBail1.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testDeepBailFromHasInstance.js +12 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testDeepPropertyShadowing.js +17 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testDenseArrayProp.js +12 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testDestructuring.js +9 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testDifferingArgc.js +18 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testDivOverflow.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testDivision.js +10 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testDivisionFloat.js +10 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testDivisionWithNegative1.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testDoubleComparison.js +16 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testDoubleToStr.js +9 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testEliminatedGuardWithinAnchor.js +12 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testEqFalseEmptyString.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testFewerGlobalsInInnerTree.js +14 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testFloatArrayIndex.js +9 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testForEach.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testForInLoopChangeIteratorType.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testFunctionIdentityChange.js +21 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testGCWhileRecording.js +12 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testGeneratorDeepBail.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testGetCallObj.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testGetThis.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testGlobalMultitrees1.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testGlobalProtoAccess.js +5 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testGlobalShapeChangeAfterDeepBail.js +15 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testGrowDenseArray.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testHOTLOOPCorrectness.js +14 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testHOTLOOPSize.js +4 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testHeavy.js +14 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testHeavy2.js +20 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testHolePushing.js +13 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testINITELEM.js +8 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testIn.js +19 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testIncDec.js +19 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testInitelemWithFloatIndex.js +3 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testInitelemWithSetter.js +3 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testInnerMissingArgs.js +21 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testInnerSwitchBreak.js +24 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testInt32ToId.js +39 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testIntFloor.js +8 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testIntOverflow.js +15 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testIntUnderflow.js +15 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testInterpreterReentery8.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testInterpreterReentry.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testInterpreterReentry2.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testInterpreterReentry3.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testInterpreterReentry4.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testInterpreterReentry5.js +9 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testInterpreterReentry6.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testInterpreterReentry7.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testInvalidCharCodeAt.js +12 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testInvertNullAfterNegateNull.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testLambdaCtor.js +14 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testLambdaInitedVar.js +8 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testLengthInString.js +12 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testLengthOnNonNativeProto.js +20 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testLetWithUnstableGlobal.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testLirBufOOM.js +34 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testLogicalNotNaN.js +8 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testLongNumToString.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testLoopWithUndefined1.js +12 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testLoopWithUndefined2.js +20 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testLoopingAccumulator.js +21 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testMatchAsCondition.js +8 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testMatchStringObject.js +8 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testMethodInit.js +15 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testMethodInitSafety.js +14 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testMethodSet.js +18 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testModuloWithNegative1.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testModuloWithNegative2.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testMoreArgcThanNargs.js +14 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testMoreClosures.js +14 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testMulOverflow.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testMultipleArgumentsObjects.js +12 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNEWINIT.js +8 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNEWINIT_DOUBLE.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNativeArgsRooting.js +14 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNativeLog.js +8 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNativeMax.js +20 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNativeSetter.js +14 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNegZero1.js +9 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNegativeArrayLength.js +10 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNegativeGETELEMIndex.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNestedClosures.js +23 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNestedDeepBail.js +19 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNestedEscapingLambdas.js +31 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNestedExitStackOuter.js +29 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNestedForIn.js +9 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNewArrayCount.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNewArrayCount2.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNewDate.js +17 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNewString.js +27 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNewWithNonNativeProto.js +14 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNonStubGetter.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNot.js +8 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNullCallee.js +16 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNullRelCmp.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNullToString.js +18 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNumToString.js +18 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testNumberToString.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testObjectLength.js +15 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testObjectOrderedCmp.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testObjectOrderedCmp2.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testObjectToNumber.js +8 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testObjectToString.js +8 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testObjectVsPrototype.js +12 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testOwnPropertyWithInOperator.js +12 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testPrimitiveConstructorPrototype.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testPropagatedFunArgs.js +34 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testRUNLOOPCorrectness.js +15 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testReallyDeepNestedExit.js +38 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testRebranding.js +10 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testRebranding2.js +21 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testRegExpTest.js +10 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testRegexpGet.js +8 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testReplace2.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testResumeOp.js +8 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testReverseArgTypes.js +5 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testSetPropNeitherMissNorHit.js +5 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testSetPropertyFail.js +22 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testSetProtoRegeneratesObjectShape.js +24 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testSetelemWithFloatIndex.js +4 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testShiftLeft.js +38 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testShiftRightArithmetic.js +35 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testShiftRightLogical.js +38 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testSideExitInConstructor.js +39 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testSlowArrayLength.js +15 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testSlowArrayPop.js +12 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testSlowArrayPopMultiFrame.js +24 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testSlowArrayPopNestedTrees.js +36 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testSlowNativeBail.js +10 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testSlowNativeCtor.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testStrict.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testString.js +18 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testStringConstructorWithExtraArg.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testStringLengthNoTinyId.js +64 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testStringObjectLength.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testStringResolve.js +9 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testStringToInt32.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testStringify.js +20 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testSubstring.js +7 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testSwitch.js +25 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testSwitchString.js +28 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testSwitchUndefined.js +15 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testTableSwitch1.js +22 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testTableSwitch2.js +27 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testThinForEach.js +10 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testThinLoopDemote.js +20 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testThrowingObjectEqUndefined.js +18 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testToStringBeforeValueOf.js +13 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testToUpperToLower.js +9 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testTrueShiftTrue.js +16 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testTypeUnstableForIn.js +10 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testTypeofHole.js +8 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testUnaryImacros.js +26 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testUndefinedBooleanCmp.js +24 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testUndefinedCmp.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testUndefinedPropertyAccess.js +15 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testUndemotableBinaryOp.js +6 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testUndemoteLateGlobalSlots.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testWeirdDateParse.js +46 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testWhileObjectOrNull.js +18 -0
- data/vendor/tracemonkey/trace-test/tests/basic/test_JSOP_ARGCNT.js +27 -0
- data/vendor/tracemonkey/trace-test/tests/basic/test_JSOP_ARGSUB.js +27 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testif.js +11 -0
- data/vendor/tracemonkey/trace-test/tests/basic/testincops.js +24 -0
- data/vendor/tracemonkey/trace-test/tests/basic/trees.js +10 -0
- data/vendor/tracemonkey/trace-test/tests/basic/truthies.js +29 -0
- data/vendor/tracemonkey/trace-test/tests/basic/typeofTest.js +8 -0
- data/vendor/tracemonkey/trace-test/tests/basic/unboxint.js +8 -0
- data/vendor/tracemonkey/trace-test/tests/basic/xprop.js +8 -0
- data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-3d-morph.js +5 -1
- data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-3d-raytrace.js +1 -3
- data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-access-binary-trees.js +1 -1
- data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-access-fannkuch.js +1 -1
- data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-access-nbody.js +1 -1
- data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-access-nsieve.js +1 -1
- data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-bitops-3bit-bits-in-byte.js +1 -1
- data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-bitops-bits-in-byte.js +1 -1
- data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-bitops-bitwise-and.js +1 -1
- data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-bitops-nsieve-bits.js +1 -1
- data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-controlflow-recursive.js +1 -1
- data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-date-format-tofte.js +1 -1
- data/vendor/tracemonkey/trace-test/tests/sunspider/check-date-format-xparb.js +422 -0
- data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-mont.js +1 -1
- data/vendor/tracemonkey/trace-test/trace-test.py +330 -0
- data/vendor/tracemonkey/tracevis/README +50 -0
- data/vendor/tracemonkey/tracevis/acts.py +64 -0
- data/vendor/tracemonkey/tracevis/binlog.py +140 -0
- data/vendor/tracemonkey/tracevis/config.py +5 -0
- data/vendor/tracemonkey/tracevis/tree.py +282 -0
- data/vendor/tracemonkey/tracevis/vis.py +233 -0
- data/vendor/tracemonkey/{config/revdepth-nt.pl → vprof/manifest.mk} +8 -17
- data/vendor/tracemonkey/vprof/testVprofMT.c +125 -0
- data/vendor/tracemonkey/vprof/vprof.h +10 -12
- data/vendor/tracemonkey/xpconnect/idl/nsIXPCScriptable.idl +2 -2
- data/vendor/tracemonkey/xpconnect/idl/nsIXPConnect.idl +43 -22
- data/vendor/tracemonkey/xpconnect/idl/xpcIJSWeakReference.idl +0 -0
- data/vendor/tracemonkey/xpconnect/idl/xpcexception.idl +12 -1
- data/vendor/tracemonkey/xpconnect/loader/XPCOMUtils.jsm +49 -3
- data/vendor/tracemonkey/xpconnect/loader/mozJSComponentLoader.cpp +10 -20
- data/vendor/tracemonkey/xpconnect/shell/Makefile.in +2 -1
- data/vendor/tracemonkey/xpconnect/shell/xpcshell.cpp +120 -40
- data/vendor/tracemonkey/xpconnect/src/Makefile.in +10 -7
- data/vendor/tracemonkey/xpconnect/src/XPCChromeObjectWrapper.cpp +769 -0
- data/vendor/tracemonkey/xpconnect/src/XPCCrossOriginWrapper.cpp +25 -19
- data/vendor/tracemonkey/xpconnect/src/XPCDispConvert.cpp +4 -0
- data/vendor/tracemonkey/xpconnect/src/XPCDispInlines.h +4 -5
- data/vendor/tracemonkey/xpconnect/src/XPCDispPrivate.h +2 -10
- data/vendor/tracemonkey/xpconnect/src/XPCDispTypeInfo.cpp +7 -12
- data/vendor/tracemonkey/xpconnect/src/XPCIDispatchExtension.cpp +0 -198
- data/vendor/tracemonkey/xpconnect/src/XPCNativeWrapper.cpp +16 -9
- data/vendor/tracemonkey/xpconnect/src/XPCNativeWrapper.h +1 -1
- data/vendor/tracemonkey/xpconnect/src/XPCSafeJSObjectWrapper.cpp +143 -269
- data/vendor/tracemonkey/xpconnect/src/XPCSystemOnlyWrapper.cpp +9 -1
- data/vendor/tracemonkey/xpconnect/src/XPCWrapper.cpp +3 -2
- data/vendor/tracemonkey/xpconnect/src/XPCWrapper.h +19 -4
- data/vendor/tracemonkey/xpconnect/src/dom_quickstubs.qsconf +44 -48
- data/vendor/tracemonkey/xpconnect/src/nsDispatchSupport.cpp +6 -3
- data/vendor/tracemonkey/xpconnect/src/nsXPConnect.cpp +325 -202
- data/vendor/tracemonkey/xpconnect/src/qsgen.py +67 -71
- data/vendor/tracemonkey/xpconnect/src/xpcJSWeakReference.cpp +0 -0
- data/vendor/tracemonkey/xpconnect/src/xpcJSWeakReference.h +0 -0
- data/vendor/tracemonkey/xpconnect/src/xpccallcontext.cpp +82 -13
- data/vendor/tracemonkey/xpconnect/src/xpccomponents.cpp +36 -28
- data/vendor/tracemonkey/xpconnect/src/xpcconvert.cpp +139 -44
- data/vendor/tracemonkey/xpconnect/src/xpcdebug.cpp +7 -0
- data/vendor/tracemonkey/xpconnect/src/xpcexception.cpp +13 -7
- data/vendor/tracemonkey/xpconnect/src/xpcforwards.h +0 -1
- data/vendor/tracemonkey/xpconnect/src/xpcinlines.h +27 -10
- data/vendor/tracemonkey/xpconnect/src/xpcjsid.cpp +47 -35
- data/vendor/tracemonkey/xpconnect/src/xpcjsruntime.cpp +48 -67
- data/vendor/tracemonkey/xpconnect/src/xpclog.cpp +35 -0
- data/vendor/tracemonkey/xpconnect/src/xpclog.h +55 -0
- data/vendor/tracemonkey/xpconnect/src/xpcprivate.h +322 -75
- data/vendor/tracemonkey/xpconnect/src/xpcquickstubs.cpp +142 -114
- data/vendor/tracemonkey/xpconnect/src/xpcquickstubs.h +25 -49
- data/vendor/tracemonkey/xpconnect/src/xpcstring.cpp +14 -7
- data/vendor/tracemonkey/xpconnect/src/xpcthreadcontext.cpp +6 -6
- data/vendor/tracemonkey/xpconnect/src/xpcthrower.cpp +10 -3
- data/vendor/tracemonkey/xpconnect/src/xpcvariant.cpp +9 -8
- data/vendor/tracemonkey/xpconnect/src/xpcwrappedjs.cpp +15 -14
- data/vendor/tracemonkey/xpconnect/src/xpcwrappedjsclass.cpp +109 -111
- data/vendor/tracemonkey/xpconnect/src/xpcwrappednative.cpp +498 -118
- data/vendor/tracemonkey/xpconnect/src/xpcwrappednativeinfo.cpp +5 -6
- data/vendor/tracemonkey/xpconnect/src/xpcwrappednativejsops.cpp +188 -25
- data/vendor/tracemonkey/xpconnect/src/xpcwrappednativeproto.cpp +6 -3
- data/vendor/tracemonkey/xpconnect/src/xpcwrappednativescope.cpp +46 -27
- data/vendor/tracemonkey/xpconnect/tests/TestXPC.cpp +118 -115
- data/vendor/tracemonkey/xpconnect/tests/chrome/Makefile.in +2 -0
- data/vendor/tracemonkey/xpconnect/tests/chrome/bug503926.xul +28 -0
- data/vendor/tracemonkey/xpconnect/tests/chrome/test_bug503926.xul +43 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/jsDriver.pl +1 -61
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_observer.js +1 -2
- data/vendor/tracemonkey/xpconnect/tests/mochitest/Makefile.in +3 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug390488.html +1 -1
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug393269.html +1 -1
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug396851.html +1 -1
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug428021.html +1 -1
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug446584.html +1 -1
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug448587.html +1 -1
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug462428.html +1 -1
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug478438.html +1 -1
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug484107.html +1 -1
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug502959.html +38 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug503926.html +30 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_cows.html +179 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_wrappers.html +9 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/test_iterate.js +54 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/test_js_weak_references.js +0 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/test_xpcomutils.js +135 -0
- data/vendor/tracemonkey/xpconnect/tools/src/nsXPCToolsCompiler.cpp +1 -1
- data/vendor/tracemonkey/xpconnect/tools/src/xpctools_private.h +1 -1
- metadata +3711 -35
- data/vendor/tracemonkey/build/autoconf/update-makefile.sh +0 -118
- data/vendor/tracemonkey/correct.sh +0 -23
- data/vendor/tracemonkey/correct/check-date-format-xparb.js +0 -421
- data/vendor/tracemonkey/if.js +0 -13
- data/vendor/tracemonkey/js3240.rc +0 -79
- data/vendor/tracemonkey/jsOS240.def +0 -654
- data/vendor/tracemonkey/math-partial-sums.js +0 -32
- data/vendor/tracemonkey/md5.js +0 -289
- data/vendor/tracemonkey/nanojit/NativeThumb.cpp +0 -1322
- data/vendor/tracemonkey/nanojit/NativeThumb.h +0 -525
- data/vendor/tracemonkey/nanojit/TraceTreeDrawer.cpp +0 -306
data/vendor/tracemonkey/jsnum.h
CHANGED
@@ -40,6 +40,14 @@
|
|
40
40
|
#ifndef jsnum_h___
|
41
41
|
#define jsnum_h___
|
42
42
|
|
43
|
+
#include <math.h>
|
44
|
+
#if defined(XP_WIN) || defined(XP_OS2)
|
45
|
+
#include <float.h>
|
46
|
+
#endif
|
47
|
+
#ifdef SOLARIS
|
48
|
+
#include <ieeefp.h>
|
49
|
+
#endif
|
50
|
+
|
43
51
|
/*
|
44
52
|
* JS number (IEEE double) interface.
|
45
53
|
*
|
@@ -74,66 +82,82 @@ typedef union jsdpun {
|
|
74
82
|
jsdouble d;
|
75
83
|
} jsdpun;
|
76
84
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
#define JSDOUBLE_HI32(x) (__extension__ ({ jsdpun u; u.d = (x); u.s.hi; }))
|
84
|
-
#define JSDOUBLE_LO32(x) (__extension__ ({ jsdpun u; u.d = (x); u.s.lo; }))
|
85
|
-
#define JSDOUBLE_SET_HI32(x, y) \
|
86
|
-
(__extension__ ({ jsdpun u; u.d = (x); u.s.hi = (y); (x) = u.d; }))
|
87
|
-
#define JSDOUBLE_SET_LO32(x, y) \
|
88
|
-
(__extension__ ({ jsdpun u; u.d = (x); u.s.lo = (y); (x) = u.d; }))
|
89
|
-
|
90
|
-
#else /* not or old GNUC */
|
91
|
-
|
92
|
-
/*
|
93
|
-
* We don't know of any non-gcc compilers that perform alias optimization,
|
94
|
-
* so this code should work.
|
95
|
-
*/
|
96
|
-
|
97
|
-
#if defined(IS_LITTLE_ENDIAN) && !defined(FPU_IS_ARM_FPA)
|
98
|
-
#define JSDOUBLE_HI32(x) (((uint32 *)&(x))[1])
|
99
|
-
#define JSDOUBLE_LO32(x) (((uint32 *)&(x))[0])
|
85
|
+
static inline int
|
86
|
+
JSDOUBLE_IS_NaN(jsdouble d)
|
87
|
+
{
|
88
|
+
#ifdef WIN32
|
89
|
+
return _isnan(d);
|
100
90
|
#else
|
101
|
-
|
102
|
-
#define JSDOUBLE_LO32(x) (((uint32 *)&(x))[1])
|
91
|
+
return isnan(d);
|
103
92
|
#endif
|
93
|
+
}
|
104
94
|
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
#
|
95
|
+
static inline int
|
96
|
+
JSDOUBLE_IS_FINITE(jsdouble d)
|
97
|
+
{
|
98
|
+
#ifdef WIN32
|
99
|
+
return _finite(d);
|
100
|
+
#else
|
101
|
+
return finite(d);
|
102
|
+
#endif
|
103
|
+
}
|
104
|
+
|
105
|
+
static inline int
|
106
|
+
JSDOUBLE_IS_INFINITE(jsdouble d)
|
107
|
+
{
|
108
|
+
#ifdef WIN32
|
109
|
+
int c = _fpclass(d);
|
110
|
+
return c == _FPCLASS_NINF || c == _FPCLASS_PINF;
|
111
|
+
#elif defined(SOLARIS)
|
112
|
+
return !finite(d) && !isnan(d);
|
113
|
+
#else
|
114
|
+
return isinf(d);
|
115
|
+
#endif
|
116
|
+
}
|
117
|
+
|
118
|
+
static inline int
|
119
|
+
JSDOUBLE_IS_NEGZERO(jsdouble d)
|
120
|
+
{
|
121
|
+
#ifdef WIN32
|
122
|
+
return (d == 0 && (_fpclass(d) & _FPCLASS_NZ));
|
123
|
+
#elif defined(SOLARIS)
|
124
|
+
return (d == 0 && copysign(1, d) < 0);
|
125
|
+
#else
|
126
|
+
return (d == 0 && signbit(d));
|
127
|
+
#endif
|
128
|
+
}
|
109
129
|
|
110
130
|
#define JSDOUBLE_HI32_SIGNBIT 0x80000000
|
111
131
|
#define JSDOUBLE_HI32_EXPMASK 0x7ff00000
|
112
132
|
#define JSDOUBLE_HI32_MANTMASK 0x000fffff
|
113
133
|
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
#
|
126
|
-
|
134
|
+
static inline int
|
135
|
+
JSDOUBLE_IS_INT(jsdouble d, jsint& i)
|
136
|
+
{
|
137
|
+
if (JSDOUBLE_IS_NEGZERO(d))
|
138
|
+
return false;
|
139
|
+
return d == (i = jsint(d));
|
140
|
+
}
|
141
|
+
|
142
|
+
static inline int
|
143
|
+
JSDOUBLE_IS_NEG(jsdouble d)
|
144
|
+
{
|
145
|
+
#ifdef WIN32
|
146
|
+
return JSDOUBLE_IS_NEGZERO(d) || d < 0;
|
147
|
+
#elif defined(SOLARIS)
|
148
|
+
return copysign(1, d) < 0;
|
149
|
+
#else
|
150
|
+
return signbit(d);
|
151
|
+
#endif
|
152
|
+
}
|
127
153
|
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
&& !JSDOUBLE_IS_NEGZERO(d) \
|
136
|
-
&& ((d) == (i = (jsint)(d))))
|
154
|
+
static inline uint32
|
155
|
+
JS_HASH_DOUBLE(jsdouble d)
|
156
|
+
{
|
157
|
+
jsdpun u;
|
158
|
+
u.d = d;
|
159
|
+
return u.s.lo ^ u.s.hi;
|
160
|
+
}
|
137
161
|
|
138
162
|
#if defined(XP_WIN)
|
139
163
|
#define JSDOUBLE_COMPARE(LVAL, OP, RVAL, IFNAN) \
|
@@ -189,6 +213,13 @@ js_NewWeaklyRootedNumber(JSContext *cx, jsdouble d, jsval *vp);
|
|
189
213
|
extern JSString * JS_FASTCALL
|
190
214
|
js_NumberToString(JSContext *cx, jsdouble d);
|
191
215
|
|
216
|
+
/*
|
217
|
+
* Convert an integer or double (contained in the given jsval) to a string and
|
218
|
+
* append to the given buffer.
|
219
|
+
*/
|
220
|
+
extern JSBool JS_FASTCALL
|
221
|
+
js_NumberValueToCharBuffer(JSContext *cx, jsval v, JSCharBuffer &cb);
|
222
|
+
|
192
223
|
/*
|
193
224
|
* Convert a value to a number. On exit JSVAL_IS_NULL(*vp) iff there was an
|
194
225
|
* error. If on exit JSVAL_IS_NUMBER(*vp), then *vp holds the jsval that
|
@@ -216,8 +247,109 @@ js_ValueToECMAUint32(JSContext *cx, jsval *vp);
|
|
216
247
|
/*
|
217
248
|
* Specialized ToInt32 and ToUint32 converters for doubles.
|
218
249
|
*/
|
219
|
-
|
220
|
-
|
250
|
+
/*
|
251
|
+
* From the ES3 spec, 9.5
|
252
|
+
* 2. If Result(1) is NaN, +0, -0, +Inf, or -Inf, return +0.
|
253
|
+
* 3. Compute sign(Result(1)) * floor(abs(Result(1))).
|
254
|
+
* 4. Compute Result(3) modulo 2^32; that is, a finite integer value k of Number
|
255
|
+
* type with positive sign and less than 2^32 in magnitude such the mathematical
|
256
|
+
* difference of Result(3) and k is mathematically an integer multiple of 2^32.
|
257
|
+
* 5. If Result(4) is greater than or equal to 2^31, return Result(4)- 2^32,
|
258
|
+
* otherwise return Result(4).
|
259
|
+
*/
|
260
|
+
static inline int32
|
261
|
+
js_DoubleToECMAInt32(jsdouble d)
|
262
|
+
{
|
263
|
+
#ifdef __i386__
|
264
|
+
jsdpun du, duh, two32;
|
265
|
+
uint32 di_h, u_tmp, expon, shift_amount;
|
266
|
+
int32 mask32;
|
267
|
+
|
268
|
+
/*
|
269
|
+
* Algorithm Outline
|
270
|
+
* Step 1. If d is NaN, +/-Inf or |d|>=2^84 or |d|<1, then return 0
|
271
|
+
* All of this is implemented based on an exponent comparison.
|
272
|
+
* Step 2. If |d|<2^31, then return (int)d
|
273
|
+
* The cast to integer (conversion in RZ mode) returns the correct result.
|
274
|
+
* Step 3. If |d|>=2^32, d:=fmod(d, 2^32) is taken -- but without a call
|
275
|
+
* Step 4. If |d|>=2^31, then the fractional bits are cleared before
|
276
|
+
* applying the correction by 2^32: d - sign(d)*2^32
|
277
|
+
* Step 5. Return (int)d
|
278
|
+
*/
|
279
|
+
|
280
|
+
du.d = d;
|
281
|
+
di_h = du.s.hi;
|
282
|
+
|
283
|
+
u_tmp = (di_h & 0x7ff00000) - 0x3ff00000;
|
284
|
+
if (u_tmp >= (0x45300000-0x3ff00000)) {
|
285
|
+
// d is Nan, +/-Inf or +/-0, or |d|>=2^(32+52) or |d|<1, in which case result=0
|
286
|
+
return 0;
|
287
|
+
}
|
288
|
+
|
289
|
+
if (u_tmp < 0x01f00000) {
|
290
|
+
// |d|<2^31
|
291
|
+
return int32_t(d);
|
292
|
+
}
|
293
|
+
|
294
|
+
if (u_tmp > 0x01f00000) {
|
295
|
+
// |d|>=2^32
|
296
|
+
expon = u_tmp >> 20;
|
297
|
+
shift_amount = expon - 21;
|
298
|
+
duh.u64 = du.u64;
|
299
|
+
mask32 = 0x80000000;
|
300
|
+
if (shift_amount < 32) {
|
301
|
+
mask32 >>= shift_amount;
|
302
|
+
duh.s.hi = du.s.hi & mask32;
|
303
|
+
duh.s.lo = 0;
|
304
|
+
} else {
|
305
|
+
mask32 >>= (shift_amount-32);
|
306
|
+
duh.s.hi = du.s.hi;
|
307
|
+
duh.s.lo = du.s.lo & mask32;
|
308
|
+
}
|
309
|
+
du.d -= duh.d;
|
310
|
+
}
|
311
|
+
|
312
|
+
di_h = du.s.hi;
|
313
|
+
|
314
|
+
// eliminate fractional bits
|
315
|
+
u_tmp = (di_h & 0x7ff00000);
|
316
|
+
if (u_tmp >= 0x41e00000) {
|
317
|
+
// |d|>=2^31
|
318
|
+
expon = u_tmp >> 20;
|
319
|
+
shift_amount = expon - (0x3ff - 11);
|
320
|
+
mask32 = 0x80000000;
|
321
|
+
if (shift_amount < 32) {
|
322
|
+
mask32 >>= shift_amount;
|
323
|
+
du.s.hi &= mask32;
|
324
|
+
du.s.lo = 0;
|
325
|
+
} else {
|
326
|
+
mask32 >>= (shift_amount-32);
|
327
|
+
du.s.lo &= mask32;
|
328
|
+
}
|
329
|
+
two32.s.hi = 0x41f00000 ^ (du.s.hi & 0x80000000);
|
330
|
+
two32.s.lo = 0;
|
331
|
+
du.d -= two32.d;
|
332
|
+
}
|
333
|
+
|
334
|
+
return int32(du.d);
|
335
|
+
#else
|
336
|
+
int32 i;
|
337
|
+
jsdouble two32, two31;
|
338
|
+
|
339
|
+
if (!JSDOUBLE_IS_FINITE(d))
|
340
|
+
return 0;
|
341
|
+
|
342
|
+
i = (int32) d;
|
343
|
+
if ((jsdouble) i == d)
|
344
|
+
return i;
|
345
|
+
|
346
|
+
two32 = 4294967296.0;
|
347
|
+
two31 = 2147483648.0;
|
348
|
+
d = fmod(d, two32);
|
349
|
+
d = (d >= 0) ? floor(d) : ceil(d) + two32;
|
350
|
+
return (int32) (d >= two31 ? d - two32 : d);
|
351
|
+
#endif
|
352
|
+
}
|
221
353
|
|
222
354
|
extern uint32
|
223
355
|
js_DoubleToECMAUint32(jsdouble d);
|
@@ -245,8 +377,23 @@ js_ValueToUint16(JSContext *cx, jsval *vp);
|
|
245
377
|
* Convert a jsdouble to an integral number, stored in a jsdouble.
|
246
378
|
* If d is NaN, return 0. If d is an infinity, return it without conversion.
|
247
379
|
*/
|
248
|
-
|
249
|
-
js_DoubleToInteger(jsdouble d)
|
380
|
+
static inline jsdouble
|
381
|
+
js_DoubleToInteger(jsdouble d)
|
382
|
+
{
|
383
|
+
if (d == 0)
|
384
|
+
return d;
|
385
|
+
|
386
|
+
if (!JSDOUBLE_IS_FINITE(d)) {
|
387
|
+
if (JSDOUBLE_IS_NaN(d))
|
388
|
+
return 0;
|
389
|
+
return d;
|
390
|
+
}
|
391
|
+
|
392
|
+
JSBool neg = (d < 0);
|
393
|
+
d = floor(neg ? -d : d);
|
394
|
+
|
395
|
+
return neg ? -d : d;
|
396
|
+
}
|
250
397
|
|
251
398
|
/*
|
252
399
|
* Similar to strtod except that it replaces overflows with infinities of the
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/* -*- Mode: C
|
1
|
+
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
2
2
|
* vim: set ts=8 sw=4 et tw=79:
|
3
3
|
*
|
4
4
|
* ***** BEGIN LICENSE BLOCK *****
|
@@ -41,10 +41,10 @@
|
|
41
41
|
/*
|
42
42
|
* JS object implementation.
|
43
43
|
*/
|
44
|
-
#include "jsstddef.h"
|
45
44
|
#include <stdlib.h>
|
46
45
|
#include <string.h>
|
47
46
|
#include "jstypes.h"
|
47
|
+
#include "jsstdint.h"
|
48
48
|
#include "jsarena.h" /* Added by JSIFY */
|
49
49
|
#include "jsbit.h"
|
50
50
|
#include "jsutil.h" /* Added by JSIFY */
|
@@ -69,6 +69,7 @@
|
|
69
69
|
#include "jsparse.h"
|
70
70
|
#include "jsscope.h"
|
71
71
|
#include "jsscript.h"
|
72
|
+
#include "jsscriptinlines.h"
|
72
73
|
#include "jsstaticcheck.h"
|
73
74
|
#include "jsstr.h"
|
74
75
|
#include "jstracer.h"
|
@@ -90,6 +91,10 @@
|
|
90
91
|
#include "jsdtracef.h"
|
91
92
|
#endif
|
92
93
|
|
94
|
+
#include "jsatominlines.h"
|
95
|
+
#include "jsobjinlines.h"
|
96
|
+
#include "jsscriptinlines.h"
|
97
|
+
|
93
98
|
#include "jsautooplen.h"
|
94
99
|
|
95
100
|
#ifdef JS_THREADSAFE
|
@@ -111,15 +116,14 @@ JS_FRIEND_DATA(JSObjectOps) js_ObjectOps = {
|
|
111
116
|
NULL, NATIVE_DROP_PROPERTY,
|
112
117
|
js_Call, js_Construct,
|
113
118
|
js_HasInstance, js_TraceObject,
|
114
|
-
js_Clear
|
115
|
-
js_SetRequiredSlot
|
119
|
+
js_Clear
|
116
120
|
};
|
117
121
|
|
118
122
|
JSClass js_ObjectClass = {
|
119
123
|
js_Object_str,
|
120
124
|
JSCLASS_HAS_CACHED_PROTO(JSProto_Object),
|
121
125
|
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
|
122
|
-
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub,
|
126
|
+
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, NULL,
|
123
127
|
JSCLASS_NO_OPTIONAL_MEMBERS
|
124
128
|
};
|
125
129
|
|
@@ -179,8 +183,8 @@ obj_getSlot(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
|
179
183
|
mode = JSACC_PARENT;
|
180
184
|
}
|
181
185
|
|
182
|
-
/* Let
|
183
|
-
if (!
|
186
|
+
/* Let obj->checkAccess get the slot's value, based on the access mode. */
|
187
|
+
if (!obj->checkAccess(cx, propid, mode, vp, &attrs))
|
184
188
|
return JS_FALSE;
|
185
189
|
|
186
190
|
pobj = JSVAL_TO_OBJECT(*vp);
|
@@ -234,11 +238,8 @@ obj_setSlot(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
|
234
238
|
|
235
239
|
/* __parent__ is readonly and permanent, only __proto__ may be set. */
|
236
240
|
propid = ATOM_TO_JSID(cx->runtime->atomState.protoAtom);
|
237
|
-
if (!
|
238
|
-
(JSAccessMode)(JSACC_PROTO|JSACC_WRITE), vp,
|
239
|
-
&attrs)) {
|
241
|
+
if (!obj->checkAccess(cx, propid, (JSAccessMode)(JSACC_PROTO|JSACC_WRITE), vp, &attrs))
|
240
242
|
return JS_FALSE;
|
241
|
-
}
|
242
243
|
|
243
244
|
return js_SetProtoOrParent(cx, obj, slot, pobj, JS_TRUE);
|
244
245
|
}
|
@@ -253,9 +254,11 @@ obj_getCount(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
|
253
254
|
if (JS_HAS_STRICT_OPTION(cx) && !ReportStrictSlot(cx, JSSLOT_COUNT))
|
254
255
|
return JS_FALSE;
|
255
256
|
|
256
|
-
/* Get the number of properties to enumerate. */
|
257
257
|
iter_state = JSVAL_NULL;
|
258
|
-
|
258
|
+
JSAutoEnumStateRooter tvr(cx, obj, &iter_state);
|
259
|
+
|
260
|
+
/* Get the number of properties to enumerate. */
|
261
|
+
ok = obj->enumerate(cx, JSENUMERATE_INIT, &iter_state, &num_properties);
|
259
262
|
if (!ok)
|
260
263
|
goto out;
|
261
264
|
|
@@ -267,8 +270,8 @@ obj_getCount(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
|
267
270
|
*vp = num_properties;
|
268
271
|
|
269
272
|
out:
|
270
|
-
if (iter_state
|
271
|
-
ok
|
273
|
+
if (!JSVAL_IS_NULL(iter_state))
|
274
|
+
ok &= obj->enumerate(cx, JSENUMERATE_DESTROY, &iter_state, 0);
|
272
275
|
return ok;
|
273
276
|
}
|
274
277
|
|
@@ -297,14 +300,14 @@ js_SetProtoOrParent(JSContext *cx, JSObject *obj, uint32 slot, JSObject *pobj,
|
|
297
300
|
/*
|
298
301
|
* Regenerate property cache shape ids for all of the scopes along the
|
299
302
|
* old prototype chain to invalidate their property cache entries, in
|
300
|
-
* case any entries were filled by looking up
|
303
|
+
* case any entries were filled by looking up through obj.
|
301
304
|
*/
|
302
305
|
JSObject *oldproto = obj;
|
303
306
|
while (oldproto && OBJ_IS_NATIVE(oldproto)) {
|
304
307
|
JS_LOCK_OBJ(cx, oldproto);
|
305
308
|
JSScope *scope = OBJ_SCOPE(oldproto);
|
306
|
-
|
307
|
-
JSObject *tmp = STOBJ_GET_PROTO(
|
309
|
+
scope->protoShapeChange(cx);
|
310
|
+
JSObject *tmp = STOBJ_GET_PROTO(oldproto);
|
308
311
|
JS_UNLOCK_OBJ(cx, oldproto);
|
309
312
|
oldproto = tmp;
|
310
313
|
}
|
@@ -312,9 +315,9 @@ js_SetProtoOrParent(JSContext *cx, JSObject *obj, uint32 slot, JSObject *pobj,
|
|
312
315
|
|
313
316
|
if (!pobj || !checkForCycles) {
|
314
317
|
if (slot == JSSLOT_PROTO)
|
315
|
-
|
318
|
+
obj->setProto(pobj);
|
316
319
|
else
|
317
|
-
|
320
|
+
obj->setParent(pobj);
|
318
321
|
} else {
|
319
322
|
/*
|
320
323
|
* Use the GC machinery to serialize access to all objects on the
|
@@ -404,12 +407,12 @@ MarkSharpObjects(JSContext *cx, JSObject *obj, JSIdArray **idap)
|
|
404
407
|
for (i = 0, length = ida->length; i < length; i++) {
|
405
408
|
id = ida->vector[i];
|
406
409
|
#if JS_HAS_GETTER_SETTER
|
407
|
-
ok =
|
410
|
+
ok = obj->lookupProperty(cx, id, &obj2, &prop);
|
408
411
|
if (!ok)
|
409
412
|
break;
|
410
413
|
if (!prop)
|
411
414
|
continue;
|
412
|
-
ok =
|
415
|
+
ok = obj2->getAttributes(cx, id, prop, &attrs);
|
413
416
|
if (ok) {
|
414
417
|
if (OBJ_IS_NATIVE(obj2) &&
|
415
418
|
(attrs & (JSPROP_GETTER | JSPROP_SETTER))) {
|
@@ -427,12 +430,12 @@ MarkSharpObjects(JSContext *cx, JSObject *obj, JSIdArray **idap)
|
|
427
430
|
val = js_CastAsObjectJSVal(sprop->setter);
|
428
431
|
}
|
429
432
|
} else {
|
430
|
-
ok =
|
433
|
+
ok = obj->getProperty(cx, id, &val);
|
431
434
|
}
|
432
435
|
}
|
433
|
-
|
436
|
+
obj2->dropProperty(cx, prop);
|
434
437
|
#else
|
435
|
-
ok =
|
438
|
+
ok = obj->getProperty(cx, id, &val);
|
436
439
|
#endif
|
437
440
|
if (!ok)
|
438
441
|
break;
|
@@ -524,7 +527,7 @@ js_EnterSharpObject(JSContext *cx, JSObject *obj, JSIdArray **idap,
|
|
524
527
|
* It's possible that the value of a property has changed from the
|
525
528
|
* first time the object's properties are traversed (when the property
|
526
529
|
* ids are entered into the hash table) to the second (when they are
|
527
|
-
* converted to strings), i.e., the
|
530
|
+
* converted to strings), i.e., the JSObject::getProperty() call is not
|
528
531
|
* idempotent.
|
529
532
|
*/
|
530
533
|
if (!he) {
|
@@ -558,7 +561,7 @@ out:
|
|
558
561
|
ida = JS_Enumerate(cx, obj);
|
559
562
|
if (!ida) {
|
560
563
|
if (*sp) {
|
561
|
-
|
564
|
+
cx->free(*sp);
|
562
565
|
*sp = NULL;
|
563
566
|
}
|
564
567
|
goto bad;
|
@@ -702,7 +705,7 @@ obj_toSource(JSContext *cx, uintN argc, jsval *vp)
|
|
702
705
|
|
703
706
|
if (!chars) {
|
704
707
|
/* If outermost, allocate 4 + 1 for "({})" and the terminator. */
|
705
|
-
chars = (jschar *)
|
708
|
+
chars = (jschar *) js_malloc(((outermost ? 4 : 2) + 1) * sizeof(jschar));
|
706
709
|
nchars = 0;
|
707
710
|
if (!chars)
|
708
711
|
goto error;
|
@@ -713,9 +716,9 @@ obj_toSource(JSContext *cx, uintN argc, jsval *vp)
|
|
713
716
|
MAKE_SHARP(he);
|
714
717
|
nchars = js_strlen(chars);
|
715
718
|
chars = (jschar *)
|
716
|
-
|
719
|
+
js_realloc((ochars = chars), (nchars + 2 + 1) * sizeof(jschar));
|
717
720
|
if (!chars) {
|
718
|
-
|
721
|
+
js_free(ochars);
|
719
722
|
goto error;
|
720
723
|
}
|
721
724
|
if (outermost) {
|
@@ -746,7 +749,7 @@ obj_toSource(JSContext *cx, uintN argc, jsval *vp)
|
|
746
749
|
id = ida->vector[i];
|
747
750
|
|
748
751
|
#if JS_HAS_GETTER_SETTER
|
749
|
-
ok =
|
752
|
+
ok = obj->lookupProperty(cx, id, &obj2, &prop);
|
750
753
|
if (!ok)
|
751
754
|
goto error;
|
752
755
|
#endif
|
@@ -758,23 +761,22 @@ obj_toSource(JSContext *cx, uintN argc, jsval *vp)
|
|
758
761
|
idstr = js_ValueToString(cx, ID_TO_VALUE(id));
|
759
762
|
if (!idstr) {
|
760
763
|
ok = JS_FALSE;
|
761
|
-
|
764
|
+
obj2->dropProperty(cx, prop);
|
762
765
|
goto error;
|
763
766
|
}
|
764
767
|
*vp = STRING_TO_JSVAL(idstr); /* local root */
|
765
768
|
idIsLexicalIdentifier = js_IsIdentifier(idstr);
|
766
769
|
needOldStyleGetterSetter =
|
767
770
|
!idIsLexicalIdentifier ||
|
768
|
-
js_CheckKeyword(
|
769
|
-
JSSTRING_LENGTH(idstr)) != TOK_EOF;
|
771
|
+
js_CheckKeyword(idstr->chars(), idstr->length()) != TOK_EOF;
|
770
772
|
|
771
773
|
#if JS_HAS_GETTER_SETTER
|
772
774
|
|
773
775
|
valcnt = 0;
|
774
776
|
if (prop) {
|
775
|
-
ok =
|
777
|
+
ok = obj2->getAttributes(cx, id, prop, &attrs);
|
776
778
|
if (!ok) {
|
777
|
-
|
779
|
+
obj2->dropProperty(cx, prop);
|
778
780
|
goto error;
|
779
781
|
}
|
780
782
|
if (OBJ_IS_NATIVE(obj2) &&
|
@@ -802,9 +804,9 @@ obj_toSource(JSContext *cx, uintN argc, jsval *vp)
|
|
802
804
|
valcnt = 1;
|
803
805
|
gsop[0] = NULL;
|
804
806
|
gsopold[0] = NULL;
|
805
|
-
ok =
|
807
|
+
ok = obj->getProperty(cx, id, &val[0]);
|
806
808
|
}
|
807
|
-
|
809
|
+
obj2->dropProperty(cx, prop);
|
808
810
|
}
|
809
811
|
|
810
812
|
#else /* !JS_HAS_GETTER_SETTER */
|
@@ -818,7 +820,7 @@ obj_toSource(JSContext *cx, uintN argc, jsval *vp)
|
|
818
820
|
valcnt = 1;
|
819
821
|
gsop[0] = NULL;
|
820
822
|
gsopold[0] = NULL;
|
821
|
-
ok =
|
823
|
+
ok = obj->getProperty(cx, id, &val[0]);
|
822
824
|
|
823
825
|
#endif /* !JS_HAS_GETTER_SETTER */
|
824
826
|
|
@@ -839,7 +841,7 @@ obj_toSource(JSContext *cx, uintN argc, jsval *vp)
|
|
839
841
|
}
|
840
842
|
*vp = STRING_TO_JSVAL(idstr); /* local root */
|
841
843
|
}
|
842
|
-
|
844
|
+
idstr->getCharsAndLength(idstrchars, idstrlength);
|
843
845
|
|
844
846
|
for (j = 0; j < valcnt; j++) {
|
845
847
|
/* Convert val[j] to its canonical source form. */
|
@@ -849,7 +851,7 @@ obj_toSource(JSContext *cx, uintN argc, jsval *vp)
|
|
849
851
|
goto error;
|
850
852
|
}
|
851
853
|
localroot[j] = STRING_TO_JSVAL(valstr); /* local root */
|
852
|
-
|
854
|
+
valstr->getCharsAndLength(vchars, vlength);
|
853
855
|
|
854
856
|
if (vchars[0] == '#')
|
855
857
|
needOldStyleGetterSetter = JS_TRUE;
|
@@ -945,7 +947,7 @@ obj_toSource(JSContext *cx, uintN argc, jsval *vp)
|
|
945
947
|
SAFE_ADD(2);
|
946
948
|
SAFE_ADD(idstrlength + 1);
|
947
949
|
if (gsop[j])
|
948
|
-
SAFE_ADD(
|
950
|
+
SAFE_ADD(gsop[j]->length() + 1);
|
949
951
|
SAFE_ADD(vsharplength);
|
950
952
|
SAFE_ADD(vlength);
|
951
953
|
/* Account for the trailing null. */
|
@@ -957,11 +959,11 @@ obj_toSource(JSContext *cx, uintN argc, jsval *vp)
|
|
957
959
|
|
958
960
|
/* Allocate 1 + 1 at end for closing brace and terminating 0. */
|
959
961
|
chars = (jschar *)
|
960
|
-
|
962
|
+
js_realloc((ochars = chars), curlen * sizeof(jschar));
|
961
963
|
if (!chars) {
|
962
964
|
/* Save code space on error: let JS_free ignore null vsharp. */
|
963
|
-
|
964
|
-
|
965
|
+
cx->free(vsharp);
|
966
|
+
js_free(ochars);
|
965
967
|
goto error;
|
966
968
|
}
|
967
969
|
|
@@ -976,16 +978,16 @@ obj_toSource(JSContext *cx, uintN argc, jsval *vp)
|
|
976
978
|
nchars += idstrlength;
|
977
979
|
if (gsop[j]) {
|
978
980
|
chars[nchars++] = ' ';
|
979
|
-
gsoplength =
|
980
|
-
js_strncpy(&chars[nchars],
|
981
|
+
gsoplength = gsop[j]->length();
|
982
|
+
js_strncpy(&chars[nchars], gsop[j]->chars(),
|
981
983
|
gsoplength);
|
982
984
|
nchars += gsoplength;
|
983
985
|
}
|
984
986
|
chars[nchars++] = ':';
|
985
987
|
} else { /* New style "decompilation" */
|
986
988
|
if (gsop[j]) {
|
987
|
-
gsoplength =
|
988
|
-
js_strncpy(&chars[nchars],
|
989
|
+
gsoplength = gsop[j]->length();
|
990
|
+
js_strncpy(&chars[nchars], gsop[j]->chars(),
|
989
991
|
gsoplength);
|
990
992
|
nchars += gsoplength;
|
991
993
|
chars[nchars++] = ' ';
|
@@ -1004,7 +1006,7 @@ obj_toSource(JSContext *cx, uintN argc, jsval *vp)
|
|
1004
1006
|
nchars += vlength;
|
1005
1007
|
|
1006
1008
|
if (vsharp)
|
1007
|
-
|
1009
|
+
cx->free(vsharp);
|
1008
1010
|
}
|
1009
1011
|
}
|
1010
1012
|
|
@@ -1018,7 +1020,7 @@ obj_toSource(JSContext *cx, uintN argc, jsval *vp)
|
|
1018
1020
|
|
1019
1021
|
if (!ok) {
|
1020
1022
|
if (chars)
|
1021
|
-
|
1023
|
+
js_free(chars);
|
1022
1024
|
goto out;
|
1023
1025
|
}
|
1024
1026
|
|
@@ -1030,7 +1032,7 @@ obj_toSource(JSContext *cx, uintN argc, jsval *vp)
|
|
1030
1032
|
make_string:
|
1031
1033
|
str = js_NewString(cx, chars, nchars);
|
1032
1034
|
if (!str) {
|
1033
|
-
|
1035
|
+
js_free(chars);
|
1034
1036
|
ok = JS_FALSE;
|
1035
1037
|
goto out;
|
1036
1038
|
}
|
@@ -1041,8 +1043,8 @@ obj_toSource(JSContext *cx, uintN argc, jsval *vp)
|
|
1041
1043
|
return ok;
|
1042
1044
|
|
1043
1045
|
overflow:
|
1044
|
-
|
1045
|
-
|
1046
|
+
cx->free(vsharp);
|
1047
|
+
js_free(chars);
|
1046
1048
|
chars = NULL;
|
1047
1049
|
goto error;
|
1048
1050
|
}
|
@@ -1063,7 +1065,7 @@ obj_toString(JSContext *cx, uintN argc, jsval *vp)
|
|
1063
1065
|
obj = js_GetWrappedObject(cx, obj);
|
1064
1066
|
clazz = OBJ_GET_CLASS(cx, obj)->name;
|
1065
1067
|
nchars = 9 + strlen(clazz); /* 9 for "[object ]" */
|
1066
|
-
chars = (jschar *)
|
1068
|
+
chars = (jschar *) cx->malloc((nchars + 1) * sizeof(jschar));
|
1067
1069
|
if (!chars)
|
1068
1070
|
return JS_FALSE;
|
1069
1071
|
|
@@ -1078,7 +1080,7 @@ obj_toString(JSContext *cx, uintN argc, jsval *vp)
|
|
1078
1080
|
|
1079
1081
|
str = js_NewString(cx, chars, nchars);
|
1080
1082
|
if (!str) {
|
1081
|
-
|
1083
|
+
cx->free(chars);
|
1082
1084
|
return JS_FALSE;
|
1083
1085
|
}
|
1084
1086
|
*vp = STRING_TO_JSVAL(str);
|
@@ -1203,10 +1205,9 @@ js_ComputeFilename(JSContext *cx, JSStackFrame *caller,
|
|
1203
1205
|
return principals->codebase;
|
1204
1206
|
}
|
1205
1207
|
|
1206
|
-
|
1207
|
-
|
1208
|
-
|
1209
|
-
*linenop = GET_UINT16(pc + JSOP_EVAL_LENGTH);
|
1208
|
+
if (caller->regs && js_GetOpcode(cx, caller->script, caller->regs->pc) == JSOP_EVAL) {
|
1209
|
+
JS_ASSERT(js_GetOpcode(cx, caller->script, caller->regs->pc + JSOP_EVAL_LENGTH) == JSOP_LINENO);
|
1210
|
+
*linenop = GET_UINT16(caller->regs->pc + JSOP_EVAL_LENGTH);
|
1210
1211
|
} else {
|
1211
1212
|
*linenop = js_FramePCToLineNumber(cx, caller);
|
1212
1213
|
}
|
@@ -1224,7 +1225,7 @@ EvalCacheHash(JSContext *cx, JSString *str)
|
|
1224
1225
|
size_t n;
|
1225
1226
|
uint32 h;
|
1226
1227
|
|
1227
|
-
|
1228
|
+
str->getCharsAndLength(s, n);
|
1228
1229
|
if (n > 100)
|
1229
1230
|
n = 100;
|
1230
1231
|
for (h = 0; n; s++, n--)
|
@@ -1257,6 +1258,7 @@ obj_eval(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
|
1257
1258
|
fp = js_GetTopStackFrame(cx);
|
1258
1259
|
caller = js_GetScriptedCaller(cx, fp);
|
1259
1260
|
indirectCall = (caller && caller->regs && *caller->regs->pc != JSOP_EVAL);
|
1261
|
+
uintN staticLevel = caller->script->staticLevel + 1;
|
1260
1262
|
|
1261
1263
|
/*
|
1262
1264
|
* This call to js_GetWrappedObject is safe because of the security checks
|
@@ -1398,7 +1400,7 @@ obj_eval(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
|
1398
1400
|
|
1399
1401
|
tcflags = TCF_COMPILE_N_GO;
|
1400
1402
|
if (caller) {
|
1401
|
-
tcflags |= TCF_PUT_STATIC_LEVEL(
|
1403
|
+
tcflags |= TCF_PUT_STATIC_LEVEL(staticLevel);
|
1402
1404
|
principals = JS_EvalFramePrincipals(cx, fp, caller);
|
1403
1405
|
file = js_ComputeFilename(cx, caller, principals, &line);
|
1404
1406
|
} else {
|
@@ -1412,13 +1414,14 @@ obj_eval(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
|
1412
1414
|
|
1413
1415
|
/* Cache local eval scripts indexed by source qualified by scope. */
|
1414
1416
|
bucket = EvalCacheHash(cx, str);
|
1415
|
-
if (caller->fun) {
|
1417
|
+
if (!indirectCall && argc == 1 && caller->fun) {
|
1416
1418
|
uintN count = 0;
|
1417
1419
|
JSScript **scriptp = bucket;
|
1418
1420
|
|
1419
1421
|
EVAL_CACHE_METER(probe);
|
1420
1422
|
while ((script = *scriptp) != NULL) {
|
1421
1423
|
if ((script->flags & JSSF_SAVED_CALLER_FUN) &&
|
1424
|
+
script->staticLevel == staticLevel &&
|
1422
1425
|
script->version == cx->version &&
|
1423
1426
|
(script->principals == principals ||
|
1424
1427
|
(principals->subsume(principals, script->principals) &&
|
@@ -1428,7 +1431,7 @@ obj_eval(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
|
1428
1431
|
* See JSCompiler::compileScript in jsparse.cpp.
|
1429
1432
|
*/
|
1430
1433
|
JSFunction *fun;
|
1431
|
-
|
1434
|
+
fun = script->getFunction(0);
|
1432
1435
|
|
1433
1436
|
if (fun == caller->fun) {
|
1434
1437
|
/*
|
@@ -1445,11 +1448,11 @@ obj_eval(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
|
1445
1448
|
* script has no compiled-in dependencies on the prior
|
1446
1449
|
* eval's scopeobj.
|
1447
1450
|
*/
|
1448
|
-
JSObjectArray *objarray =
|
1451
|
+
JSObjectArray *objarray = script->objects();
|
1449
1452
|
int i = 1;
|
1450
1453
|
if (objarray->length == 1) {
|
1451
1454
|
if (script->regexpsOffset != 0) {
|
1452
|
-
objarray =
|
1455
|
+
objarray = script->regexps();
|
1453
1456
|
i = 0;
|
1454
1457
|
} else {
|
1455
1458
|
EVAL_CACHE_METER(noscope);
|
@@ -1458,6 +1461,7 @@ obj_eval(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
|
1458
1461
|
}
|
1459
1462
|
if (i < 0 ||
|
1460
1463
|
STOBJ_GET_PARENT(objarray->vector[i]) == scopeobj) {
|
1464
|
+
JS_ASSERT(staticLevel == script->staticLevel);
|
1461
1465
|
EVAL_CACHE_METER(hit);
|
1462
1466
|
*scriptp = script->u.nextToGC;
|
1463
1467
|
script->u.nextToGC = NULL;
|
@@ -1478,7 +1482,7 @@ obj_eval(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
|
1478
1482
|
|
1479
1483
|
if (!script) {
|
1480
1484
|
script = JSCompiler::compileScript(cx, scopeobj, caller, principals, tcflags,
|
1481
|
-
|
1485
|
+
str->chars(), str->length(),
|
1482
1486
|
NULL, file, line, str);
|
1483
1487
|
if (!script) {
|
1484
1488
|
ok = JS_FALSE;
|
@@ -1513,7 +1517,7 @@ out:
|
|
1513
1517
|
if (setCallerScopeChain) {
|
1514
1518
|
caller->scopeChain = callerScopeChain;
|
1515
1519
|
JS_ASSERT(OBJ_GET_CLASS(cx, setCallerScopeChain) == &js_WithClass);
|
1516
|
-
|
1520
|
+
setCallerScopeChain->setPrivate(NULL);
|
1517
1521
|
}
|
1518
1522
|
if (setCallerVarObj)
|
1519
1523
|
caller->varobj = callerVarObj;
|
@@ -1599,7 +1603,7 @@ obj_watch(JSContext *cx, uintN argc, jsval *vp)
|
|
1599
1603
|
return JS_FALSE;
|
1600
1604
|
|
1601
1605
|
obj = JS_THIS_OBJECT(cx, vp);
|
1602
|
-
if (!obj || !
|
1606
|
+
if (!obj || !obj->checkAccess(cx, propid, JSACC_WATCH, &value, &attrs))
|
1603
1607
|
return JS_FALSE;
|
1604
1608
|
if (attrs & JSPROP_READONLY)
|
1605
1609
|
return JS_TRUE;
|
@@ -1707,7 +1711,7 @@ js_HasOwnProperty(JSContext *cx, JSLookupPropOp lookup, JSObject *obj, jsid id,
|
|
1707
1711
|
}
|
1708
1712
|
}
|
1709
1713
|
if (prop)
|
1710
|
-
|
1714
|
+
obj2->dropProperty(cx, prop);
|
1711
1715
|
return JS_TRUE;
|
1712
1716
|
}
|
1713
1717
|
|
@@ -1782,7 +1786,7 @@ js_PropertyIsEnumerable(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
|
|
1782
1786
|
JSProperty *prop;
|
1783
1787
|
JSBool ok;
|
1784
1788
|
|
1785
|
-
if (!
|
1789
|
+
if (!obj->lookupProperty(cx, id, &pobj, &prop))
|
1786
1790
|
return JS_FALSE;
|
1787
1791
|
|
1788
1792
|
if (!prop) {
|
@@ -1804,13 +1808,13 @@ js_PropertyIsEnumerable(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
|
|
1804
1808
|
if (pobj != obj &&
|
1805
1809
|
!(OBJ_IS_NATIVE(pobj) &&
|
1806
1810
|
SPROP_IS_SHARED_PERMANENT((JSScopeProperty *)prop))) {
|
1807
|
-
|
1811
|
+
pobj->dropProperty(cx, prop);
|
1808
1812
|
*vp = JSVAL_FALSE;
|
1809
1813
|
return JS_TRUE;
|
1810
1814
|
}
|
1811
1815
|
|
1812
|
-
ok =
|
1813
|
-
|
1816
|
+
ok = pobj->getAttributes(cx, id, prop, &attrs);
|
1817
|
+
pobj->dropProperty(cx, prop);
|
1814
1818
|
if (ok)
|
1815
1819
|
*vp = BOOLEAN_TO_JSVAL((attrs & JSPROP_ENUMERATE) != 0);
|
1816
1820
|
return ok;
|
@@ -1842,14 +1846,12 @@ js_obj_defineGetter(JSContext *cx, uintN argc, jsval *vp)
|
|
1842
1846
|
* Getters and setters are just like watchpoints from an access
|
1843
1847
|
* control point of view.
|
1844
1848
|
*/
|
1845
|
-
if (!
|
1849
|
+
if (!obj->checkAccess(cx, id, JSACC_WATCH, &junk, &attrs))
|
1846
1850
|
return JS_FALSE;
|
1847
1851
|
*vp = JSVAL_VOID;
|
1848
|
-
return
|
1849
|
-
js_CastAsPropertyOp(JSVAL_TO_OBJECT(fval)),
|
1850
|
-
|
1851
|
-
JSPROP_ENUMERATE | JSPROP_GETTER | JSPROP_SHARED,
|
1852
|
-
NULL);
|
1852
|
+
return obj->defineProperty(cx, id, JSVAL_VOID,
|
1853
|
+
js_CastAsPropertyOp(JSVAL_TO_OBJECT(fval)), JS_PropertyStub,
|
1854
|
+
JSPROP_ENUMERATE | JSPROP_GETTER | JSPROP_SHARED);
|
1853
1855
|
}
|
1854
1856
|
|
1855
1857
|
JS_FRIEND_API(JSBool)
|
@@ -1877,14 +1879,12 @@ js_obj_defineSetter(JSContext *cx, uintN argc, jsval *vp)
|
|
1877
1879
|
* Getters and setters are just like watchpoints from an access
|
1878
1880
|
* control point of view.
|
1879
1881
|
*/
|
1880
|
-
if (!
|
1882
|
+
if (!obj->checkAccess(cx, id, JSACC_WATCH, &junk, &attrs))
|
1881
1883
|
return JS_FALSE;
|
1882
1884
|
*vp = JSVAL_VOID;
|
1883
|
-
return
|
1884
|
-
JS_PropertyStub,
|
1885
|
-
|
1886
|
-
JSPROP_ENUMERATE | JSPROP_SETTER | JSPROP_SHARED,
|
1887
|
-
NULL);
|
1885
|
+
return obj->defineProperty(cx, id, JSVAL_VOID,
|
1886
|
+
JS_PropertyStub, js_CastAsPropertyOp(JSVAL_TO_OBJECT(fval)),
|
1887
|
+
JSPROP_ENUMERATE | JSPROP_SETTER | JSPROP_SHARED);
|
1888
1888
|
}
|
1889
1889
|
|
1890
1890
|
static JSBool
|
@@ -1898,7 +1898,7 @@ obj_lookupGetter(JSContext *cx, uintN argc, jsval *vp)
|
|
1898
1898
|
if (!JS_ValueToId(cx, argc != 0 ? vp[2] : JSVAL_VOID, &id))
|
1899
1899
|
return JS_FALSE;
|
1900
1900
|
obj = JS_THIS_OBJECT(cx, vp);
|
1901
|
-
if (!obj || !
|
1901
|
+
if (!obj || !obj->lookupProperty(cx, id, &pobj, &prop))
|
1902
1902
|
return JS_FALSE;
|
1903
1903
|
*vp = JSVAL_VOID;
|
1904
1904
|
if (prop) {
|
@@ -1907,7 +1907,7 @@ obj_lookupGetter(JSContext *cx, uintN argc, jsval *vp)
|
|
1907
1907
|
if (sprop->attrs & JSPROP_GETTER)
|
1908
1908
|
*vp = js_CastAsObjectJSVal(sprop->getter);
|
1909
1909
|
}
|
1910
|
-
|
1910
|
+
pobj->dropProperty(cx, prop);
|
1911
1911
|
}
|
1912
1912
|
return JS_TRUE;
|
1913
1913
|
}
|
@@ -1923,7 +1923,7 @@ obj_lookupSetter(JSContext *cx, uintN argc, jsval *vp)
|
|
1923
1923
|
if (!JS_ValueToId(cx, argc != 0 ? vp[2] : JSVAL_VOID, &id))
|
1924
1924
|
return JS_FALSE;
|
1925
1925
|
obj = JS_THIS_OBJECT(cx, vp);
|
1926
|
-
if (!obj || !
|
1926
|
+
if (!obj || !obj->lookupProperty(cx, id, &pobj, &prop))
|
1927
1927
|
return JS_FALSE;
|
1928
1928
|
*vp = JSVAL_VOID;
|
1929
1929
|
if (prop) {
|
@@ -1932,7 +1932,7 @@ obj_lookupSetter(JSContext *cx, uintN argc, jsval *vp)
|
|
1932
1932
|
if (sprop->attrs & JSPROP_SETTER)
|
1933
1933
|
*vp = js_CastAsObjectJSVal(sprop->setter);
|
1934
1934
|
}
|
1935
|
-
|
1935
|
+
pobj->dropProperty(cx, prop);
|
1936
1936
|
}
|
1937
1937
|
return JS_TRUE;
|
1938
1938
|
}
|
@@ -1954,8 +1954,7 @@ obj_getPrototypeOf(JSContext *cx, uintN argc, jsval *vp)
|
|
1954
1954
|
return JS_FALSE;
|
1955
1955
|
vp[2] = OBJECT_TO_JSVAL(obj);
|
1956
1956
|
|
1957
|
-
return
|
1958
|
-
ATOM_TO_JSID(cx->runtime->atomState.protoAtom),
|
1957
|
+
return obj->checkAccess(cx, ATOM_TO_JSID(cx->runtime->atomState.protoAtom),
|
1959
1958
|
JSACC_PROTO, vp, &attrs);
|
1960
1959
|
}
|
1961
1960
|
|
@@ -1986,17 +1985,14 @@ static JSFunctionSpec object_methods[] = {
|
|
1986
1985
|
#endif
|
1987
1986
|
JS_FN(js_toString_str, obj_toString, 0,0),
|
1988
1987
|
JS_FN(js_toLocaleString_str, obj_toLocaleString, 0,0),
|
1989
|
-
JS_TN(js_valueOf_str, obj_valueOf, 0,0,
|
1990
|
-
obj_valueOf_trcinfo),
|
1988
|
+
JS_TN(js_valueOf_str, obj_valueOf, 0,0, &obj_valueOf_trcinfo),
|
1991
1989
|
#if JS_HAS_OBJ_WATCHPOINT
|
1992
1990
|
JS_FN(js_watch_str, obj_watch, 2,0),
|
1993
1991
|
JS_FN(js_unwatch_str, obj_unwatch, 1,0),
|
1994
1992
|
#endif
|
1995
|
-
JS_TN(js_hasOwnProperty_str, obj_hasOwnProperty, 1,0,
|
1996
|
-
obj_hasOwnProperty_trcinfo),
|
1993
|
+
JS_TN(js_hasOwnProperty_str, obj_hasOwnProperty, 1,0, &obj_hasOwnProperty_trcinfo),
|
1997
1994
|
JS_FN(js_isPrototypeOf_str, obj_isPrototypeOf, 1,0),
|
1998
|
-
JS_TN(js_propertyIsEnumerable_str, obj_propertyIsEnumerable, 1,0,
|
1999
|
-
obj_propertyIsEnumerable_trcinfo),
|
1995
|
+
JS_TN(js_propertyIsEnumerable_str, obj_propertyIsEnumerable, 1,0, &obj_propertyIsEnumerable_trcinfo),
|
2000
1996
|
#if JS_HAS_GETTER_SETTER
|
2001
1997
|
JS_FN(js_defineGetter_str, js_obj_defineGetter, 2,0),
|
2002
1998
|
JS_FN(js_defineSetter_str, js_obj_defineSetter, 2,0),
|
@@ -2011,6 +2007,149 @@ static JSFunctionSpec object_static_methods[] = {
|
|
2011
2007
|
JS_FS_END
|
2012
2008
|
};
|
2013
2009
|
|
2010
|
+
static bool
|
2011
|
+
AllocSlots(JSContext *cx, JSObject *obj, size_t nslots);
|
2012
|
+
|
2013
|
+
static inline bool
|
2014
|
+
InitScopeForObject(JSContext* cx, JSObject* obj, JSObject* proto, JSObjectOps* ops)
|
2015
|
+
{
|
2016
|
+
JS_ASSERT(OPS_IS_NATIVE(ops));
|
2017
|
+
JS_ASSERT(proto == OBJ_GET_PROTO(cx, obj));
|
2018
|
+
|
2019
|
+
/* Share proto's emptyScope only if obj is similar to proto. */
|
2020
|
+
JSClass *clasp = OBJ_GET_CLASS(cx, obj);
|
2021
|
+
JSScope *scope;
|
2022
|
+
if (proto && OBJ_IS_NATIVE(proto) &&
|
2023
|
+
(scope = OBJ_SCOPE(proto))->canProvideEmptyScope(ops, clasp)) {
|
2024
|
+
scope = scope->getEmptyScope(cx, clasp);
|
2025
|
+
if (!scope)
|
2026
|
+
goto bad;
|
2027
|
+
} else {
|
2028
|
+
scope = JSScope::create(cx, ops, clasp, obj, js_GenerateShape(cx, false));
|
2029
|
+
if (!scope)
|
2030
|
+
goto bad;
|
2031
|
+
|
2032
|
+
/* Let JSScope::create set freeslot so as to reserve slots. */
|
2033
|
+
JS_ASSERT(scope->freeslot >= JSSLOT_PRIVATE);
|
2034
|
+
if (scope->freeslot > JS_INITIAL_NSLOTS &&
|
2035
|
+
!AllocSlots(cx, obj, scope->freeslot)) {
|
2036
|
+
JSScope::destroy(cx, scope);
|
2037
|
+
goto bad;
|
2038
|
+
}
|
2039
|
+
}
|
2040
|
+
obj->map = scope;
|
2041
|
+
return true;
|
2042
|
+
|
2043
|
+
bad:
|
2044
|
+
/* The GC nulls map initially. It should still be null on error. */
|
2045
|
+
JS_ASSERT(!obj->map);
|
2046
|
+
return false;
|
2047
|
+
}
|
2048
|
+
|
2049
|
+
JSObject *
|
2050
|
+
js_NewObjectWithGivenProto(JSContext *cx, JSClass *clasp, JSObject *proto,
|
2051
|
+
JSObject *parent, size_t objectSize)
|
2052
|
+
{
|
2053
|
+
#ifdef INCLUDE_MOZILLA_DTRACE
|
2054
|
+
if (JAVASCRIPT_OBJECT_CREATE_START_ENABLED())
|
2055
|
+
jsdtrace_object_create_start(cx->fp, clasp);
|
2056
|
+
#endif
|
2057
|
+
|
2058
|
+
/* Assert that the class is a proper class. */
|
2059
|
+
JS_ASSERT_IF(clasp->flags & JSCLASS_IS_EXTENDED,
|
2060
|
+
((JSExtendedClass *)clasp)->equality);
|
2061
|
+
|
2062
|
+
/* Always call the class's getObjectOps hook if it has one. */
|
2063
|
+
JSObjectOps *ops = clasp->getObjectOps
|
2064
|
+
? clasp->getObjectOps(cx, clasp)
|
2065
|
+
: &js_ObjectOps;
|
2066
|
+
|
2067
|
+
/*
|
2068
|
+
* Allocate an object from the GC heap and initialize all its fields before
|
2069
|
+
* doing any operation that can potentially trigger GC. Functions have a
|
2070
|
+
* larger non-standard allocation size.
|
2071
|
+
*/
|
2072
|
+
JSObject* obj;
|
2073
|
+
if (clasp == &js_FunctionClass && !objectSize) {
|
2074
|
+
obj = (JSObject*) js_NewGCFunction(cx, GCX_OBJECT);
|
2075
|
+
#ifdef DEBUG
|
2076
|
+
memset((uint8 *) obj + sizeof(JSObject), JS_FREE_PATTERN,
|
2077
|
+
sizeof(JSFunction) - sizeof(JSObject));
|
2078
|
+
#endif
|
2079
|
+
} else {
|
2080
|
+
JS_ASSERT(!objectSize || objectSize == sizeof(JSObject));
|
2081
|
+
obj = js_NewGCObject(cx, GCX_OBJECT);
|
2082
|
+
}
|
2083
|
+
if (!obj)
|
2084
|
+
goto out;
|
2085
|
+
|
2086
|
+
/*
|
2087
|
+
* Default parent to the parent of the prototype, which was set from
|
2088
|
+
* the parent of the prototype's constructor.
|
2089
|
+
*/
|
2090
|
+
obj->init(clasp,
|
2091
|
+
proto,
|
2092
|
+
(!parent && proto) ? proto->getParent() : parent,
|
2093
|
+
JSObject::defaultPrivate(clasp));
|
2094
|
+
|
2095
|
+
if (OPS_IS_NATIVE(ops)) {
|
2096
|
+
if (!InitScopeForObject(cx, obj, proto, ops)) {
|
2097
|
+
obj = NULL;
|
2098
|
+
goto out;
|
2099
|
+
}
|
2100
|
+
} else {
|
2101
|
+
JS_ASSERT(ops->objectMap->ops == ops);
|
2102
|
+
obj->map = const_cast<JSObjectMap *>(ops->objectMap);
|
2103
|
+
}
|
2104
|
+
|
2105
|
+
/* Check that the newborn root still holds the object. */
|
2106
|
+
JS_ASSERT_IF(!cx->localRootStack, cx->weakRoots.newborn[GCX_OBJECT] == obj);
|
2107
|
+
|
2108
|
+
/*
|
2109
|
+
* Do not call debug hooks on trace, because we might be in a non-_FAIL
|
2110
|
+
* builtin. See bug 481444.
|
2111
|
+
*/
|
2112
|
+
if (cx->debugHooks->objectHook && !JS_ON_TRACE(cx)) {
|
2113
|
+
JSAutoTempValueRooter tvr(cx, obj);
|
2114
|
+
JS_KEEP_ATOMS(cx->runtime);
|
2115
|
+
cx->debugHooks->objectHook(cx, obj, JS_TRUE,
|
2116
|
+
cx->debugHooks->objectHookData);
|
2117
|
+
JS_UNKEEP_ATOMS(cx->runtime);
|
2118
|
+
cx->weakRoots.newborn[GCX_OBJECT] = obj;
|
2119
|
+
}
|
2120
|
+
|
2121
|
+
out:
|
2122
|
+
#ifdef INCLUDE_MOZILLA_DTRACE
|
2123
|
+
if (JAVASCRIPT_OBJECT_CREATE_ENABLED())
|
2124
|
+
jsdtrace_object_create(cx, clasp, obj);
|
2125
|
+
if (JAVASCRIPT_OBJECT_CREATE_DONE_ENABLED())
|
2126
|
+
jsdtrace_object_create_done(cx->fp, clasp);
|
2127
|
+
#endif
|
2128
|
+
return obj;
|
2129
|
+
}
|
2130
|
+
|
2131
|
+
JSObject *
|
2132
|
+
js_NewObject(JSContext *cx, JSClass *clasp, JSObject *proto,
|
2133
|
+
JSObject *parent, size_t objectSize)
|
2134
|
+
{
|
2135
|
+
jsid id;
|
2136
|
+
|
2137
|
+
/* Bootstrap the ur-object, and make it the default prototype object. */
|
2138
|
+
if (!proto) {
|
2139
|
+
if (!js_GetClassId(cx, clasp, &id))
|
2140
|
+
return NULL;
|
2141
|
+
if (!js_GetClassPrototype(cx, parent, id, &proto))
|
2142
|
+
return NULL;
|
2143
|
+
if (!proto &&
|
2144
|
+
!js_GetClassPrototype(cx, parent, INT_TO_JSID(JSProto_Object),
|
2145
|
+
&proto)) {
|
2146
|
+
return NULL;
|
2147
|
+
}
|
2148
|
+
}
|
2149
|
+
|
2150
|
+
return js_NewObjectWithGivenProto(cx, clasp, proto, parent, objectSize);
|
2151
|
+
}
|
2152
|
+
|
2014
2153
|
JSBool
|
2015
2154
|
js_Object(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
2016
2155
|
{
|
@@ -2026,7 +2165,7 @@ js_Object(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
|
2026
2165
|
JS_ASSERT(!argc || JSVAL_IS_NULL(argv[0]) || JSVAL_IS_VOID(argv[0]));
|
2027
2166
|
if (JS_IsConstructing(cx))
|
2028
2167
|
return JS_TRUE;
|
2029
|
-
obj = js_NewObject(cx, &js_ObjectClass, NULL, NULL
|
2168
|
+
obj = js_NewObject(cx, &js_ObjectClass, NULL, NULL);
|
2030
2169
|
if (!obj)
|
2031
2170
|
return JS_FALSE;
|
2032
2171
|
}
|
@@ -2034,86 +2173,46 @@ js_Object(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
|
2034
2173
|
return JS_TRUE;
|
2035
2174
|
}
|
2036
2175
|
|
2037
|
-
static inline bool
|
2038
|
-
InitScopeForObject(JSContext* cx, JSObject* obj, JSObject* proto,
|
2039
|
-
JSObjectOps* ops)
|
2040
|
-
{
|
2041
|
-
JS_ASSERT(OPS_IS_NATIVE(ops));
|
2042
|
-
JS_ASSERT(proto == OBJ_GET_PROTO(cx, obj));
|
2043
|
-
|
2044
|
-
JSClass* protoclasp;
|
2045
|
-
JSClass* clasp = OBJ_GET_CLASS(cx, obj);
|
2046
|
-
|
2047
|
-
/*
|
2048
|
-
* Share proto's map only if it has the same JSObjectOps, and only if
|
2049
|
-
* proto's class has the same private and reserved slots as obj's map
|
2050
|
-
* and class have. We assume that if prototype and object are of the
|
2051
|
-
* same class, they always have the same number of computed reserved
|
2052
|
-
* slots (returned via clasp->reserveSlots); otherwise, prototype and
|
2053
|
-
* object classes must have the same (null or not) reserveSlots hook.
|
2054
|
-
*/
|
2055
|
-
if (proto &&
|
2056
|
-
proto->map->ops == ops &&
|
2057
|
-
((protoclasp = OBJ_GET_CLASS(cx, proto)) == clasp ||
|
2058
|
-
(!((protoclasp->flags ^ clasp->flags) &
|
2059
|
-
(JSCLASS_HAS_PRIVATE |
|
2060
|
-
(JSCLASS_RESERVED_SLOTS_MASK << JSCLASS_RESERVED_SLOTS_SHIFT))) &&
|
2061
|
-
protoclasp->reserveSlots == clasp->reserveSlots)))
|
2062
|
-
{
|
2063
|
-
js_HoldScope(OBJ_SCOPE(proto));
|
2064
|
-
obj->map = proto->map;
|
2065
|
-
return true;
|
2066
|
-
}
|
2067
|
-
|
2068
|
-
JSScope *scope = js_NewScope(cx, ops, clasp, obj);
|
2069
|
-
if (!scope)
|
2070
|
-
goto bad;
|
2071
|
-
|
2072
|
-
/* Let js_NewScope set freeslot so as to reserve slots. */
|
2073
|
-
JS_ASSERT(scope->freeslot >= JSSLOT_PRIVATE);
|
2074
|
-
if (scope->freeslot > JS_INITIAL_NSLOTS &&
|
2075
|
-
!js_ReallocSlots(cx, obj, scope->freeslot, JS_TRUE)) {
|
2076
|
-
js_DestroyScope(cx, scope);
|
2077
|
-
goto bad;
|
2078
|
-
}
|
2079
|
-
obj->map = &scope->map;
|
2080
|
-
return true;
|
2081
|
-
|
2082
|
-
bad:
|
2083
|
-
/* Ensure that the map field is initialized for GC. */
|
2084
|
-
obj->map = NULL;
|
2085
|
-
return false;
|
2086
|
-
}
|
2087
|
-
|
2088
2176
|
#ifdef JS_TRACER
|
2089
2177
|
|
2090
|
-
|
2091
|
-
|
2178
|
+
JSObject*
|
2179
|
+
js_NewObjectWithClassProto(JSContext *cx, JSClass *clasp, JSObject *proto,
|
2180
|
+
jsval privateSlotValue)
|
2092
2181
|
{
|
2093
|
-
JS_ASSERT(
|
2094
|
-
|
2182
|
+
JS_ASSERT(!clasp->getObjectOps);
|
2183
|
+
JS_ASSERT(proto->map->ops == &js_ObjectOps);
|
2184
|
+
|
2185
|
+
JSObject* obj = js_NewGCObject(cx, GCX_OBJECT);
|
2095
2186
|
if (!obj)
|
2096
2187
|
return NULL;
|
2097
2188
|
|
2098
|
-
obj->
|
2099
|
-
obj
|
2100
|
-
obj->fslots[JSSLOT_PARENT] = OBJECT_TO_JSVAL(parent);
|
2101
|
-
for (unsigned i = JSSLOT_PRIVATE; i < JS_INITIAL_NSLOTS; ++i)
|
2102
|
-
obj->fslots[i] = JSVAL_VOID;
|
2103
|
-
|
2104
|
-
obj->dslots = NULL;
|
2105
|
-
return InitScopeForObject(cx, obj, proto, &js_ObjectOps) ? obj : NULL;
|
2189
|
+
obj->initSharingEmptyScope(clasp, proto, proto->getParent(), privateSlotValue);
|
2190
|
+
return obj;
|
2106
2191
|
}
|
2107
2192
|
|
2108
2193
|
JSObject* FASTCALL
|
2109
2194
|
js_Object_tn(JSContext* cx, JSObject* proto)
|
2110
2195
|
{
|
2111
|
-
|
2196
|
+
JS_ASSERT(!(js_ObjectClass.flags & JSCLASS_HAS_PRIVATE));
|
2197
|
+
return js_NewObjectWithClassProto(cx, &js_ObjectClass, proto, JSVAL_VOID);
|
2112
2198
|
}
|
2113
2199
|
|
2114
2200
|
JS_DEFINE_TRCINFO_1(js_Object,
|
2115
2201
|
(2, (extern, CONSTRUCTOR_RETRY, js_Object_tn, CONTEXT, CALLEE_PROTOTYPE, 0, 0)))
|
2116
2202
|
|
2203
|
+
static inline JSObject*
|
2204
|
+
NewNativeObject(JSContext* cx, JSClass* clasp, JSObject* proto,
|
2205
|
+
JSObject *parent, jsval privateSlotValue)
|
2206
|
+
{
|
2207
|
+
JS_ASSERT(JS_ON_TRACE(cx));
|
2208
|
+
JSObject* obj = js_NewGCObject(cx, GCX_OBJECT);
|
2209
|
+
if (!obj)
|
2210
|
+
return NULL;
|
2211
|
+
|
2212
|
+
obj->init(clasp, proto, parent, privateSlotValue);
|
2213
|
+
return InitScopeForObject(cx, obj, proto, &js_ObjectOps) ? obj : NULL;
|
2214
|
+
}
|
2215
|
+
|
2117
2216
|
JSObject* FASTCALL
|
2118
2217
|
js_NewInstance(JSContext *cx, JSClass *clasp, JSObject *ctor)
|
2119
2218
|
{
|
@@ -2126,13 +2225,13 @@ js_NewInstance(JSContext *cx, JSClass *clasp, JSObject *ctor)
|
|
2126
2225
|
if (scope->title.ownercx != cx)
|
2127
2226
|
return NULL;
|
2128
2227
|
#endif
|
2129
|
-
if (scope->
|
2228
|
+
if (!scope->owned()) {
|
2130
2229
|
scope = js_GetMutableScope(cx, ctor);
|
2131
2230
|
if (!scope)
|
2132
2231
|
return NULL;
|
2133
2232
|
}
|
2134
2233
|
|
2135
|
-
JSScopeProperty *sprop =
|
2234
|
+
JSScopeProperty *sprop = scope->lookup(ATOM_TO_JSID(atom));
|
2136
2235
|
jsval pval = sprop ? STOBJ_GET_SLOT(ctor, sprop->slot) : JSVAL_HOLE;
|
2137
2236
|
|
2138
2237
|
JSObject *proto;
|
@@ -2141,7 +2240,7 @@ js_NewInstance(JSContext *cx, JSClass *clasp, JSObject *ctor)
|
|
2141
2240
|
proto = JSVAL_TO_OBJECT(pval);
|
2142
2241
|
} else if (pval == JSVAL_HOLE) {
|
2143
2242
|
/* No ctor.prototype yet, inline and optimize fun_resolve's prototype code. */
|
2144
|
-
proto = js_NewObject(cx, clasp, NULL, OBJ_GET_PARENT(cx, ctor)
|
2243
|
+
proto = js_NewObject(cx, clasp, NULL, OBJ_GET_PARENT(cx, ctor));
|
2145
2244
|
if (!proto)
|
2146
2245
|
return NULL;
|
2147
2246
|
if (!js_SetClassPrototype(cx, ctor, proto, JSPROP_ENUMERATE | JSPROP_PERMANENT))
|
@@ -2154,7 +2253,8 @@ js_NewInstance(JSContext *cx, JSClass *clasp, JSObject *ctor)
|
|
2154
2253
|
}
|
2155
2254
|
}
|
2156
2255
|
|
2157
|
-
return NewNativeObject(cx, clasp, proto,
|
2256
|
+
return NewNativeObject(cx, clasp, proto, ctor->getParent(),
|
2257
|
+
JSObject::defaultPrivate(clasp));
|
2158
2258
|
}
|
2159
2259
|
|
2160
2260
|
JS_DEFINE_CALLINFO_3(extern, CONSTRUCTOR_RETRY, js_NewInstance, CONTEXT, CLASS, OBJECT, 0, 0)
|
@@ -2170,7 +2270,7 @@ JS_DEFINE_CALLINFO_3(extern, CONSTRUCTOR_RETRY, js_NewInstance, CONTEXT, CLASS,
|
|
2170
2270
|
* access is "object-detecting" in the sense used by web scripts, e.g., when
|
2171
2271
|
* checking whether document.all is defined.
|
2172
2272
|
*/
|
2173
|
-
|
2273
|
+
JS_REQUIRES_STACK JSBool
|
2174
2274
|
Detecting(JSContext *cx, jsbytecode *pc)
|
2175
2275
|
{
|
2176
2276
|
JSScript *script;
|
@@ -2181,7 +2281,7 @@ Detecting(JSContext *cx, jsbytecode *pc)
|
|
2181
2281
|
script = cx->fp->script;
|
2182
2282
|
endpc = script->code + script->length;
|
2183
2283
|
for (;; pc += js_CodeSpec[op].length) {
|
2184
|
-
|
2284
|
+
JS_ASSERT_IF(!cx->fp->imacpc, script->code <= pc && pc < endpc);
|
2185
2285
|
|
2186
2286
|
/* General case: a branch or equality op follows the access. */
|
2187
2287
|
op = js_GetOpcode(cx, script, pc);
|
@@ -2233,9 +2333,16 @@ Detecting(JSContext *cx, jsbytecode *pc)
|
|
2233
2333
|
* does not indicate whether we are in a with statement. Return defaultFlags
|
2234
2334
|
* if a currently executing bytecode cannot be determined.
|
2235
2335
|
*/
|
2236
|
-
|
2237
|
-
|
2336
|
+
uintN
|
2337
|
+
js_InferFlags(JSContext *cx, uintN defaultFlags)
|
2238
2338
|
{
|
2339
|
+
#ifdef JS_TRACER
|
2340
|
+
if (JS_ON_TRACE(cx))
|
2341
|
+
return cx->bailExit->lookupFlags;
|
2342
|
+
#endif
|
2343
|
+
|
2344
|
+
JS_ASSERT_NOT_ON_TRACE(cx);
|
2345
|
+
|
2239
2346
|
JSStackFrame *fp;
|
2240
2347
|
jsbytecode *pc;
|
2241
2348
|
const JSCodeSpec *cs;
|
@@ -2253,7 +2360,7 @@ InferFlags(JSContext *cx, uintN defaultFlags)
|
|
2253
2360
|
if ((format & (JOF_SET | JOF_FOR)) ||
|
2254
2361
|
(fp->flags & JSFRAME_ASSIGNING)) {
|
2255
2362
|
flags |= JSRESOLVE_ASSIGNING;
|
2256
|
-
} else {
|
2363
|
+
} else if (cs->length >= 0) {
|
2257
2364
|
pc += cs->length;
|
2258
2365
|
if (pc < cx->fp->script->code + cx->fp->script->length && Detecting(cx, pc))
|
2259
2366
|
flags |= JSRESOLVE_DETECTING;
|
@@ -2273,13 +2380,13 @@ with_LookupProperty(JSContext *cx, JSObject *obj, jsid id, JSObject **objp,
|
|
2273
2380
|
/* Fixes bug 463997 */
|
2274
2381
|
uintN flags = cx->resolveFlags;
|
2275
2382
|
if (flags == JSRESOLVE_INFER)
|
2276
|
-
flags =
|
2383
|
+
flags = js_InferFlags(cx, flags);
|
2277
2384
|
flags |= JSRESOLVE_WITH;
|
2278
2385
|
JSAutoResolveFlags rf(cx, flags);
|
2279
2386
|
JSObject *proto = OBJ_GET_PROTO(cx, obj);
|
2280
2387
|
if (!proto)
|
2281
2388
|
return js_LookupProperty(cx, obj, id, objp, propp);
|
2282
|
-
return
|
2389
|
+
return proto->lookupProperty(cx, id, objp, propp);
|
2283
2390
|
}
|
2284
2391
|
|
2285
2392
|
static JSBool
|
@@ -2288,7 +2395,7 @@ with_GetProperty(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
|
|
2288
2395
|
JSObject *proto = OBJ_GET_PROTO(cx, obj);
|
2289
2396
|
if (!proto)
|
2290
2397
|
return js_GetProperty(cx, obj, id, vp);
|
2291
|
-
return
|
2398
|
+
return proto->getProperty(cx, id, vp);
|
2292
2399
|
}
|
2293
2400
|
|
2294
2401
|
static JSBool
|
@@ -2297,7 +2404,7 @@ with_SetProperty(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
|
|
2297
2404
|
JSObject *proto = OBJ_GET_PROTO(cx, obj);
|
2298
2405
|
if (!proto)
|
2299
2406
|
return js_SetProperty(cx, obj, id, vp);
|
2300
|
-
return
|
2407
|
+
return proto->setProperty(cx, id, vp);
|
2301
2408
|
}
|
2302
2409
|
|
2303
2410
|
static JSBool
|
@@ -2307,7 +2414,7 @@ with_GetAttributes(JSContext *cx, JSObject *obj, jsid id, JSProperty *prop,
|
|
2307
2414
|
JSObject *proto = OBJ_GET_PROTO(cx, obj);
|
2308
2415
|
if (!proto)
|
2309
2416
|
return js_GetAttributes(cx, obj, id, prop, attrsp);
|
2310
|
-
return
|
2417
|
+
return proto->getAttributes(cx, id, prop, attrsp);
|
2311
2418
|
}
|
2312
2419
|
|
2313
2420
|
static JSBool
|
@@ -2317,7 +2424,7 @@ with_SetAttributes(JSContext *cx, JSObject *obj, jsid id, JSProperty *prop,
|
|
2317
2424
|
JSObject *proto = OBJ_GET_PROTO(cx, obj);
|
2318
2425
|
if (!proto)
|
2319
2426
|
return js_SetAttributes(cx, obj, id, prop, attrsp);
|
2320
|
-
return
|
2427
|
+
return proto->setAttributes(cx, id, prop, attrsp);
|
2321
2428
|
}
|
2322
2429
|
|
2323
2430
|
static JSBool
|
@@ -2326,7 +2433,7 @@ with_DeleteProperty(JSContext *cx, JSObject *obj, jsid id, jsval *rval)
|
|
2326
2433
|
JSObject *proto = OBJ_GET_PROTO(cx, obj);
|
2327
2434
|
if (!proto)
|
2328
2435
|
return js_DeleteProperty(cx, obj, id, rval);
|
2329
|
-
return
|
2436
|
+
return proto->deleteProperty(cx, id, rval);
|
2330
2437
|
}
|
2331
2438
|
|
2332
2439
|
static JSBool
|
@@ -2335,7 +2442,7 @@ with_DefaultValue(JSContext *cx, JSObject *obj, JSType hint, jsval *vp)
|
|
2335
2442
|
JSObject *proto = OBJ_GET_PROTO(cx, obj);
|
2336
2443
|
if (!proto)
|
2337
2444
|
return js_DefaultValue(cx, obj, hint, vp);
|
2338
|
-
return
|
2445
|
+
return proto->defaultValue(cx, hint, vp);
|
2339
2446
|
}
|
2340
2447
|
|
2341
2448
|
static JSBool
|
@@ -2345,7 +2452,7 @@ with_Enumerate(JSContext *cx, JSObject *obj, JSIterateOp enum_op,
|
|
2345
2452
|
JSObject *proto = OBJ_GET_PROTO(cx, obj);
|
2346
2453
|
if (!proto)
|
2347
2454
|
return js_Enumerate(cx, obj, enum_op, statep, idp);
|
2348
|
-
return
|
2455
|
+
return proto->enumerate(cx, enum_op, statep, idp);
|
2349
2456
|
}
|
2350
2457
|
|
2351
2458
|
static JSBool
|
@@ -2355,7 +2462,7 @@ with_CheckAccess(JSContext *cx, JSObject *obj, jsid id, JSAccessMode mode,
|
|
2355
2462
|
JSObject *proto = OBJ_GET_PROTO(cx, obj);
|
2356
2463
|
if (!proto)
|
2357
2464
|
return js_CheckAccess(cx, obj, id, mode, vp, attrsp);
|
2358
|
-
return
|
2465
|
+
return proto->checkAccess(cx, id, mode, vp, attrsp);
|
2359
2466
|
}
|
2360
2467
|
|
2361
2468
|
static JSObject *
|
@@ -2364,7 +2471,7 @@ with_ThisObject(JSContext *cx, JSObject *obj)
|
|
2364
2471
|
JSObject *proto = OBJ_GET_PROTO(cx, obj);
|
2365
2472
|
if (!proto)
|
2366
2473
|
return obj;
|
2367
|
-
return
|
2474
|
+
return proto->thisObject(cx);
|
2368
2475
|
}
|
2369
2476
|
|
2370
2477
|
JS_FRIEND_DATA(JSObjectOps) js_WithObjectOps = {
|
@@ -2377,8 +2484,7 @@ JS_FRIEND_DATA(JSObjectOps) js_WithObjectOps = {
|
|
2377
2484
|
with_ThisObject, NATIVE_DROP_PROPERTY,
|
2378
2485
|
NULL, NULL,
|
2379
2486
|
NULL, js_TraceObject,
|
2380
|
-
js_Clear
|
2381
|
-
NULL
|
2487
|
+
js_Clear
|
2382
2488
|
};
|
2383
2489
|
|
2384
2490
|
static JSObjectOps *
|
@@ -2391,7 +2497,7 @@ JSClass js_WithClass = {
|
|
2391
2497
|
"With",
|
2392
2498
|
JSCLASS_HAS_PRIVATE | JSCLASS_HAS_RESERVED_SLOTS(1) | JSCLASS_IS_ANONYMOUS,
|
2393
2499
|
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
|
2394
|
-
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub,
|
2500
|
+
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, NULL,
|
2395
2501
|
with_getObjectOps,
|
2396
2502
|
0,0,0,0,0,0,0
|
2397
2503
|
};
|
@@ -2401,10 +2507,10 @@ js_NewWithObject(JSContext *cx, JSObject *proto, JSObject *parent, jsint depth)
|
|
2401
2507
|
{
|
2402
2508
|
JSObject *obj;
|
2403
2509
|
|
2404
|
-
obj = js_NewObject(cx, &js_WithClass, proto, parent
|
2510
|
+
obj = js_NewObject(cx, &js_WithClass, proto, parent);
|
2405
2511
|
if (!obj)
|
2406
2512
|
return NULL;
|
2407
|
-
|
2513
|
+
obj->setPrivate(cx->fp);
|
2408
2514
|
OBJ_SET_BLOCK_DEPTH(cx, obj, depth);
|
2409
2515
|
return obj;
|
2410
2516
|
}
|
@@ -2416,28 +2522,36 @@ js_NewBlockObject(JSContext *cx)
|
|
2416
2522
|
* Null obj's proto slot so that Object.prototype.* does not pollute block
|
2417
2523
|
* scopes and to give the block object its own scope.
|
2418
2524
|
*/
|
2419
|
-
JSObject *blockObj = js_NewObjectWithGivenProto(cx, &js_BlockClass,
|
2420
|
-
NULL, NULL, 0);
|
2525
|
+
JSObject *blockObj = js_NewObjectWithGivenProto(cx, &js_BlockClass, NULL, NULL);
|
2421
2526
|
JS_ASSERT_IF(blockObj, !OBJ_IS_CLONED_BLOCK(blockObj));
|
2422
2527
|
return blockObj;
|
2423
2528
|
}
|
2424
2529
|
|
2425
2530
|
JSObject *
|
2426
|
-
js_CloneBlockObject(JSContext *cx, JSObject *proto,
|
2427
|
-
JSStackFrame *fp)
|
2531
|
+
js_CloneBlockObject(JSContext *cx, JSObject *proto, JSStackFrame *fp)
|
2428
2532
|
{
|
2429
|
-
JSObject *clone;
|
2430
|
-
|
2431
|
-
JS_ASSERT(STOBJ_GET_CLASS(proto) == &js_BlockClass);
|
2432
2533
|
JS_ASSERT(!OBJ_IS_CLONED_BLOCK(proto));
|
2433
|
-
|
2534
|
+
JS_ASSERT(STOBJ_GET_CLASS(proto) == &js_BlockClass);
|
2535
|
+
|
2536
|
+
JSObject *clone = js_NewGCObject(cx, GCX_OBJECT);
|
2434
2537
|
if (!clone)
|
2435
2538
|
return NULL;
|
2436
|
-
|
2437
|
-
|
2438
|
-
|
2539
|
+
|
2540
|
+
JSScope *scope = OBJ_SCOPE(proto);
|
2541
|
+
scope->hold();
|
2542
|
+
JS_ASSERT(!scope->owned());
|
2543
|
+
clone->map = scope;
|
2544
|
+
|
2545
|
+
clone->classword = jsuword(&js_BlockClass);
|
2546
|
+
clone->setProto(proto);
|
2547
|
+
clone->setParent(NULL); // caller's responsibility
|
2548
|
+
clone->setPrivate(fp);
|
2549
|
+
clone->fslots[JSSLOT_BLOCK_DEPTH] = proto->fslots[JSSLOT_BLOCK_DEPTH];
|
2550
|
+
JS_ASSERT(scope->freeslot == JSSLOT_BLOCK_DEPTH + 1);
|
2551
|
+
for (uint32 i = JSSLOT_BLOCK_DEPTH + 1; i < JS_INITIAL_NSLOTS; ++i)
|
2552
|
+
clone->fslots[i] = JSVAL_VOID;
|
2553
|
+
clone->dslots = NULL;
|
2439
2554
|
JS_ASSERT(OBJ_IS_CLONED_BLOCK(clone));
|
2440
|
-
JS_ASSERT(OBJ_SCOPE(clone)->object == proto);
|
2441
2555
|
return clone;
|
2442
2556
|
}
|
2443
2557
|
|
@@ -2454,7 +2568,7 @@ js_PutBlockObject(JSContext *cx, JSBool normalUnwind)
|
|
2454
2568
|
fp = cx->fp;
|
2455
2569
|
obj = fp->scopeChain;
|
2456
2570
|
JS_ASSERT(OBJ_GET_CLASS(cx, obj) == &js_BlockClass);
|
2457
|
-
JS_ASSERT(
|
2571
|
+
JS_ASSERT(obj->getPrivate() == cx->fp);
|
2458
2572
|
JS_ASSERT(OBJ_IS_CLONED_BLOCK(obj));
|
2459
2573
|
|
2460
2574
|
/*
|
@@ -2482,7 +2596,7 @@ js_PutBlockObject(JSContext *cx, JSBool normalUnwind)
|
|
2482
2596
|
if (normalUnwind && count > 1) {
|
2483
2597
|
--count;
|
2484
2598
|
JS_LOCK_OBJ(cx, obj);
|
2485
|
-
if (!
|
2599
|
+
if (!AllocSlots(cx, obj, JS_INITIAL_NSLOTS + count))
|
2486
2600
|
normalUnwind = JS_FALSE;
|
2487
2601
|
else
|
2488
2602
|
memcpy(obj->dslots, fp->slots + depth + 1, count * sizeof(jsval));
|
@@ -2490,7 +2604,7 @@ js_PutBlockObject(JSContext *cx, JSBool normalUnwind)
|
|
2490
2604
|
}
|
2491
2605
|
|
2492
2606
|
/* We must clear the private slot even with errors. */
|
2493
|
-
|
2607
|
+
obj->setPrivate(NULL);
|
2494
2608
|
fp->scopeChain = OBJ_GET_PARENT(cx, obj);
|
2495
2609
|
return normalUnwind;
|
2496
2610
|
}
|
@@ -2498,50 +2612,69 @@ js_PutBlockObject(JSContext *cx, JSBool normalUnwind)
|
|
2498
2612
|
static JSBool
|
2499
2613
|
block_getProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
2500
2614
|
{
|
2501
|
-
|
2502
|
-
|
2503
|
-
|
2504
|
-
|
2615
|
+
/*
|
2616
|
+
* Block objects are never exposed to script, and the engine handles them
|
2617
|
+
* with care. So unlike other getters, this one can assert (rather than
|
2618
|
+
* check) certain invariants about obj.
|
2619
|
+
*/
|
2620
|
+
JS_ASSERT(obj->getClass() == &js_BlockClass);
|
2505
2621
|
JS_ASSERT(OBJ_IS_CLONED_BLOCK(obj));
|
2506
|
-
|
2507
|
-
|
2622
|
+
uintN index = (uintN) JSVAL_TO_INT(id);
|
2623
|
+
JS_ASSERT(index < OBJ_BLOCK_COUNT(cx, obj));
|
2508
2624
|
|
2509
|
-
|
2510
|
-
fp = (JSStackFrame *) JS_GetPrivate(cx, obj);
|
2625
|
+
JSStackFrame *fp = (JSStackFrame *) obj->getPrivate();
|
2511
2626
|
if (fp) {
|
2512
2627
|
index += fp->script->nfixed + OBJ_BLOCK_DEPTH(cx, obj);
|
2513
2628
|
JS_ASSERT(index < fp->script->nslots);
|
2514
2629
|
*vp = fp->slots[index];
|
2515
|
-
return
|
2630
|
+
return true;
|
2516
2631
|
}
|
2517
2632
|
|
2518
|
-
/*
|
2519
|
-
|
2520
|
-
|
2633
|
+
/* Values are in reserved slots immediately following DEPTH. */
|
2634
|
+
uint32 slot = JSSLOT_BLOCK_DEPTH + 1 + index;
|
2635
|
+
JS_LOCK_OBJ(cx, obj);
|
2636
|
+
JS_ASSERT(slot < STOBJ_NSLOTS(obj));
|
2637
|
+
*vp = STOBJ_GET_SLOT(obj, slot);
|
2638
|
+
JS_UNLOCK_OBJ(cx, obj);
|
2639
|
+
return true;
|
2521
2640
|
}
|
2522
2641
|
|
2523
2642
|
static JSBool
|
2524
2643
|
block_setProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
2525
2644
|
{
|
2526
|
-
|
2527
|
-
|
2528
|
-
|
2529
|
-
JS_ASSERT(
|
2530
|
-
if (!JSVAL_IS_INT(id))
|
2531
|
-
return JS_TRUE;
|
2645
|
+
JS_ASSERT(obj->getClass() == &js_BlockClass);
|
2646
|
+
JS_ASSERT(OBJ_IS_CLONED_BLOCK(obj));
|
2647
|
+
uintN index = (uintN) JSVAL_TO_INT(id);
|
2648
|
+
JS_ASSERT(index < OBJ_BLOCK_COUNT(cx, obj));
|
2532
2649
|
|
2533
|
-
|
2534
|
-
fp = (JSStackFrame *) JS_GetPrivate(cx, obj);
|
2650
|
+
JSStackFrame *fp = (JSStackFrame *) obj->getPrivate();
|
2535
2651
|
if (fp) {
|
2536
2652
|
index += fp->script->nfixed + OBJ_BLOCK_DEPTH(cx, obj);
|
2537
2653
|
JS_ASSERT(index < fp->script->nslots);
|
2538
2654
|
fp->slots[index] = *vp;
|
2539
|
-
return
|
2655
|
+
return true;
|
2540
2656
|
}
|
2541
2657
|
|
2542
|
-
/*
|
2543
|
-
|
2544
|
-
|
2658
|
+
/* Values are in reserved slots immediately following DEPTH. */
|
2659
|
+
uint32 slot = JSSLOT_BLOCK_DEPTH + 1 + index;
|
2660
|
+
JS_LOCK_OBJ(cx, obj);
|
2661
|
+
JS_ASSERT(slot < STOBJ_NSLOTS(obj));
|
2662
|
+
STOBJ_SET_SLOT(obj, slot, *vp);
|
2663
|
+
JS_UNLOCK_OBJ(cx, obj);
|
2664
|
+
return true;
|
2665
|
+
}
|
2666
|
+
|
2667
|
+
JSBool
|
2668
|
+
js_DefineBlockVariable(JSContext *cx, JSObject *obj, jsid id, int16 index)
|
2669
|
+
{
|
2670
|
+
JS_ASSERT(obj->getClass() == &js_BlockClass);
|
2671
|
+
JS_ASSERT(!OBJ_IS_CLONED_BLOCK(obj));
|
2672
|
+
|
2673
|
+
/* Use JSPROP_ENUMERATE to aid the disassembler. */
|
2674
|
+
return js_DefineNativeProperty(cx, obj, id, JSVAL_VOID,
|
2675
|
+
block_getProperty, block_setProperty,
|
2676
|
+
JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_SHARED,
|
2677
|
+
SPROP_HAS_SHORTID, index, NULL);
|
2545
2678
|
}
|
2546
2679
|
|
2547
2680
|
#if JS_HAS_XDR
|
@@ -2573,7 +2706,6 @@ js_XDRBlockObject(JSXDRState *xdr, JSObject **objp)
|
|
2573
2706
|
JSObject *obj, *parent;
|
2574
2707
|
uint16 depth, count, i;
|
2575
2708
|
uint32 tmp;
|
2576
|
-
JSTempValueRooter tvr;
|
2577
2709
|
JSScopeProperty *sprop;
|
2578
2710
|
jsid propid;
|
2579
2711
|
JSAtom *atom;
|
@@ -2590,7 +2722,7 @@ js_XDRBlockObject(JSXDRState *xdr, JSObject **objp)
|
|
2590
2722
|
parent = OBJ_GET_PARENT(cx, obj);
|
2591
2723
|
parentId = (xdr->script->objectsOffset == 0)
|
2592
2724
|
? NO_PARENT_INDEX
|
2593
|
-
: FindObjectIndex(
|
2725
|
+
: FindObjectIndex(xdr->script->objects(), parent);
|
2594
2726
|
depth = (uint16)OBJ_BLOCK_DEPTH(cx, obj);
|
2595
2727
|
count = (uint16)OBJ_BLOCK_COUNT(cx, obj);
|
2596
2728
|
tmp = (uint32)(depth << 16) | count;
|
@@ -2617,16 +2749,14 @@ js_XDRBlockObject(JSXDRState *xdr, JSObject **objp)
|
|
2617
2749
|
if (parentId == NO_PARENT_INDEX)
|
2618
2750
|
parent = NULL;
|
2619
2751
|
else
|
2620
|
-
|
2752
|
+
parent = xdr->script->getObject(parentId);
|
2621
2753
|
STOBJ_SET_PARENT(obj, parent);
|
2622
2754
|
}
|
2623
2755
|
|
2624
|
-
|
2756
|
+
JSAutoTempValueRooter tvr(cx, obj);
|
2625
2757
|
|
2626
|
-
if (!JS_XDRUint32(xdr, &tmp))
|
2627
|
-
|
2628
|
-
return JS_FALSE;
|
2629
|
-
}
|
2758
|
+
if (!JS_XDRUint32(xdr, &tmp))
|
2759
|
+
return false;
|
2630
2760
|
|
2631
2761
|
if (xdr->mode == JSXDR_DECODE) {
|
2632
2762
|
depth = (uint16)(tmp >> 16);
|
@@ -2649,7 +2779,7 @@ js_XDRBlockObject(JSXDRState *xdr, JSObject **objp)
|
|
2649
2779
|
sprop = sprop ? sprop->parent : OBJ_SCOPE(obj)->lastProp;
|
2650
2780
|
} while (!(sprop->flags & SPROP_HAS_SHORTID));
|
2651
2781
|
|
2652
|
-
JS_ASSERT(sprop->getter ==
|
2782
|
+
JS_ASSERT(sprop->getter == block_getProperty);
|
2653
2783
|
propid = sprop->id;
|
2654
2784
|
JS_ASSERT(JSID_IS_ATOM(propid));
|
2655
2785
|
atom = JSID_TO_ATOM(propid);
|
@@ -2660,24 +2790,20 @@ js_XDRBlockObject(JSXDRState *xdr, JSObject **objp)
|
|
2660
2790
|
/* XDR the real id, then the shortid. */
|
2661
2791
|
if (!js_XDRStringAtom(xdr, &atom) ||
|
2662
2792
|
!JS_XDRUint16(xdr, (uint16 *)&shortid)) {
|
2663
|
-
|
2664
|
-
break;
|
2793
|
+
return false;
|
2665
2794
|
}
|
2666
2795
|
|
2667
2796
|
if (xdr->mode == JSXDR_DECODE) {
|
2668
|
-
if (!
|
2669
|
-
|
2670
|
-
JSPROP_ENUMERATE | JSPROP_PERMANENT |
|
2671
|
-
JSPROP_SHARED,
|
2672
|
-
SPROP_HAS_SHORTID, shortid, NULL)) {
|
2673
|
-
ok = JS_FALSE;
|
2674
|
-
break;
|
2675
|
-
}
|
2797
|
+
if (!js_DefineBlockVariable(cx, obj, ATOM_TO_JSID(atom), shortid))
|
2798
|
+
return false;
|
2676
2799
|
}
|
2677
2800
|
}
|
2678
2801
|
|
2679
|
-
|
2680
|
-
|
2802
|
+
if (xdr->mode == JSXDR_DECODE) {
|
2803
|
+
/* Do as the parser does and make this block scope shareable. */
|
2804
|
+
OBJ_SCOPE(obj)->object = NULL;
|
2805
|
+
}
|
2806
|
+
return true;
|
2681
2807
|
}
|
2682
2808
|
|
2683
2809
|
#endif
|
@@ -2691,8 +2817,8 @@ block_reserveSlots(JSContext *cx, JSObject *obj)
|
|
2691
2817
|
JSClass js_BlockClass = {
|
2692
2818
|
"Block",
|
2693
2819
|
JSCLASS_HAS_PRIVATE | JSCLASS_HAS_RESERVED_SLOTS(1) | JSCLASS_IS_ANONYMOUS,
|
2694
|
-
JS_PropertyStub, JS_PropertyStub,
|
2695
|
-
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub,
|
2820
|
+
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
|
2821
|
+
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, NULL,
|
2696
2822
|
NULL, NULL, NULL, NULL, NULL, NULL, NULL, block_reserveSlots
|
2697
2823
|
};
|
2698
2824
|
|
@@ -2756,7 +2882,7 @@ js_InitClass(JSContext *cx, JSObject *obj, JSObject *parent_proto,
|
|
2756
2882
|
}
|
2757
2883
|
|
2758
2884
|
/* Create a prototype object for this class. */
|
2759
|
-
proto = js_NewObject(cx, clasp, parent_proto, obj
|
2885
|
+
proto = js_NewObject(cx, clasp, parent_proto, obj);
|
2760
2886
|
if (!proto)
|
2761
2887
|
return NULL;
|
2762
2888
|
|
@@ -2775,13 +2901,12 @@ js_InitClass(JSContext *cx, JSObject *obj, JSObject *parent_proto,
|
|
2775
2901
|
key != JSProto_Null) {
|
2776
2902
|
named = JS_FALSE;
|
2777
2903
|
} else {
|
2778
|
-
named =
|
2904
|
+
named = obj->defineProperty(cx, ATOM_TO_JSID(atom),
|
2779
2905
|
OBJECT_TO_JSVAL(proto),
|
2780
2906
|
JS_PropertyStub, JS_PropertyStub,
|
2781
2907
|
(clasp->flags & JSCLASS_IS_ANONYMOUS)
|
2782
2908
|
? JSPROP_READONLY | JSPROP_PERMANENT
|
2783
|
-
: 0
|
2784
|
-
NULL);
|
2909
|
+
: 0);
|
2785
2910
|
if (!named)
|
2786
2911
|
goto bad;
|
2787
2912
|
}
|
@@ -2836,6 +2961,21 @@ js_InitClass(JSContext *cx, JSObject *obj, JSObject *parent_proto,
|
|
2836
2961
|
goto bad;
|
2837
2962
|
}
|
2838
2963
|
|
2964
|
+
/*
|
2965
|
+
* Make sure proto's scope's emptyScope is available to be shared by
|
2966
|
+
* objects of this class. JSScope::emptyScope is a one-slot cache. If we
|
2967
|
+
* omit this, some other class could snap it up. (The risk is particularly
|
2968
|
+
* great for Object.prototype.)
|
2969
|
+
*
|
2970
|
+
* All callers of JSObject::initSharingEmptyScope depend on this.
|
2971
|
+
*/
|
2972
|
+
if (OBJ_IS_NATIVE(proto)) {
|
2973
|
+
JSScope *scope = OBJ_SCOPE(proto)->getEmptyScope(cx, clasp);
|
2974
|
+
if (!scope)
|
2975
|
+
goto bad;
|
2976
|
+
scope->drop(cx, NULL);
|
2977
|
+
}
|
2978
|
+
|
2839
2979
|
/* If this is a standard class, cache its prototype. */
|
2840
2980
|
if (key != JSProto_Null && !js_SetClassObject(cx, obj, key, ctor))
|
2841
2981
|
goto bad;
|
@@ -2846,146 +2986,138 @@ out:
|
|
2846
2986
|
|
2847
2987
|
bad:
|
2848
2988
|
if (named)
|
2849
|
-
(void)
|
2989
|
+
(void) obj->deleteProperty(cx, ATOM_TO_JSID(atom), &rval);
|
2850
2990
|
proto = NULL;
|
2851
2991
|
goto out;
|
2852
2992
|
}
|
2853
2993
|
|
2854
|
-
static void
|
2855
|
-
FreeSlots(JSContext *cx, JSObject *obj)
|
2856
|
-
{
|
2857
|
-
if (obj->dslots) {
|
2858
|
-
JS_ASSERT((uint32)obj->dslots[-1] > JS_INITIAL_NSLOTS);
|
2859
|
-
JS_free(cx, obj->dslots - 1);
|
2860
|
-
obj->dslots = NULL;
|
2861
|
-
}
|
2862
|
-
}
|
2863
|
-
|
2864
2994
|
#define SLOTS_TO_DYNAMIC_WORDS(nslots) \
|
2865
2995
|
(JS_ASSERT((nslots) > JS_INITIAL_NSLOTS), (nslots) + 1 - JS_INITIAL_NSLOTS)
|
2866
2996
|
|
2867
2997
|
#define DYNAMIC_WORDS_TO_SLOTS(words) \
|
2868
2998
|
(JS_ASSERT((words) > 1), (words) - 1 + JS_INITIAL_NSLOTS)
|
2869
2999
|
|
2870
|
-
|
2871
|
-
|
2872
|
-
|
3000
|
+
|
3001
|
+
static bool
|
3002
|
+
AllocSlots(JSContext *cx, JSObject *obj, size_t nslots)
|
2873
3003
|
{
|
2874
|
-
|
2875
|
-
|
3004
|
+
JS_ASSERT(!obj->dslots);
|
3005
|
+
JS_ASSERT(nslots > JS_INITIAL_NSLOTS);
|
3006
|
+
|
3007
|
+
jsval* slots;
|
3008
|
+
slots = (jsval*) cx->malloc(SLOTS_TO_DYNAMIC_WORDS(nslots) * sizeof(jsval));
|
3009
|
+
if (!slots)
|
3010
|
+
return true;
|
3011
|
+
|
3012
|
+
*slots++ = nslots;
|
3013
|
+
/* clear the newly allocated cells. */
|
3014
|
+
for (jsuint n = JS_INITIAL_NSLOTS; n < nslots; ++n)
|
3015
|
+
slots[n - JS_INITIAL_NSLOTS] = JSVAL_VOID;
|
3016
|
+
obj->dslots = slots;
|
3017
|
+
|
3018
|
+
return true;
|
3019
|
+
}
|
2876
3020
|
|
3021
|
+
bool
|
3022
|
+
js_GrowSlots(JSContext *cx, JSObject *obj, size_t nslots)
|
3023
|
+
{
|
2877
3024
|
/*
|
2878
3025
|
* Minimal number of dynamic slots to allocate.
|
2879
3026
|
*/
|
2880
|
-
|
3027
|
+
const size_t MIN_DYNAMIC_WORDS = 4;
|
2881
3028
|
|
2882
3029
|
/*
|
2883
3030
|
* The limit to switch to linear allocation strategy from the power of 2
|
2884
3031
|
* growth no to waste too much memory.
|
2885
3032
|
*/
|
2886
|
-
|
3033
|
+
const size_t LINEAR_GROWTH_STEP = JS_BIT(16);
|
2887
3034
|
|
2888
|
-
|
2889
|
-
if (nslots <= JS_INITIAL_NSLOTS)
|
2890
|
-
if (old &&
|
2891
|
-
(exactAllocation ||
|
2892
|
-
SLOTS_TO_DYNAMIC_WORDS((uint32)old[-1]) != MIN_DYNAMIC_WORDS ||
|
2893
|
-
nslots <= (JS_INITIAL_NSLOTS +
|
2894
|
-
JSSLOT_FREE(STOBJ_GET_CLASS(obj))) / 2)) {
|
2895
|
-
/*
|
2896
|
-
* We do not want to free dynamic slots when allocation is a hint,
|
2897
|
-
* we reached minimal allocation and almost all fixed slots are
|
2898
|
-
* used. It avoids allocating dynamic slots again when properties
|
2899
|
-
* are added to the object.
|
2900
|
-
*
|
2901
|
-
* If there were no private or reserved slots, the condition to
|
2902
|
-
* free the slots would be
|
2903
|
-
*
|
2904
|
-
* nslots <= JS_INITIAL_NSLOTS / 2
|
2905
|
-
*
|
2906
|
-
* but to account for never removed slots before JSSLOT_FREE(class)
|
2907
|
-
* we need to subtract it from the slot counts which gives
|
2908
|
-
*
|
2909
|
-
* nslots - JSSLOT_FREE <= (JS_INITIAL_NSLOTS - JSSLOT_FREE) / 2
|
2910
|
-
*
|
2911
|
-
* or
|
2912
|
-
*
|
2913
|
-
* nslots <= (JS_INITIAL_NSLOTS + JSSLOT_FREE) / 2
|
2914
|
-
*/
|
2915
|
-
FreeSlots(cx, obj);
|
2916
|
-
}
|
3035
|
+
/* If we are allocating fslots, there is nothing to do. */
|
3036
|
+
if (nslots <= JS_INITIAL_NSLOTS)
|
2917
3037
|
return JS_TRUE;
|
2918
|
-
}
|
2919
3038
|
|
2920
|
-
|
2921
|
-
nwords = SLOTS_TO_DYNAMIC_WORDS(nslots);
|
3039
|
+
size_t nwords = SLOTS_TO_DYNAMIC_WORDS(nslots);
|
2922
3040
|
|
2923
|
-
|
2924
|
-
|
2925
|
-
|
2926
|
-
|
2927
|
-
|
2928
|
-
|
2929
|
-
|
2930
|
-
|
2931
|
-
|
2932
|
-
|
2933
|
-
nwords = JS_BIT(log);
|
2934
|
-
} else {
|
2935
|
-
nwords = JS_ROUNDUP(nwords, LINEAR_GROWTH_STEP);
|
2936
|
-
}
|
2937
|
-
}
|
2938
|
-
slots = (jsval *)JS_realloc(cx, old, nwords * sizeof(jsval));
|
2939
|
-
if (!slots)
|
2940
|
-
return JS_FALSE;
|
3041
|
+
/*
|
3042
|
+
* Round up nslots so the number of bytes in dslots array is power
|
3043
|
+
* of 2 to ensure exponential grouth.
|
3044
|
+
*/
|
3045
|
+
uintN log;
|
3046
|
+
if (nwords <= MIN_DYNAMIC_WORDS) {
|
3047
|
+
nwords = MIN_DYNAMIC_WORDS;
|
3048
|
+
} else if (nwords < LINEAR_GROWTH_STEP) {
|
3049
|
+
JS_CEILING_LOG2(log, nwords);
|
3050
|
+
nwords = JS_BIT(log);
|
2941
3051
|
} else {
|
2942
|
-
|
2943
|
-
if (!exactAllocation) {
|
2944
|
-
owords = DYNAMIC_WORDS_TO_SLOTS(oslots);
|
2945
|
-
if (owords <= MIN_DYNAMIC_WORDS)
|
2946
|
-
return JS_TRUE;
|
2947
|
-
if (owords < LINEAR_GROWTH_STEP * 2) {
|
2948
|
-
/*
|
2949
|
-
* Shrink only if 1/4 of slots are left and we need to grow
|
2950
|
-
* the array at least twice to reach the current capacity. It
|
2951
|
-
* prevents frequent capacity growth/shrinking when slots are
|
2952
|
-
* often removed and added.
|
2953
|
-
*/
|
2954
|
-
if (nwords > owords / 4)
|
2955
|
-
return JS_TRUE;
|
2956
|
-
JS_CEILING_LOG2(log, nwords);
|
2957
|
-
nwords = JS_BIT(log);
|
2958
|
-
if (nwords < MIN_DYNAMIC_WORDS)
|
2959
|
-
nwords = MIN_DYNAMIC_WORDS;
|
2960
|
-
} else {
|
2961
|
-
/*
|
2962
|
-
* Shrink only if we free at least 2 linear allocation
|
2963
|
-
* segments, to prevent growth/shrinking resonance.
|
2964
|
-
*/
|
2965
|
-
if (nwords > owords - LINEAR_GROWTH_STEP * 2)
|
2966
|
-
return JS_TRUE;
|
2967
|
-
nwords = JS_ROUNDUP(nwords, LINEAR_GROWTH_STEP);
|
2968
|
-
}
|
2969
|
-
}
|
2970
|
-
|
2971
|
-
/* We avoid JS_realloc not to report a failed shrink attempt. */
|
2972
|
-
slots = (jsval *)realloc(old, nwords * sizeof(jsval));
|
2973
|
-
if (!slots)
|
2974
|
-
slots = old;
|
3052
|
+
nwords = JS_ROUNDUP(nwords, LINEAR_GROWTH_STEP);
|
2975
3053
|
}
|
2976
|
-
|
2977
3054
|
nslots = DYNAMIC_WORDS_TO_SLOTS(nwords);
|
2978
|
-
|
3055
|
+
|
3056
|
+
/*
|
3057
|
+
* If nothing was allocated yet, treat it as initial allocation (but with
|
3058
|
+
* the exponential growth algorithm applied).
|
3059
|
+
*/
|
3060
|
+
jsval* slots = obj->dslots;
|
3061
|
+
if (!slots)
|
3062
|
+
return AllocSlots(cx, obj, nslots);
|
3063
|
+
|
3064
|
+
size_t oslots = size_t(slots[-1]);
|
3065
|
+
|
3066
|
+
slots = (jsval*) cx->realloc(slots - 1, nwords * sizeof(jsval));
|
3067
|
+
*slots++ = nslots;
|
2979
3068
|
obj->dslots = slots;
|
2980
3069
|
|
2981
|
-
/*
|
2982
|
-
|
3070
|
+
/* Initialize the additional slots we added. */
|
3071
|
+
JS_ASSERT(nslots > oslots);
|
3072
|
+
for (size_t i = oslots; i < nslots; i++)
|
2983
3073
|
slots[i - JS_INITIAL_NSLOTS] = JSVAL_VOID;
|
2984
3074
|
|
2985
|
-
return
|
3075
|
+
return true;
|
3076
|
+
}
|
3077
|
+
|
3078
|
+
void
|
3079
|
+
js_ShrinkSlots(JSContext *cx, JSObject *obj, size_t nslots)
|
3080
|
+
{
|
3081
|
+
jsval* slots = obj->dslots;
|
3082
|
+
|
3083
|
+
/* Nothing to shrink? */
|
3084
|
+
if (!slots)
|
3085
|
+
return;
|
3086
|
+
|
3087
|
+
JS_ASSERT(size_t(slots[-1]) > JS_INITIAL_NSLOTS);
|
3088
|
+
JS_ASSERT(nslots <= size_t(slots[-1]));
|
3089
|
+
|
3090
|
+
if (nslots <= JS_INITIAL_NSLOTS) {
|
3091
|
+
cx->free(slots - 1);
|
3092
|
+
obj->dslots = NULL;
|
3093
|
+
} else {
|
3094
|
+
size_t nwords = SLOTS_TO_DYNAMIC_WORDS(nslots);
|
3095
|
+
slots = (jsval*) cx->realloc(slots - 1, nwords * sizeof(jsval));
|
3096
|
+
*slots++ = nslots;
|
3097
|
+
obj->dslots = slots;
|
3098
|
+
}
|
3099
|
+
}
|
3100
|
+
|
3101
|
+
bool
|
3102
|
+
js_EnsureReservedSlots(JSContext *cx, JSObject *obj, size_t nreserved)
|
3103
|
+
{
|
3104
|
+
JS_ASSERT(OBJ_IS_NATIVE(obj));
|
3105
|
+
JS_ASSERT(!obj->dslots);
|
2986
3106
|
|
2987
|
-
|
2988
|
-
|
3107
|
+
uintN nslots = JSSLOT_FREE(STOBJ_GET_CLASS(obj)) + nreserved;
|
3108
|
+
if (nslots > STOBJ_NSLOTS(obj) && !AllocSlots(cx, obj, nslots))
|
3109
|
+
return false;
|
3110
|
+
|
3111
|
+
JSScope *scope = OBJ_SCOPE(obj);
|
3112
|
+
if (scope->owned()) {
|
3113
|
+
#ifdef JS_THREADSAFE
|
3114
|
+
JS_ASSERT(scope->title.ownercx->thread == cx->thread);
|
3115
|
+
#endif
|
3116
|
+
JS_ASSERT(scope->freeslot == JSSLOT_FREE(STOBJ_GET_CLASS(obj)));
|
3117
|
+
if (scope->freeslot < nslots)
|
3118
|
+
scope->freeslot = nslots;
|
3119
|
+
}
|
3120
|
+
return true;
|
2989
3121
|
}
|
2990
3122
|
|
2991
3123
|
extern JSBool
|
@@ -3008,156 +3140,6 @@ js_GetClassId(JSContext *cx, JSClass *clasp, jsid *idp)
|
|
3008
3140
|
return JS_TRUE;
|
3009
3141
|
}
|
3010
3142
|
|
3011
|
-
JSObject *
|
3012
|
-
js_NewObject(JSContext *cx, JSClass *clasp, JSObject *proto, JSObject *parent,
|
3013
|
-
uintN objectSize)
|
3014
|
-
{
|
3015
|
-
jsid id;
|
3016
|
-
|
3017
|
-
/* Bootstrap the ur-object, and make it the default prototype object. */
|
3018
|
-
if (!proto) {
|
3019
|
-
if (!js_GetClassId(cx, clasp, &id))
|
3020
|
-
return NULL;
|
3021
|
-
if (!js_GetClassPrototype(cx, parent, id, &proto))
|
3022
|
-
return NULL;
|
3023
|
-
if (!proto &&
|
3024
|
-
!js_GetClassPrototype(cx, parent, INT_TO_JSID(JSProto_Object),
|
3025
|
-
&proto)) {
|
3026
|
-
return NULL;
|
3027
|
-
}
|
3028
|
-
}
|
3029
|
-
|
3030
|
-
return js_NewObjectWithGivenProto(cx, clasp, proto, parent, objectSize);
|
3031
|
-
}
|
3032
|
-
|
3033
|
-
JSObject *
|
3034
|
-
js_NewObjectWithGivenProto(JSContext *cx, JSClass *clasp, JSObject *proto,
|
3035
|
-
JSObject *parent, uintN objectSize)
|
3036
|
-
{
|
3037
|
-
#ifdef INCLUDE_MOZILLA_DTRACE
|
3038
|
-
if (JAVASCRIPT_OBJECT_CREATE_START_ENABLED())
|
3039
|
-
jsdtrace_object_create_start(cx->fp, clasp);
|
3040
|
-
#endif
|
3041
|
-
|
3042
|
-
/* Currently only functions can have non-standard allocation size. */
|
3043
|
-
if (clasp == &js_FunctionClass) {
|
3044
|
-
if (objectSize == 0)
|
3045
|
-
objectSize = sizeof(JSFunction);
|
3046
|
-
else
|
3047
|
-
JS_ASSERT(objectSize == sizeof(JSObject));
|
3048
|
-
} else {
|
3049
|
-
JS_ASSERT(objectSize == 0);
|
3050
|
-
objectSize = sizeof(JSObject);
|
3051
|
-
}
|
3052
|
-
|
3053
|
-
/* Assert that the class is a proper class. */
|
3054
|
-
JS_ASSERT_IF(clasp->flags & JSCLASS_IS_EXTENDED,
|
3055
|
-
((JSExtendedClass *)clasp)->equality);
|
3056
|
-
|
3057
|
-
/* Always call the class's getObjectOps hook if it has one. */
|
3058
|
-
JSObjectOps *ops = clasp->getObjectOps
|
3059
|
-
? clasp->getObjectOps(cx, clasp)
|
3060
|
-
: &js_ObjectOps;
|
3061
|
-
|
3062
|
-
/*
|
3063
|
-
* Allocate an object from the GC heap and initialize all its fields before
|
3064
|
-
* doing any operation that can potentially trigger GC.
|
3065
|
-
*/
|
3066
|
-
JSObject *obj = (JSObject *) js_NewGCThing(cx, GCX_OBJECT, objectSize);
|
3067
|
-
if (!obj)
|
3068
|
-
goto out;
|
3069
|
-
|
3070
|
-
/*
|
3071
|
-
* Set the class slot with the initial value of the system and delegate
|
3072
|
-
* flags set to false.
|
3073
|
-
*/
|
3074
|
-
JS_ASSERT(((jsuword) clasp & 3) == 0);
|
3075
|
-
obj->classword = jsuword(clasp);
|
3076
|
-
JS_ASSERT(!STOBJ_IS_DELEGATE(obj));
|
3077
|
-
JS_ASSERT(!STOBJ_IS_SYSTEM(obj));
|
3078
|
-
|
3079
|
-
obj->fslots[JSSLOT_PROTO] = OBJECT_TO_JSVAL(proto);
|
3080
|
-
|
3081
|
-
/*
|
3082
|
-
* Default parent to the parent of the prototype, which was set from
|
3083
|
-
* the parent of the prototype's constructor.
|
3084
|
-
*/
|
3085
|
-
obj->fslots[JSSLOT_PARENT] = OBJECT_TO_JSVAL((!parent && proto)
|
3086
|
-
? OBJ_GET_PARENT(cx, proto)
|
3087
|
-
: parent);
|
3088
|
-
|
3089
|
-
/* Initialize the remaining fixed slots. */
|
3090
|
-
for (uint32 i = JSSLOT_PRIVATE; i < JS_INITIAL_NSLOTS; ++i)
|
3091
|
-
obj->fslots[i] = JSVAL_VOID;
|
3092
|
-
|
3093
|
-
obj->dslots = NULL;
|
3094
|
-
|
3095
|
-
if (OPS_IS_NATIVE(ops)) {
|
3096
|
-
if (!InitScopeForObject(cx, obj, proto, ops)) {
|
3097
|
-
obj = NULL;
|
3098
|
-
goto out;
|
3099
|
-
}
|
3100
|
-
} else {
|
3101
|
-
JS_ASSERT(ops->objectMap->ops == ops);
|
3102
|
-
obj->map = const_cast<JSObjectMap *>(ops->objectMap);
|
3103
|
-
}
|
3104
|
-
|
3105
|
-
#ifdef DEBUG
|
3106
|
-
memset((uint8 *) obj + sizeof(JSObject), JS_FREE_PATTERN,
|
3107
|
-
objectSize - sizeof(JSObject));
|
3108
|
-
#endif
|
3109
|
-
|
3110
|
-
/* Check that the newborn root still holds the object. */
|
3111
|
-
JS_ASSERT_IF(!cx->localRootStack, cx->weakRoots.newborn[GCX_OBJECT] == obj);
|
3112
|
-
|
3113
|
-
/*
|
3114
|
-
* Do not call debug hooks on trace, because we might be in a non-_FAIL
|
3115
|
-
* builtin. See bug 481444.
|
3116
|
-
*/
|
3117
|
-
if (cx->debugHooks->objectHook && !JS_ON_TRACE(cx)) {
|
3118
|
-
JSAutoTempValueRooter tvr(cx, obj);
|
3119
|
-
JS_KEEP_ATOMS(cx->runtime);
|
3120
|
-
cx->debugHooks->objectHook(cx, obj, JS_TRUE,
|
3121
|
-
cx->debugHooks->objectHookData);
|
3122
|
-
JS_UNKEEP_ATOMS(cx->runtime);
|
3123
|
-
cx->weakRoots.newborn[GCX_OBJECT] = obj;
|
3124
|
-
}
|
3125
|
-
|
3126
|
-
out:
|
3127
|
-
#ifdef INCLUDE_MOZILLA_DTRACE
|
3128
|
-
if (JAVASCRIPT_OBJECT_CREATE_ENABLED())
|
3129
|
-
jsdtrace_object_create(cx, clasp, obj);
|
3130
|
-
if (JAVASCRIPT_OBJECT_CREATE_DONE_ENABLED())
|
3131
|
-
jsdtrace_object_create_done(cx->fp, clasp);
|
3132
|
-
#endif
|
3133
|
-
return obj;
|
3134
|
-
}
|
3135
|
-
|
3136
|
-
JSObject*
|
3137
|
-
js_NewNativeObject(JSContext *cx, JSClass *clasp, JSObject *proto, uint32 slot)
|
3138
|
-
{
|
3139
|
-
JS_ASSERT(!clasp->getObjectOps);
|
3140
|
-
JS_ASSERT(proto->map->ops == &js_ObjectOps);
|
3141
|
-
JS_ASSERT(OBJ_GET_CLASS(cx, proto) == clasp);
|
3142
|
-
|
3143
|
-
JSObject* obj = (JSObject*) js_NewGCThing(cx, GCX_OBJECT, sizeof(JSObject));
|
3144
|
-
if (!obj)
|
3145
|
-
return NULL;
|
3146
|
-
|
3147
|
-
js_HoldScope(OBJ_SCOPE(proto));
|
3148
|
-
obj->map = proto->map;
|
3149
|
-
obj->classword = jsuword(clasp);
|
3150
|
-
obj->fslots[JSSLOT_PROTO] = OBJECT_TO_JSVAL(proto);
|
3151
|
-
obj->fslots[JSSLOT_PARENT] = proto->fslots[JSSLOT_PARENT];
|
3152
|
-
|
3153
|
-
JS_ASSERT(slot > JSSLOT_PARENT);
|
3154
|
-
while (slot < JS_INITIAL_NSLOTS)
|
3155
|
-
obj->fslots[slot++] = JSVAL_VOID;
|
3156
|
-
|
3157
|
-
obj->dslots = NULL;
|
3158
|
-
return obj;
|
3159
|
-
}
|
3160
|
-
|
3161
3143
|
JS_BEGIN_EXTERN_C
|
3162
3144
|
|
3163
3145
|
static JSObject *
|
@@ -3308,7 +3290,7 @@ js_FindClassObject(JSContext *cx, JSObject *start, jsid id, jsval *vp)
|
|
3308
3290
|
v = JSVAL_VOID;
|
3309
3291
|
}
|
3310
3292
|
}
|
3311
|
-
|
3293
|
+
pobj->dropProperty(cx, prop);
|
3312
3294
|
}
|
3313
3295
|
*vp = v;
|
3314
3296
|
return JS_TRUE;
|
@@ -3320,29 +3302,22 @@ js_ConstructObject(JSContext *cx, JSClass *clasp, JSObject *proto,
|
|
3320
3302
|
{
|
3321
3303
|
jsid id;
|
3322
3304
|
jsval cval, rval;
|
3323
|
-
JSTempValueRooter argtvr, tvr;
|
3324
3305
|
JSObject *obj, *ctor;
|
3325
3306
|
|
3326
|
-
|
3307
|
+
JSAutoTempValueRooter argtvr(cx, argc, argv);
|
3327
3308
|
|
3328
3309
|
if (!js_GetClassId(cx, clasp, &id) ||
|
3329
3310
|
!js_FindClassObject(cx, parent, id, &cval)) {
|
3330
|
-
JS_POP_TEMP_ROOT(cx, &argtvr);
|
3331
3311
|
return NULL;
|
3332
3312
|
}
|
3333
3313
|
|
3334
3314
|
if (JSVAL_IS_PRIMITIVE(cval)) {
|
3335
3315
|
js_ReportIsNotFunction(cx, &cval, JSV2F_CONSTRUCT | JSV2F_SEARCH_STACK);
|
3336
|
-
JS_POP_TEMP_ROOT(cx, &argtvr);
|
3337
3316
|
return NULL;
|
3338
3317
|
}
|
3339
3318
|
|
3340
|
-
/*
|
3341
|
-
|
3342
|
-
* this point, all control flow must exit through label out with obj set.
|
3343
|
-
*/
|
3344
|
-
JS_PUSH_SINGLE_TEMP_ROOT(cx, cval, &tvr);
|
3345
|
-
MUST_FLOW_THROUGH("out");
|
3319
|
+
/* Protect cval in case a crazy getter for .prototype uproots it. */
|
3320
|
+
JSAutoTempValueRooter tvr(cx, cval);
|
3346
3321
|
|
3347
3322
|
/*
|
3348
3323
|
* If proto or parent are NULL, set them to Constructor.prototype and/or
|
@@ -3352,27 +3327,23 @@ js_ConstructObject(JSContext *cx, JSClass *clasp, JSObject *proto,
|
|
3352
3327
|
if (!parent)
|
3353
3328
|
parent = OBJ_GET_PARENT(cx, ctor);
|
3354
3329
|
if (!proto) {
|
3355
|
-
if (!
|
3356
|
-
|
3357
|
-
|
3358
|
-
&rval)) {
|
3359
|
-
obj = NULL;
|
3360
|
-
goto out;
|
3330
|
+
if (!ctor->getProperty(cx, ATOM_TO_JSID(cx->runtime->atomState.classPrototypeAtom),
|
3331
|
+
&rval)) {
|
3332
|
+
return NULL;
|
3361
3333
|
}
|
3362
3334
|
if (JSVAL_IS_OBJECT(rval))
|
3363
3335
|
proto = JSVAL_TO_OBJECT(rval);
|
3364
3336
|
}
|
3365
3337
|
|
3366
|
-
obj = js_NewObject(cx, clasp, proto, parent
|
3338
|
+
obj = js_NewObject(cx, clasp, proto, parent);
|
3367
3339
|
if (!obj)
|
3368
|
-
|
3340
|
+
return NULL;
|
3369
3341
|
|
3370
3342
|
if (!js_InternalConstruct(cx, obj, cval, argc, argv, &rval))
|
3371
|
-
|
3343
|
+
return NULL;
|
3372
3344
|
|
3373
3345
|
if (JSVAL_IS_PRIMITIVE(rval))
|
3374
|
-
|
3375
|
-
obj = JSVAL_TO_OBJECT(rval);
|
3346
|
+
return obj;
|
3376
3347
|
|
3377
3348
|
/*
|
3378
3349
|
* If the instance's class differs from what was requested, throw a type
|
@@ -3381,49 +3352,16 @@ js_ConstructObject(JSContext *cx, JSClass *clasp, JSObject *proto,
|
|
3381
3352
|
* private data set at this point, then the constructor was replaced and
|
3382
3353
|
* we should throw a type error.
|
3383
3354
|
*/
|
3355
|
+
obj = JSVAL_TO_OBJECT(rval);
|
3384
3356
|
if (OBJ_GET_CLASS(cx, obj) != clasp ||
|
3385
3357
|
(!(~clasp->flags & (JSCLASS_HAS_PRIVATE |
|
3386
3358
|
JSCLASS_CONSTRUCT_PROTOTYPE)) &&
|
3387
|
-
!
|
3359
|
+
!obj->getPrivate())) {
|
3388
3360
|
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL,
|
3389
3361
|
JSMSG_WRONG_CONSTRUCTOR, clasp->name);
|
3390
|
-
|
3362
|
+
return NULL;
|
3391
3363
|
}
|
3392
|
-
|
3393
|
-
out:
|
3394
|
-
JS_POP_TEMP_ROOT(cx, &tvr);
|
3395
|
-
JS_POP_TEMP_ROOT(cx, &argtvr);
|
3396
3364
|
return obj;
|
3397
|
-
|
3398
|
-
bad:
|
3399
|
-
cx->weakRoots.newborn[GCX_OBJECT] = NULL;
|
3400
|
-
obj = NULL;
|
3401
|
-
goto out;
|
3402
|
-
}
|
3403
|
-
|
3404
|
-
void
|
3405
|
-
js_FinalizeObject(JSContext *cx, JSObject *obj)
|
3406
|
-
{
|
3407
|
-
/* Cope with stillborn objects that have no map. */
|
3408
|
-
if (!obj->map)
|
3409
|
-
return;
|
3410
|
-
|
3411
|
-
if (cx->debugHooks->objectHook) {
|
3412
|
-
cx->debugHooks->objectHook(cx, obj, JS_FALSE,
|
3413
|
-
cx->debugHooks->objectHookData);
|
3414
|
-
}
|
3415
|
-
|
3416
|
-
/* Finalize obj first, in case it needs map and slots. */
|
3417
|
-
STOBJ_GET_CLASS(obj)->finalize(cx, obj);
|
3418
|
-
|
3419
|
-
#ifdef INCLUDE_MOZILLA_DTRACE
|
3420
|
-
if (JAVASCRIPT_OBJECT_FINALIZE_ENABLED())
|
3421
|
-
jsdtrace_object_finalize(obj);
|
3422
|
-
#endif
|
3423
|
-
|
3424
|
-
if (OBJ_IS_NATIVE(obj))
|
3425
|
-
js_DropScope(cx, OBJ_SCOPE(obj), obj);
|
3426
|
-
FreeSlots(cx, obj);
|
3427
3365
|
}
|
3428
3366
|
|
3429
3367
|
/* XXXbe if one adds props, deletes earlier props, adds more, the last added
|
@@ -3434,14 +3372,14 @@ js_AllocSlot(JSContext *cx, JSObject *obj, uint32 *slotp)
|
|
3434
3372
|
JS_ASSERT(OBJ_IS_NATIVE(obj));
|
3435
3373
|
|
3436
3374
|
JSScope *scope = OBJ_SCOPE(obj);
|
3437
|
-
JSClass *clasp =
|
3375
|
+
JSClass *clasp = obj->getClass();
|
3438
3376
|
if (scope->freeslot == JSSLOT_FREE(clasp) && clasp->reserveSlots) {
|
3439
3377
|
/* Adjust scope->freeslot to include computed reserved slots, if any. */
|
3440
3378
|
scope->freeslot += clasp->reserveSlots(cx, obj);
|
3441
3379
|
}
|
3442
3380
|
|
3443
3381
|
if (scope->freeslot >= STOBJ_NSLOTS(obj) &&
|
3444
|
-
!
|
3382
|
+
!js_GrowSlots(cx, obj, scope->freeslot + 1)) {
|
3445
3383
|
return JS_FALSE;
|
3446
3384
|
}
|
3447
3385
|
|
@@ -3458,18 +3396,45 @@ js_FreeSlot(JSContext *cx, JSObject *obj, uint32 slot)
|
|
3458
3396
|
|
3459
3397
|
JSScope *scope = OBJ_SCOPE(obj);
|
3460
3398
|
LOCKED_OBJ_SET_SLOT(obj, slot, JSVAL_VOID);
|
3461
|
-
if (scope->freeslot == slot + 1)
|
3399
|
+
if (scope->freeslot == slot + 1)
|
3462
3400
|
scope->freeslot = slot;
|
3463
|
-
|
3464
|
-
/* When shrinking, js_ReallocSlots always returns true. */
|
3465
|
-
js_ReallocSlots(cx, obj, slot, JS_FALSE);
|
3466
|
-
}
|
3467
3401
|
}
|
3468
3402
|
|
3403
|
+
|
3404
|
+
/* JSVAL_INT_MAX as a string */
|
3405
|
+
#define JSVAL_INT_MAX_STRING "1073741823"
|
3406
|
+
|
3407
|
+
/*
|
3408
|
+
* Convert string indexes that convert to int jsvals as ints to save memory.
|
3409
|
+
* Care must be taken to use this macro every time a property name is used, or
|
3410
|
+
* else double-sets, incorrect property cache misses, or other mistakes could
|
3411
|
+
* occur.
|
3412
|
+
*/
|
3469
3413
|
jsid
|
3470
|
-
js_CheckForStringIndex(jsid id
|
3471
|
-
JSBool negative)
|
3414
|
+
js_CheckForStringIndex(jsid id)
|
3472
3415
|
{
|
3416
|
+
if (!JSID_IS_ATOM(id))
|
3417
|
+
return id;
|
3418
|
+
|
3419
|
+
JSAtom *atom = JSID_TO_ATOM(id);
|
3420
|
+
JSString *str = ATOM_TO_STRING(atom);
|
3421
|
+
const jschar *s = str->flatChars();
|
3422
|
+
jschar ch = *s;
|
3423
|
+
|
3424
|
+
JSBool negative = (ch == '-');
|
3425
|
+
if (negative)
|
3426
|
+
ch = *++s;
|
3427
|
+
|
3428
|
+
if (!JS7_ISDEC(ch))
|
3429
|
+
return id;
|
3430
|
+
|
3431
|
+
size_t n = str->flatLength() - negative;
|
3432
|
+
if (n > sizeof(JSVAL_INT_MAX_STRING) - 1)
|
3433
|
+
return id;
|
3434
|
+
|
3435
|
+
const jschar *cp = s;
|
3436
|
+
const jschar *end = s + n;
|
3437
|
+
|
3473
3438
|
jsuint index = JS7_UNDEC(*cp++);
|
3474
3439
|
jsuint oldIndex = 0;
|
3475
3440
|
jsuint c = 0;
|
@@ -3489,12 +3454,14 @@ js_CheckForStringIndex(jsid id, const jschar *cp, const jschar *end,
|
|
3489
3454
|
*/
|
3490
3455
|
if (cp != end || (negative && index == 0))
|
3491
3456
|
return id;
|
3457
|
+
|
3492
3458
|
if (oldIndex < JSVAL_INT_MAX / 10 ||
|
3493
3459
|
(oldIndex == JSVAL_INT_MAX / 10 && c <= (JSVAL_INT_MAX % 10))) {
|
3494
3460
|
if (negative)
|
3495
3461
|
index = 0 - index;
|
3496
3462
|
id = INT_TO_JSID((jsint)index);
|
3497
3463
|
}
|
3464
|
+
|
3498
3465
|
return id;
|
3499
3466
|
}
|
3500
3467
|
|
@@ -3511,13 +3478,13 @@ PurgeProtoChain(JSContext *cx, JSObject *obj, jsid id)
|
|
3511
3478
|
}
|
3512
3479
|
JS_LOCK_OBJ(cx, obj);
|
3513
3480
|
scope = OBJ_SCOPE(obj);
|
3514
|
-
sprop =
|
3481
|
+
sprop = scope->lookup(id);
|
3515
3482
|
if (sprop) {
|
3516
3483
|
PCMETER(JS_PROPERTY_CACHE(cx).pcpurges++);
|
3517
|
-
|
3484
|
+
scope->shadowingShapeChange(cx, sprop);
|
3518
3485
|
JS_UNLOCK_SCOPE(cx, scope);
|
3519
3486
|
|
3520
|
-
if (!STOBJ_GET_PARENT(
|
3487
|
+
if (!STOBJ_GET_PARENT(obj)) {
|
3521
3488
|
/*
|
3522
3489
|
* All scope chains end in a global object, so this will change
|
3523
3490
|
* the global shape. jstracer.cpp assumes that the global shape
|
@@ -3527,7 +3494,7 @@ PurgeProtoChain(JSContext *cx, JSObject *obj, jsid id)
|
|
3527
3494
|
}
|
3528
3495
|
return JS_TRUE;
|
3529
3496
|
}
|
3530
|
-
obj =
|
3497
|
+
obj = obj->getProto();
|
3531
3498
|
JS_UNLOCK_SCOPE(cx, scope);
|
3532
3499
|
}
|
3533
3500
|
return JS_FALSE;
|
@@ -3536,8 +3503,8 @@ PurgeProtoChain(JSContext *cx, JSObject *obj, jsid id)
|
|
3536
3503
|
void
|
3537
3504
|
js_PurgeScopeChainHelper(JSContext *cx, JSObject *obj, jsid id)
|
3538
3505
|
{
|
3539
|
-
JS_ASSERT(
|
3540
|
-
PurgeProtoChain(cx,
|
3506
|
+
JS_ASSERT(obj->isDelegate());
|
3507
|
+
PurgeProtoChain(cx, obj->getProto(), id);
|
3541
3508
|
|
3542
3509
|
/*
|
3543
3510
|
* We must purge the scope chain only for Call objects as they are the only
|
@@ -3574,9 +3541,8 @@ js_AddNativeProperty(JSContext *cx, JSObject *obj, jsid id,
|
|
3574
3541
|
sprop = NULL;
|
3575
3542
|
} else {
|
3576
3543
|
/* Convert string indices to integers if appropriate. */
|
3577
|
-
|
3578
|
-
sprop =
|
3579
|
-
flags, shortid);
|
3544
|
+
id = js_CheckForStringIndex(id);
|
3545
|
+
sprop = scope->add(cx, id, getter, setter, slot, attrs, flags, shortid);
|
3580
3546
|
}
|
3581
3547
|
JS_UNLOCK_OBJ(cx, obj);
|
3582
3548
|
return sprop;
|
@@ -3594,8 +3560,7 @@ js_ChangeNativePropertyAttrs(JSContext *cx, JSObject *obj,
|
|
3594
3560
|
if (!scope) {
|
3595
3561
|
sprop = NULL;
|
3596
3562
|
} else {
|
3597
|
-
sprop =
|
3598
|
-
getter, setter);
|
3563
|
+
sprop = scope->change(cx, sprop, attrs, mask, getter, setter);
|
3599
3564
|
}
|
3600
3565
|
JS_UNLOCK_OBJ(cx, obj);
|
3601
3566
|
return sprop;
|
@@ -3603,11 +3568,10 @@ js_ChangeNativePropertyAttrs(JSContext *cx, JSObject *obj,
|
|
3603
3568
|
|
3604
3569
|
JSBool
|
3605
3570
|
js_DefineProperty(JSContext *cx, JSObject *obj, jsid id, jsval value,
|
3606
|
-
JSPropertyOp getter, JSPropertyOp setter, uintN attrs
|
3607
|
-
JSProperty **propp)
|
3571
|
+
JSPropertyOp getter, JSPropertyOp setter, uintN attrs)
|
3608
3572
|
{
|
3609
3573
|
return js_DefineNativeProperty(cx, obj, id, value, getter, setter, attrs,
|
3610
|
-
0, 0,
|
3574
|
+
0, 0, NULL);
|
3611
3575
|
}
|
3612
3576
|
|
3613
3577
|
/*
|
@@ -3628,7 +3592,7 @@ js_DefineProperty(JSContext *cx, JSObject *obj, jsid id, jsval value,
|
|
3628
3592
|
} \
|
3629
3593
|
if (*(vp) != nominal_) { \
|
3630
3594
|
if (SPROP_HAS_VALID_SLOT(sprop, scope)) \
|
3631
|
-
|
3595
|
+
LOCKED_OBJ_WRITE_SLOT(cx, obj, (sprop)->slot, *(vp)); \
|
3632
3596
|
} \
|
3633
3597
|
} \
|
3634
3598
|
JS_END_MACRO
|
@@ -3642,13 +3606,13 @@ js_DefineNativeProperty(JSContext *cx, JSObject *obj, jsid id, jsval value,
|
|
3642
3606
|
JSClass *clasp;
|
3643
3607
|
JSScope *scope;
|
3644
3608
|
JSScopeProperty *sprop;
|
3645
|
-
|
3609
|
+
JSBool added;
|
3646
3610
|
|
3647
3611
|
JS_ASSERT((defineHow & ~(JSDNP_CACHE_RESULT | JSDNP_DONT_PURGE)) == 0);
|
3648
3612
|
js_LeaveTraceIfGlobalObject(cx, obj);
|
3649
3613
|
|
3650
3614
|
/* Convert string indices to integers if appropriate. */
|
3651
|
-
|
3615
|
+
id = js_CheckForStringIndex(id);
|
3652
3616
|
|
3653
3617
|
#if JS_HAS_GETTER_SETTER
|
3654
3618
|
/*
|
@@ -3675,21 +3639,21 @@ js_DefineNativeProperty(JSContext *cx, JSObject *obj, jsid id, jsval value,
|
|
3675
3639
|
if (sprop &&
|
3676
3640
|
pobj == obj &&
|
3677
3641
|
(sprop->attrs & (JSPROP_GETTER | JSPROP_SETTER))) {
|
3678
|
-
sprop =
|
3679
|
-
|
3680
|
-
|
3681
|
-
|
3682
|
-
|
3683
|
-
|
3684
|
-
|
3685
|
-
|
3642
|
+
sprop = OBJ_SCOPE(obj)->change(cx, sprop, attrs,
|
3643
|
+
JSPROP_GETTER | JSPROP_SETTER,
|
3644
|
+
(attrs & JSPROP_GETTER)
|
3645
|
+
? getter
|
3646
|
+
: sprop->getter,
|
3647
|
+
(attrs & JSPROP_SETTER)
|
3648
|
+
? setter
|
3649
|
+
: sprop->setter);
|
3686
3650
|
|
3687
3651
|
/* NB: obj == pobj, so we can share unlock code at the bottom. */
|
3688
3652
|
if (!sprop)
|
3689
3653
|
goto error;
|
3690
3654
|
} else if (prop) {
|
3691
|
-
/* NB: call
|
3692
|
-
|
3655
|
+
/* NB: call JSObject::dropProperty, as pobj might not be native. */
|
3656
|
+
pobj->dropProperty(cx, prop);
|
3693
3657
|
prop = NULL;
|
3694
3658
|
sprop = NULL;
|
3695
3659
|
}
|
@@ -3709,14 +3673,14 @@ js_DefineNativeProperty(JSContext *cx, JSObject *obj, jsid id, jsval value,
|
|
3709
3673
|
* prototype object. See the comment in jscntxt.h before protoHazardShape's
|
3710
3674
|
* member declaration.
|
3711
3675
|
*/
|
3712
|
-
if (
|
3676
|
+
if (obj->isDelegate() && (attrs & (JSPROP_READONLY | JSPROP_SETTER)))
|
3713
3677
|
cx->runtime->protoHazardShape = js_GenerateShape(cx, false);
|
3714
3678
|
|
3715
3679
|
/* Lock if object locking is required by this implementation. */
|
3716
3680
|
JS_LOCK_OBJ(cx, obj);
|
3717
3681
|
|
3718
3682
|
/* Use the object's class getter and setter by default. */
|
3719
|
-
clasp =
|
3683
|
+
clasp = obj->getClass();
|
3720
3684
|
if (!getter)
|
3721
3685
|
getter = clasp->getProperty;
|
3722
3686
|
if (!setter)
|
@@ -3732,21 +3696,21 @@ js_DefineNativeProperty(JSContext *cx, JSObject *obj, jsid id, jsval value,
|
|
3732
3696
|
/* Add a new property, or replace an existing one of the same id. */
|
3733
3697
|
if (clasp->flags & JSCLASS_SHARE_ALL_PROPERTIES)
|
3734
3698
|
attrs |= JSPROP_SHARED;
|
3735
|
-
|
3736
|
-
|
3737
|
-
|
3699
|
+
|
3700
|
+
added = !scope->lookup(id);
|
3701
|
+
sprop = scope->add(cx, id, getter, setter, SPROP_INVALID_SLOT, attrs,
|
3702
|
+
flags, shortid);
|
3738
3703
|
if (!sprop)
|
3739
3704
|
goto error;
|
3740
|
-
added = true;
|
3741
3705
|
}
|
3742
3706
|
|
3743
3707
|
/* Store value before calling addProperty, in case the latter GC's. */
|
3744
3708
|
if (SPROP_HAS_VALID_SLOT(sprop, scope))
|
3745
|
-
|
3709
|
+
LOCKED_OBJ_WRITE_SLOT(cx, obj, sprop->slot, value);
|
3746
3710
|
|
3747
3711
|
/* XXXbe called with lock held */
|
3748
3712
|
ADD_PROPERTY_HELPER(cx, clasp, obj, scope, sprop, &value,
|
3749
|
-
|
3713
|
+
scope->remove(cx, id);
|
3750
3714
|
goto error);
|
3751
3715
|
|
3752
3716
|
if (defineHow & JSDNP_CACHE_RESULT) {
|
@@ -3794,23 +3758,18 @@ js_LookupPropertyWithFlags(JSContext *cx, JSObject *obj, jsid id, uintN flags,
|
|
3794
3758
|
JSBool ok;
|
3795
3759
|
|
3796
3760
|
/* Convert string indices to integers if appropriate. */
|
3797
|
-
|
3761
|
+
id = js_CheckForStringIndex(id);
|
3798
3762
|
|
3799
3763
|
/* Search scopes starting with obj and following the prototype link. */
|
3800
3764
|
start = obj;
|
3801
3765
|
for (protoIndex = 0; ; protoIndex++) {
|
3802
3766
|
JS_LOCK_OBJ(cx, obj);
|
3803
3767
|
scope = OBJ_SCOPE(obj);
|
3804
|
-
|
3805
|
-
sprop = SCOPE_GET_PROPERTY(scope, id);
|
3806
|
-
} else {
|
3807
|
-
/* Shared prototype scope: try resolve before lookup. */
|
3808
|
-
sprop = NULL;
|
3809
|
-
}
|
3768
|
+
sprop = scope->lookup(id);
|
3810
3769
|
|
3811
3770
|
/* Try obj's class resolve hook if id was not found in obj's scope. */
|
3812
3771
|
if (!sprop) {
|
3813
|
-
clasp =
|
3772
|
+
clasp = obj->getClass();
|
3814
3773
|
resolve = clasp->resolve;
|
3815
3774
|
if (resolve != JS_ResolveStub) {
|
3816
3775
|
/* Avoid recursion on (obj, id) already being resolved on cx. */
|
@@ -3840,7 +3799,7 @@ js_LookupPropertyWithFlags(JSContext *cx, JSObject *obj, jsid id, uintN flags,
|
|
3840
3799
|
if (clasp->flags & JSCLASS_NEW_RESOLVE) {
|
3841
3800
|
newresolve = (JSNewResolveOp)resolve;
|
3842
3801
|
if (flags == JSRESOLVE_INFER)
|
3843
|
-
flags =
|
3802
|
+
flags = js_InferFlags(cx, flags);
|
3844
3803
|
obj2 = (clasp->flags & JSCLASS_NEW_RESOLVE_GETS_START)
|
3845
3804
|
? start
|
3846
3805
|
: NULL;
|
@@ -3869,7 +3828,7 @@ js_LookupPropertyWithFlags(JSContext *cx, JSObject *obj, jsid id, uintN flags,
|
|
3869
3828
|
if (!OBJ_IS_NATIVE(obj2)) {
|
3870
3829
|
/* Whoops, newresolve handed back a foreign obj2. */
|
3871
3830
|
JS_ASSERT(obj2 != obj);
|
3872
|
-
ok =
|
3831
|
+
ok = obj2->lookupProperty(cx, id, objp, propp);
|
3873
3832
|
if (!ok || *propp)
|
3874
3833
|
goto cleanup;
|
3875
3834
|
JS_LOCK_OBJ(cx, obj2);
|
@@ -3883,11 +3842,12 @@ js_LookupPropertyWithFlags(JSContext *cx, JSObject *obj, jsid id, uintN flags,
|
|
3883
3842
|
* "too bad!" case.
|
3884
3843
|
*/
|
3885
3844
|
scope = OBJ_SCOPE(obj2);
|
3886
|
-
if (scope->
|
3887
|
-
sprop =
|
3845
|
+
if (scope->owned())
|
3846
|
+
sprop = scope->lookup(id);
|
3888
3847
|
}
|
3889
3848
|
if (sprop) {
|
3890
|
-
JS_ASSERT(
|
3849
|
+
JS_ASSERT(scope == OBJ_SCOPE(obj2));
|
3850
|
+
JS_ASSERT(scope->owned());
|
3891
3851
|
obj = obj2;
|
3892
3852
|
} else if (obj2 != obj) {
|
3893
3853
|
if (OBJ_IS_NATIVE(obj2))
|
@@ -3907,8 +3867,8 @@ js_LookupPropertyWithFlags(JSContext *cx, JSObject *obj, jsid id, uintN flags,
|
|
3907
3867
|
JS_LOCK_OBJ(cx, obj);
|
3908
3868
|
JS_ASSERT(OBJ_IS_NATIVE(obj));
|
3909
3869
|
scope = OBJ_SCOPE(obj);
|
3910
|
-
if (scope->
|
3911
|
-
sprop =
|
3870
|
+
if (scope->owned())
|
3871
|
+
sprop = scope->lookup(id);
|
3912
3872
|
}
|
3913
3873
|
|
3914
3874
|
cleanup:
|
@@ -3923,21 +3883,34 @@ js_LookupPropertyWithFlags(JSContext *cx, JSObject *obj, jsid id, uintN flags,
|
|
3923
3883
|
if (sprop) {
|
3924
3884
|
SCOPE_DEPTH_ACCUM(&cx->runtime->protoLookupDepthStats, protoIndex);
|
3925
3885
|
JS_ASSERT(OBJ_SCOPE(obj) == scope);
|
3926
|
-
*objp =
|
3886
|
+
*objp = obj;
|
3927
3887
|
|
3928
3888
|
*propp = (JSProperty *) sprop;
|
3929
3889
|
return protoIndex;
|
3930
3890
|
}
|
3931
3891
|
|
3932
|
-
proto =
|
3892
|
+
proto = obj->getProto();
|
3933
3893
|
JS_UNLOCK_OBJ(cx, obj);
|
3934
3894
|
if (!proto)
|
3935
3895
|
break;
|
3936
3896
|
if (!OBJ_IS_NATIVE(proto)) {
|
3937
|
-
if (!
|
3897
|
+
if (!proto->lookupProperty(cx, id, objp, propp))
|
3938
3898
|
return -1;
|
3939
3899
|
return protoIndex + 1;
|
3940
3900
|
}
|
3901
|
+
|
3902
|
+
/*
|
3903
|
+
* Correctness elsewhere (the property cache and JIT), not here in
|
3904
|
+
* particular, depends on all the objects on the prototype chain having
|
3905
|
+
* different scopes. This is just a convenient place to check.
|
3906
|
+
*
|
3907
|
+
* Cloned Block objects do in fact share their prototype's scope -- but
|
3908
|
+
* that is really just a memory-saving hack, safe because Blocks cannot
|
3909
|
+
* be on the prototype chain of other objects.
|
3910
|
+
*/
|
3911
|
+
JS_ASSERT_IF(OBJ_GET_CLASS(cx, obj) != &js_BlockClass,
|
3912
|
+
OBJ_SCOPE(obj) != OBJ_SCOPE(proto));
|
3913
|
+
|
3941
3914
|
obj = proto;
|
3942
3915
|
}
|
3943
3916
|
|
@@ -3947,25 +3920,6 @@ out:
|
|
3947
3920
|
return protoIndex;
|
3948
3921
|
}
|
3949
3922
|
|
3950
|
-
/*
|
3951
|
-
* We cache name lookup results only for the global object or for native
|
3952
|
-
* non-global objects without prototype or with prototype that never mutates,
|
3953
|
-
* see bug 462734 and bug 487039.
|
3954
|
-
*/
|
3955
|
-
static inline bool
|
3956
|
-
IsCacheableNonGlobalScope(JSObject *obj)
|
3957
|
-
{
|
3958
|
-
JS_ASSERT(STOBJ_GET_PARENT(obj));
|
3959
|
-
|
3960
|
-
JSClass *clasp = STOBJ_GET_CLASS(obj);
|
3961
|
-
bool cacheable = (clasp == &js_CallClass ||
|
3962
|
-
clasp == &js_BlockClass ||
|
3963
|
-
clasp == &js_DeclEnvClass);
|
3964
|
-
|
3965
|
-
JS_ASSERT_IF(cacheable, obj->map->ops->lookupProperty == js_LookupProperty);
|
3966
|
-
return cacheable;
|
3967
|
-
}
|
3968
|
-
|
3969
3923
|
JSPropCacheEntry *
|
3970
3924
|
js_FindPropertyHelper(JSContext *cx, jsid id, JSBool cacheResult,
|
3971
3925
|
JSObject **objp, JSObject **pobjp, JSProperty **propp)
|
@@ -3984,7 +3938,7 @@ js_FindPropertyHelper(JSContext *cx, jsid id, JSBool cacheResult,
|
|
3984
3938
|
parent = OBJ_GET_PARENT(cx, obj);
|
3985
3939
|
for (scopeIndex = 0;
|
3986
3940
|
parent
|
3987
|
-
?
|
3941
|
+
? js_IsCacheableNonGlobalScope(obj)
|
3988
3942
|
: obj->map->ops->lookupProperty == js_LookupProperty;
|
3989
3943
|
++scopeIndex) {
|
3990
3944
|
protoIndex =
|
@@ -4004,9 +3958,8 @@ js_FindPropertyHelper(JSContext *cx, jsid id, JSBool cacheResult,
|
|
4004
3958
|
* Block instances on the scope chain are immutable and
|
4005
3959
|
* always share their scope with compile-time prototypes.
|
4006
3960
|
*/
|
4007
|
-
JS_ASSERT(pobj ==
|
4008
|
-
JS_ASSERT(
|
4009
|
-
JS_ASSERT(protoIndex == 1);
|
3961
|
+
JS_ASSERT(pobj == obj);
|
3962
|
+
JS_ASSERT(protoIndex == 0);
|
4010
3963
|
} else {
|
4011
3964
|
/* Call and DeclEnvClass objects have no prototypes. */
|
4012
3965
|
JS_ASSERT(!OBJ_GET_PROTO(cx, obj));
|
@@ -4032,7 +3985,7 @@ js_FindPropertyHelper(JSContext *cx, jsid id, JSBool cacheResult,
|
|
4032
3985
|
}
|
4033
3986
|
|
4034
3987
|
for (;;) {
|
4035
|
-
if (!
|
3988
|
+
if (!obj->lookupProperty(cx, id, &pobj, &prop))
|
4036
3989
|
return NULL;
|
4037
3990
|
if (prop) {
|
4038
3991
|
PCMETER(JS_PROPERTY_CACHE(cx).nofills++);
|
@@ -4041,7 +3994,7 @@ js_FindPropertyHelper(JSContext *cx, jsid id, JSBool cacheResult,
|
|
4041
3994
|
|
4042
3995
|
/*
|
4043
3996
|
* We conservatively assume that a resolve hook could mutate the scope
|
4044
|
-
* chain during
|
3997
|
+
* chain during JSObject::lookupProperty. So we read parent here again.
|
4045
3998
|
*/
|
4046
3999
|
parent = OBJ_GET_PARENT(cx, obj);
|
4047
4000
|
if (!parent) {
|
@@ -4084,7 +4037,7 @@ js_FindIdentifierBase(JSContext *cx, JSObject *scopeChain, jsid id)
|
|
4084
4037
|
* farther checks or lookups. For details see the JSOP_BINDNAME case of
|
4085
4038
|
* js_Interpret.
|
4086
4039
|
*/
|
4087
|
-
for (int scopeIndex = 0;
|
4040
|
+
for (int scopeIndex = 0; js_IsCacheableNonGlobalScope(obj); scopeIndex++) {
|
4088
4041
|
JSObject *pobj;
|
4089
4042
|
JSProperty *prop;
|
4090
4043
|
int protoIndex = js_LookupPropertyWithFlags(cx, obj, id,
|
@@ -4116,17 +4069,17 @@ js_FindIdentifierBase(JSContext *cx, JSObject *scopeChain, jsid id)
|
|
4116
4069
|
do {
|
4117
4070
|
JSObject *pobj;
|
4118
4071
|
JSProperty *prop;
|
4119
|
-
if (!
|
4072
|
+
if (!obj->lookupProperty(cx, id, &pobj, &prop))
|
4120
4073
|
return NULL;
|
4121
4074
|
if (prop) {
|
4122
|
-
|
4075
|
+
pobj->dropProperty(cx, prop);
|
4123
4076
|
break;
|
4124
4077
|
}
|
4125
4078
|
|
4126
4079
|
/*
|
4127
4080
|
* We conservatively assume that a resolve hook could mutate the scope
|
4128
|
-
* chain during
|
4129
|
-
* null here even if it wasn't before the lookup.
|
4081
|
+
* chain during JSObject::lookupProperty. So we must check if parent is
|
4082
|
+
* not null here even if it wasn't before the lookup.
|
4130
4083
|
*/
|
4131
4084
|
JSObject *parent = OBJ_GET_PARENT(cx, obj);
|
4132
4085
|
if (!parent)
|
@@ -4151,7 +4104,6 @@ js_NativeGet(JSContext *cx, JSObject *obj, JSObject *pobj,
|
|
4151
4104
|
JS_ASSERT(OBJ_IS_NATIVE(pobj));
|
4152
4105
|
JS_ASSERT(JS_IS_OBJ_LOCKED(cx, pobj));
|
4153
4106
|
scope = OBJ_SCOPE(pobj);
|
4154
|
-
JS_ASSERT(scope->object == pobj);
|
4155
4107
|
|
4156
4108
|
slot = sprop->slot;
|
4157
4109
|
*vp = (slot != SPROP_INVALID_SLOT)
|
@@ -4171,10 +4123,9 @@ js_NativeGet(JSContext *cx, JSObject *obj, JSObject *pobj,
|
|
4171
4123
|
return JS_FALSE;
|
4172
4124
|
|
4173
4125
|
JS_LOCK_SCOPE(cx, scope);
|
4174
|
-
JS_ASSERT(scope->object == pobj);
|
4175
4126
|
if (SLOT_IN_SCOPE(slot, scope) &&
|
4176
4127
|
(JS_LIKELY(cx->runtime->propertyRemovals == sample) ||
|
4177
|
-
|
4128
|
+
scope->has(sprop))) {
|
4178
4129
|
LOCKED_OBJ_SET_SLOT(pobj, slot, *vp);
|
4179
4130
|
}
|
4180
4131
|
|
@@ -4195,7 +4146,6 @@ js_NativeSet(JSContext *cx, JSObject *obj, JSScopeProperty *sprop, jsval *vp)
|
|
4195
4146
|
JS_ASSERT(OBJ_IS_NATIVE(obj));
|
4196
4147
|
JS_ASSERT(JS_IS_OBJ_LOCKED(cx, obj));
|
4197
4148
|
scope = OBJ_SCOPE(obj);
|
4198
|
-
JS_ASSERT(scope->object == obj || (sprop->attrs & JSPROP_SHARED));
|
4199
4149
|
|
4200
4150
|
slot = sprop->slot;
|
4201
4151
|
if (slot != SPROP_INVALID_SLOT) {
|
@@ -4209,15 +4159,9 @@ js_NativeSet(JSContext *cx, JSObject *obj, JSScopeProperty *sprop, jsval *vp)
|
|
4209
4159
|
* Allow API consumers to create shared properties with stub setters.
|
4210
4160
|
* Such properties lack value storage, so setting them is like writing
|
4211
4161
|
* to /dev/null.
|
4212
|
-
*
|
4213
|
-
* But we can't short-circuit if there's a scripted getter or setter
|
4214
|
-
* since we might need to throw. In that case, we let SPROP_SET
|
4215
|
-
* decide whether to throw an exception. See bug 478047.
|
4216
4162
|
*/
|
4217
|
-
if (
|
4218
|
-
JS_ASSERT(!(sprop->attrs & JSPROP_SETTER));
|
4163
|
+
if (SPROP_HAS_STUB_SETTER(sprop))
|
4219
4164
|
return JS_TRUE;
|
4220
|
-
}
|
4221
4165
|
}
|
4222
4166
|
|
4223
4167
|
sample = cx->runtime->propertyRemovals;
|
@@ -4229,12 +4173,11 @@ js_NativeSet(JSContext *cx, JSObject *obj, JSScopeProperty *sprop, jsval *vp)
|
|
4229
4173
|
return JS_FALSE;
|
4230
4174
|
|
4231
4175
|
JS_LOCK_SCOPE(cx, scope);
|
4232
|
-
JS_ASSERT(scope->object == obj || (sprop->attrs & JSPROP_SHARED));
|
4233
4176
|
if (SLOT_IN_SCOPE(slot, scope) &&
|
4234
4177
|
(JS_LIKELY(cx->runtime->propertyRemovals == sample) ||
|
4235
|
-
|
4178
|
+
scope->has(sprop))) {
|
4236
4179
|
set_slot:
|
4237
|
-
|
4180
|
+
LOCKED_OBJ_WRITE_SLOT(cx, obj, slot, *vp);
|
4238
4181
|
}
|
4239
4182
|
|
4240
4183
|
return JS_TRUE;
|
@@ -4251,7 +4194,7 @@ js_GetPropertyHelper(JSContext *cx, JSObject *obj, jsid id, JSBool cacheResult,
|
|
4251
4194
|
|
4252
4195
|
JS_ASSERT_IF(cacheResult, !JS_ON_TRACE(cx));
|
4253
4196
|
/* Convert string indices to integers if appropriate. */
|
4254
|
-
|
4197
|
+
id = js_CheckForStringIndex(id);
|
4255
4198
|
|
4256
4199
|
aobj = js_GetProtoIfDenseArray(cx, obj);
|
4257
4200
|
protoIndex = js_LookupPropertyWithFlags(cx, aobj, id, cx->resolveFlags,
|
@@ -4284,7 +4227,8 @@ js_GetPropertyHelper(JSContext *cx, JSObject *obj, jsid id, JSBool cacheResult,
|
|
4284
4227
|
flags = JSREPORT_ERROR;
|
4285
4228
|
} else {
|
4286
4229
|
if (!JS_HAS_STRICT_OPTION(cx) ||
|
4287
|
-
(op != JSOP_GETPROP && op != JSOP_GETELEM)
|
4230
|
+
(op != JSOP_GETPROP && op != JSOP_GETELEM) ||
|
4231
|
+
js_CurrentPCIsInImacro(cx)) {
|
4288
4232
|
return JS_TRUE;
|
4289
4233
|
}
|
4290
4234
|
|
@@ -4319,8 +4263,8 @@ js_GetPropertyHelper(JSContext *cx, JSObject *obj, jsid id, JSBool cacheResult,
|
|
4319
4263
|
}
|
4320
4264
|
|
4321
4265
|
if (!OBJ_IS_NATIVE(obj2)) {
|
4322
|
-
|
4323
|
-
return
|
4266
|
+
obj2->dropProperty(cx, prop);
|
4267
|
+
return obj2->getProperty(cx, id, vp);
|
4324
4268
|
}
|
4325
4269
|
|
4326
4270
|
sprop = (JSScopeProperty *) prop;
|
@@ -4347,6 +4291,8 @@ JSBool
|
|
4347
4291
|
js_GetMethod(JSContext *cx, JSObject *obj, jsid id, JSBool cacheResult,
|
4348
4292
|
jsval *vp)
|
4349
4293
|
{
|
4294
|
+
JSAutoResolveFlags rf(cx, JSRESOLVE_QUALIFIED);
|
4295
|
+
|
4350
4296
|
if (obj->map->ops == &js_ObjectOps ||
|
4351
4297
|
obj->map->ops->getProperty == js_GetProperty) {
|
4352
4298
|
return js_GetPropertyHelper(cx, obj, id, cacheResult, vp);
|
@@ -4356,7 +4302,7 @@ js_GetMethod(JSContext *cx, JSObject *obj, jsid id, JSBool cacheResult,
|
|
4356
4302
|
if (OBJECT_IS_XML(cx, obj))
|
4357
4303
|
return js_GetXMLMethod(cx, obj, id, vp);
|
4358
4304
|
#endif
|
4359
|
-
return
|
4305
|
+
return obj->getProperty(cx, id, vp);
|
4360
4306
|
}
|
4361
4307
|
|
4362
4308
|
JS_FRIEND_API(JSBool)
|
@@ -4403,13 +4349,13 @@ js_SetPropertyHelper(JSContext *cx, JSObject *obj, jsid id, JSBool cacheResult,
|
|
4403
4349
|
JS_ASSERT_NOT_ON_TRACE(cx);
|
4404
4350
|
|
4405
4351
|
/* Convert string indices to integers if appropriate. */
|
4406
|
-
|
4352
|
+
id = js_CheckForStringIndex(id);
|
4407
4353
|
|
4408
4354
|
/*
|
4409
4355
|
* We peek at OBJ_SCOPE(obj) without locking obj. Any race means a failure
|
4410
4356
|
* to seal before sharing, which is inherently ambiguous.
|
4411
4357
|
*/
|
4412
|
-
if (
|
4358
|
+
if (OBJ_SCOPE(obj)->sealed() && OBJ_SCOPE(obj)->object == obj) {
|
4413
4359
|
flags = JSREPORT_ERROR;
|
4414
4360
|
goto read_only_error;
|
4415
4361
|
}
|
@@ -4420,7 +4366,7 @@ js_SetPropertyHelper(JSContext *cx, JSObject *obj, jsid id, JSBool cacheResult,
|
|
4420
4366
|
return JS_FALSE;
|
4421
4367
|
if (prop) {
|
4422
4368
|
if (!OBJ_IS_NATIVE(pobj)) {
|
4423
|
-
|
4369
|
+
pobj->dropProperty(cx, prop);
|
4424
4370
|
prop = NULL;
|
4425
4371
|
}
|
4426
4372
|
} else {
|
@@ -4436,9 +4382,9 @@ js_SetPropertyHelper(JSContext *cx, JSObject *obj, jsid id, JSBool cacheResult,
|
|
4436
4382
|
* Now either sprop is null, meaning id was not found in obj or one of its
|
4437
4383
|
* prototypes; or sprop is non-null, meaning id was found in pobj's scope.
|
4438
4384
|
* If JS_THREADSAFE and sprop is non-null, then scope is locked, and sprop
|
4439
|
-
* is held: we must
|
4440
|
-
* (the two are equivalent for native objects, but we use
|
4441
|
-
* because it is cheaper).
|
4385
|
+
* is held: we must JSObject::dropProperty or JS_UNLOCK_SCOPE before we
|
4386
|
+
* return (the two are equivalent for native objects, but we use
|
4387
|
+
* JS_UNLOCK_SCOPE because it is cheaper).
|
4442
4388
|
*/
|
4443
4389
|
attrs = JSPROP_ENUMERATE;
|
4444
4390
|
flags = 0;
|
@@ -4457,7 +4403,7 @@ js_SetPropertyHelper(JSContext *cx, JSObject *obj, jsid id, JSBool cacheResult,
|
|
4457
4403
|
|
4458
4404
|
attrs = sprop->attrs;
|
4459
4405
|
if ((attrs & JSPROP_READONLY) ||
|
4460
|
-
(
|
4406
|
+
(scope->sealed() && (attrs & JSPROP_SHARED))) {
|
4461
4407
|
JS_UNLOCK_SCOPE(cx, scope);
|
4462
4408
|
|
4463
4409
|
/*
|
@@ -4476,8 +4422,10 @@ js_SetPropertyHelper(JSContext *cx, JSObject *obj, jsid id, JSBool cacheResult,
|
|
4476
4422
|
if (cacheResult)
|
4477
4423
|
TRACE_2(SetPropHit, JS_NO_PROP_CACHE_FILL, sprop);
|
4478
4424
|
return JS_TRUE;
|
4425
|
+
#ifdef JS_TRACER
|
4479
4426
|
error: // TRACE_2 jumps here in case of error.
|
4480
4427
|
return JS_FALSE;
|
4428
|
+
#endif
|
4481
4429
|
}
|
4482
4430
|
|
4483
4431
|
/* Strict mode: report a read-only strict warning. */
|
@@ -4558,8 +4506,8 @@ js_SetPropertyHelper(JSContext *cx, JSObject *obj, jsid id, JSBool cacheResult,
|
|
4558
4506
|
}
|
4559
4507
|
if (clasp->flags & JSCLASS_SHARE_ALL_PROPERTIES)
|
4560
4508
|
attrs |= JSPROP_SHARED;
|
4561
|
-
sprop =
|
4562
|
-
|
4509
|
+
sprop = scope->add(cx, id, getter, setter, SPROP_INVALID_SLOT, attrs,
|
4510
|
+
flags, shortid);
|
4563
4511
|
if (!sprop) {
|
4564
4512
|
JS_UNLOCK_SCOPE(cx, scope);
|
4565
4513
|
return JS_FALSE;
|
@@ -4575,7 +4523,7 @@ js_SetPropertyHelper(JSContext *cx, JSObject *obj, jsid id, JSBool cacheResult,
|
|
4575
4523
|
|
4576
4524
|
/* XXXbe called with obj locked */
|
4577
4525
|
ADD_PROPERTY_HELPER(cx, clasp, obj, scope, sprop, vp,
|
4578
|
-
|
4526
|
+
scope->remove(cx, id);
|
4579
4527
|
JS_UNLOCK_SCOPE(cx, scope);
|
4580
4528
|
return JS_FALSE);
|
4581
4529
|
added = true;
|
@@ -4621,15 +4569,15 @@ js_GetAttributes(JSContext *cx, JSObject *obj, jsid id, JSProperty *prop,
|
|
4621
4569
|
return JS_TRUE;
|
4622
4570
|
}
|
4623
4571
|
if (!OBJ_IS_NATIVE(obj)) {
|
4624
|
-
ok =
|
4625
|
-
|
4572
|
+
ok = obj->getAttributes(cx, id, prop, attrsp);
|
4573
|
+
obj->dropProperty(cx, prop);
|
4626
4574
|
return ok;
|
4627
4575
|
}
|
4628
4576
|
}
|
4629
4577
|
sprop = (JSScopeProperty *)prop;
|
4630
4578
|
*attrsp = sprop->attrs;
|
4631
4579
|
if (noprop)
|
4632
|
-
|
4580
|
+
obj->dropProperty(cx, prop);
|
4633
4581
|
return JS_TRUE;
|
4634
4582
|
}
|
4635
4583
|
|
@@ -4647,8 +4595,8 @@ js_SetAttributes(JSContext *cx, JSObject *obj, jsid id, JSProperty *prop,
|
|
4647
4595
|
if (!prop)
|
4648
4596
|
return JS_TRUE;
|
4649
4597
|
if (!OBJ_IS_NATIVE(obj)) {
|
4650
|
-
ok =
|
4651
|
-
|
4598
|
+
ok = obj->setAttributes(cx, id, prop, attrsp);
|
4599
|
+
obj->dropProperty(cx, prop);
|
4652
4600
|
return ok;
|
4653
4601
|
}
|
4654
4602
|
}
|
@@ -4656,7 +4604,7 @@ js_SetAttributes(JSContext *cx, JSObject *obj, jsid id, JSProperty *prop,
|
|
4656
4604
|
sprop = js_ChangeNativePropertyAttrs(cx, obj, sprop, *attrsp, 0,
|
4657
4605
|
sprop->getter, sprop->setter);
|
4658
4606
|
if (noprop)
|
4659
|
-
|
4607
|
+
obj->dropProperty(cx, prop);
|
4660
4608
|
return (sprop != NULL);
|
4661
4609
|
}
|
4662
4610
|
|
@@ -4672,7 +4620,7 @@ js_DeleteProperty(JSContext *cx, JSObject *obj, jsid id, jsval *rval)
|
|
4672
4620
|
*rval = JSVAL_TRUE;
|
4673
4621
|
|
4674
4622
|
/* Convert string indices to integers if appropriate. */
|
4675
|
-
|
4623
|
+
id = js_CheckForStringIndex(id);
|
4676
4624
|
|
4677
4625
|
if (!js_LookupProperty(cx, obj, id, &proto, &prop))
|
4678
4626
|
return JS_FALSE;
|
@@ -4689,7 +4637,7 @@ js_DeleteProperty(JSContext *cx, JSObject *obj, jsid id, jsval *rval)
|
|
4689
4637
|
if (SPROP_IS_SHARED_PERMANENT(sprop))
|
4690
4638
|
*rval = JSVAL_FALSE;
|
4691
4639
|
}
|
4692
|
-
|
4640
|
+
proto->dropProperty(cx, prop);
|
4693
4641
|
if (*rval == JSVAL_FALSE)
|
4694
4642
|
return JS_TRUE;
|
4695
4643
|
}
|
@@ -4705,15 +4653,14 @@ js_DeleteProperty(JSContext *cx, JSObject *obj, jsid id, jsval *rval)
|
|
4705
4653
|
|
4706
4654
|
sprop = (JSScopeProperty *)prop;
|
4707
4655
|
if (sprop->attrs & JSPROP_PERMANENT) {
|
4708
|
-
|
4656
|
+
obj->dropProperty(cx, prop);
|
4709
4657
|
*rval = JSVAL_FALSE;
|
4710
4658
|
return JS_TRUE;
|
4711
4659
|
}
|
4712
4660
|
|
4713
4661
|
/* XXXbe called with obj locked */
|
4714
|
-
if (!
|
4715
|
-
|
4716
|
-
OBJ_DROP_PROPERTY(cx, obj, prop);
|
4662
|
+
if (!obj->getClass()->delProperty(cx, obj, SPROP_USERID(sprop), rval)) {
|
4663
|
+
obj->dropProperty(cx, prop);
|
4717
4664
|
return JS_FALSE;
|
4718
4665
|
}
|
4719
4666
|
|
@@ -4721,8 +4668,8 @@ js_DeleteProperty(JSContext *cx, JSObject *obj, jsid id, jsval *rval)
|
|
4721
4668
|
if (SPROP_HAS_VALID_SLOT(sprop, scope))
|
4722
4669
|
GC_POKE(cx, LOCKED_OBJ_GET_SLOT(obj, sprop->slot));
|
4723
4670
|
|
4724
|
-
ok =
|
4725
|
-
|
4671
|
+
ok = scope->remove(cx, id);
|
4672
|
+
obj->dropProperty(cx, prop);
|
4726
4673
|
return ok;
|
4727
4674
|
}
|
4728
4675
|
|
@@ -4735,6 +4682,49 @@ js_DefaultValue(JSContext *cx, JSObject *obj, JSType hint, jsval *vp)
|
|
4735
4682
|
v = save = OBJECT_TO_JSVAL(obj);
|
4736
4683
|
switch (hint) {
|
4737
4684
|
case JSTYPE_STRING:
|
4685
|
+
/*
|
4686
|
+
* Optimize for String objects with standard toString methods. Support
|
4687
|
+
* new String(...) instances whether mutated to have their own scope or
|
4688
|
+
* not, as well as direct String.prototype references.
|
4689
|
+
*/
|
4690
|
+
if (OBJ_GET_CLASS(cx, obj) == &js_StringClass) {
|
4691
|
+
jsid toStringId = ATOM_TO_JSID(cx->runtime->atomState.toStringAtom);
|
4692
|
+
|
4693
|
+
JS_LOCK_OBJ(cx, obj);
|
4694
|
+
JSScope *scope = OBJ_SCOPE(obj);
|
4695
|
+
JSScopeProperty *sprop = scope->lookup(toStringId);
|
4696
|
+
JSObject *pobj = obj;
|
4697
|
+
|
4698
|
+
if (!sprop) {
|
4699
|
+
pobj = obj->getProto();
|
4700
|
+
|
4701
|
+
if (pobj && OBJ_GET_CLASS(cx, pobj) == &js_StringClass) {
|
4702
|
+
JS_UNLOCK_SCOPE(cx, scope);
|
4703
|
+
JS_LOCK_OBJ(cx, pobj);
|
4704
|
+
scope = OBJ_SCOPE(pobj);
|
4705
|
+
sprop = scope->lookup(toStringId);
|
4706
|
+
}
|
4707
|
+
}
|
4708
|
+
|
4709
|
+
if (sprop &&
|
4710
|
+
SPROP_HAS_STUB_GETTER(sprop) &&
|
4711
|
+
SPROP_HAS_VALID_SLOT(sprop, scope)) {
|
4712
|
+
jsval fval = LOCKED_OBJ_GET_SLOT(pobj, sprop->slot);
|
4713
|
+
|
4714
|
+
if (VALUE_IS_FUNCTION(cx, fval)) {
|
4715
|
+
JSObject *funobj = JSVAL_TO_OBJECT(fval);
|
4716
|
+
JSFunction *fun = GET_FUNCTION_PRIVATE(cx, funobj);
|
4717
|
+
|
4718
|
+
if (FUN_FAST_NATIVE(fun) == js_str_toString) {
|
4719
|
+
JS_UNLOCK_SCOPE(cx, scope);
|
4720
|
+
*vp = obj->fslots[JSSLOT_PRIMITIVE_THIS];
|
4721
|
+
return JS_TRUE;
|
4722
|
+
}
|
4723
|
+
}
|
4724
|
+
}
|
4725
|
+
JS_UNLOCK_SCOPE(cx, scope);
|
4726
|
+
}
|
4727
|
+
|
4738
4728
|
/*
|
4739
4729
|
* Propagate the exception if js_TryMethod finds an appropriate
|
4740
4730
|
* method, and calling that method returned failure.
|
@@ -4795,69 +4785,81 @@ out:
|
|
4795
4785
|
* in the object. Instead for the empty enumerator the code uses JSVAL_ZERO as
|
4796
4786
|
* the enumeration state.
|
4797
4787
|
*
|
4798
|
-
*
|
4788
|
+
* JSThreadData.nativeEnumCache caches the enumerators using scope's shape to
|
4799
4789
|
* avoid repeated scanning of scopes for enumerable properties. The cache
|
4800
4790
|
* entry is either JSNativeEnumerator* or, for the empty enumerator, the shape
|
4801
4791
|
* value itself. The latter is stored as (shape << 1) | 1 to ensure that it is
|
4802
4792
|
* always different from JSNativeEnumerator* values.
|
4793
|
+
*
|
4794
|
+
* We cache the enumerators in the JSENUMERATE_INIT case of js_Enumerate, not
|
4795
|
+
* during JSENUMERATE_DESTROY. The GC can invoke the latter case during the
|
4796
|
+
* finalization when JSNativeEnumerator contains finalized ids and the
|
4797
|
+
* enumerator must be freed.
|
4803
4798
|
*/
|
4804
4799
|
struct JSNativeEnumerator {
|
4805
4800
|
/*
|
4806
4801
|
* The index into the ids array. It runs from the length down to 1 when
|
4807
4802
|
* the enumerator is running. It is 0 when the enumerator is finished and
|
4808
|
-
* can be reused on a cache hit.
|
4809
|
-
|
4810
|
-
|
4811
|
-
jsword cursor;
|
4812
|
-
|
4803
|
+
* can be reused on a cache hit.
|
4804
|
+
*/
|
4805
|
+
uint32 cursor;
|
4813
4806
|
uint32 length; /* length of ids array */
|
4814
4807
|
uint32 shape; /* "shape" number -- see jsscope.h */
|
4815
|
-
JSNativeEnumerator *next; /* list linking */
|
4816
4808
|
jsid ids[1]; /* enumeration id array */
|
4809
|
+
|
4810
|
+
static inline size_t size(uint32 length) {
|
4811
|
+
JS_ASSERT(length != 0);
|
4812
|
+
return offsetof(JSNativeEnumerator, ids) +
|
4813
|
+
(size_t) length * sizeof(jsid);
|
4814
|
+
}
|
4815
|
+
|
4816
|
+
bool isFinished() const {
|
4817
|
+
return cursor == 0;
|
4818
|
+
}
|
4819
|
+
|
4820
|
+
void mark(JSTracer *trc) {
|
4821
|
+
JS_ASSERT(length >= 1);
|
4822
|
+
jsid *cursor = ids;
|
4823
|
+
jsid *end = ids + length;
|
4824
|
+
do {
|
4825
|
+
js_TraceId(trc, *cursor);
|
4826
|
+
} while (++cursor != end);
|
4827
|
+
}
|
4817
4828
|
};
|
4818
4829
|
|
4819
4830
|
/* The tagging of shape values requires one bit. */
|
4820
4831
|
JS_STATIC_ASSERT((jsuword) SHAPE_OVERFLOW_BIT <=
|
4821
4832
|
((jsuword) 1 << (JS_BITS_PER_WORD - 1)));
|
4822
4833
|
|
4823
|
-
static
|
4824
|
-
|
4834
|
+
static void
|
4835
|
+
SetEnumeratorCache(JSContext *cx, jsuword *cachep, jsuword newcache)
|
4825
4836
|
{
|
4826
|
-
|
4827
|
-
|
4837
|
+
jsuword old = *cachep;
|
4838
|
+
*cachep = newcache;
|
4839
|
+
if (!(old & jsuword(1)) && old) {
|
4840
|
+
/* Free the cached enumerator unless it is running. */
|
4841
|
+
JSNativeEnumerator *ne = reinterpret_cast<JSNativeEnumerator *>(old);
|
4842
|
+
if (ne->isFinished())
|
4843
|
+
cx->free(ne);
|
4844
|
+
}
|
4828
4845
|
}
|
4829
4846
|
|
4830
|
-
/*
|
4831
|
-
* This function is used to enumerate the properties of native JSObjects
|
4832
|
-
* and those host objects that do not define a JSNewEnumerateOp-style iterator
|
4833
|
-
* function.
|
4834
|
-
*/
|
4835
4847
|
JSBool
|
4836
4848
|
js_Enumerate(JSContext *cx, JSObject *obj, JSIterateOp enum_op,
|
4837
4849
|
jsval *statep, jsid *idp)
|
4838
4850
|
{
|
4839
|
-
|
4840
|
-
|
4841
|
-
|
4842
|
-
uint32 length, shape;
|
4843
|
-
size_t allocated;
|
4844
|
-
JSScope *scope;
|
4845
|
-
jsuword *cachep, oldcache;
|
4846
|
-
JSScopeProperty *sprop;
|
4847
|
-
jsid *ids;
|
4848
|
-
jsword newcursor;
|
4849
|
-
|
4850
|
-
clasp = OBJ_GET_CLASS(cx, obj);
|
4851
|
-
enumerate = clasp->enumerate;
|
4851
|
+
/* Here cx is JSTracer when enum_op is JSENUMERATE_MARK. */
|
4852
|
+
JSClass *clasp = obj->getClass();
|
4853
|
+
JSEnumerateOp enumerate = clasp->enumerate;
|
4852
4854
|
if (clasp->flags & JSCLASS_NEW_ENUMERATE) {
|
4853
4855
|
JS_ASSERT(enumerate != JS_EnumerateStub);
|
4854
4856
|
return ((JSNewEnumerateOp) enumerate)(cx, obj, enum_op, statep, idp);
|
4855
4857
|
}
|
4856
4858
|
|
4857
4859
|
switch (enum_op) {
|
4858
|
-
case JSENUMERATE_INIT:
|
4860
|
+
case JSENUMERATE_INIT: {
|
4859
4861
|
if (!enumerate(cx, obj))
|
4860
|
-
return
|
4862
|
+
return false;
|
4861
4863
|
|
4862
4864
|
/*
|
4863
4865
|
* The set of all property ids is pre-computed when the iterator is
|
@@ -4865,196 +4867,181 @@ js_Enumerate(JSContext *cx, JSObject *obj, JSIterateOp enum_op,
|
|
4865
4867
|
* during the iteration.
|
4866
4868
|
*
|
4867
4869
|
* Use a do-while(0) loop to avoid too many nested ifs. If ne is null
|
4868
|
-
* after the loop, it indicates an empty enumerator.
|
4869
|
-
* not zero after the loop, we add the newly allocated ne to the cache
|
4870
|
-
* and runtime->nativeEnumerators list.
|
4870
|
+
* after the loop, it indicates an empty enumerator.
|
4871
4871
|
*/
|
4872
|
-
ne
|
4873
|
-
length
|
4874
|
-
allocated = (size_t) 0;
|
4875
|
-
JS_LOCK_OBJ(cx, obj);
|
4876
|
-
scope = OBJ_SCOPE(obj);
|
4872
|
+
JSNativeEnumerator *ne;
|
4873
|
+
uint32 length;
|
4877
4874
|
do {
|
4878
|
-
|
4879
|
-
* If this object shares a scope with its prototype, don't
|
4880
|
-
* enumerate its properties. Otherwise they will be enumerated
|
4881
|
-
* a second time when the prototype object is enumerated.
|
4882
|
-
*/
|
4883
|
-
if (scope->object != obj) {
|
4884
|
-
#ifdef __GNUC__
|
4885
|
-
cachep = NULL; /* suppress bogus gcc warnings */
|
4886
|
-
#endif
|
4887
|
-
break;
|
4888
|
-
}
|
4875
|
+
uint32 shape = OBJ_SHAPE(obj);
|
4889
4876
|
|
4890
4877
|
ENUM_CACHE_METER(nativeEnumProbes);
|
4891
|
-
|
4892
|
-
|
4893
|
-
|
4894
|
-
nativeEnumCache[NATIVE_ENUM_CACHE_HASH(shape)];
|
4895
|
-
oldcache = *cachep;
|
4878
|
+
jsuword *cachep = &JS_THREAD_DATA(cx)->
|
4879
|
+
nativeEnumCache[NATIVE_ENUM_CACHE_HASH(shape)];
|
4880
|
+
jsuword oldcache = *cachep;
|
4896
4881
|
if (oldcache & (jsuword) 1) {
|
4897
|
-
if (
|
4882
|
+
if (uint32(oldcache >> 1) == shape) {
|
4898
4883
|
/* scope has a shape with no enumerable properties. */
|
4884
|
+
ne = NULL;
|
4885
|
+
length = 0;
|
4899
4886
|
break;
|
4900
4887
|
}
|
4901
|
-
} else if (oldcache != (
|
4902
|
-
|
4903
|
-
* We can safely read ne->shape without taking the GC lock as
|
4904
|
-
* ne is deleted only when running the GC and ne->shape is
|
4905
|
-
* read-only after initialization.
|
4906
|
-
*/
|
4907
|
-
ne = (JSNativeEnumerator *) *cachep;
|
4888
|
+
} else if (oldcache != jsuword(0)) {
|
4889
|
+
ne = reinterpret_cast<JSNativeEnumerator *>(oldcache);
|
4908
4890
|
JS_ASSERT(ne->length >= 1);
|
4909
|
-
if (ne->shape == shape) {
|
4910
|
-
/*
|
4911
|
-
|
4912
|
-
* and, if so, reuse and mark it as running from now.
|
4913
|
-
*/
|
4891
|
+
if (ne->shape == shape && ne->isFinished()) {
|
4892
|
+
/* Mark ne as active. */
|
4893
|
+
ne->cursor = ne->length;
|
4914
4894
|
length = ne->length;
|
4915
|
-
|
4916
|
-
|
4917
|
-
length = 0;
|
4895
|
+
JS_ASSERT(!ne->isFinished());
|
4896
|
+
break;
|
4918
4897
|
}
|
4919
|
-
ne = NULL;
|
4920
4898
|
}
|
4921
4899
|
ENUM_CACHE_METER(nativeEnumMisses);
|
4922
4900
|
|
4901
|
+
JS_LOCK_OBJ(cx, obj);
|
4902
|
+
|
4923
4903
|
/* Count all enumerable properties in object's scope. */
|
4924
|
-
|
4925
|
-
|
4904
|
+
JSScope *scope = OBJ_SCOPE(obj);
|
4905
|
+
length = 0;
|
4906
|
+
for (JSScopeProperty *sprop = SCOPE_LAST_PROP(scope);
|
4907
|
+
sprop;
|
4908
|
+
sprop = sprop->parent) {
|
4926
4909
|
if ((sprop->attrs & JSPROP_ENUMERATE) &&
|
4927
4910
|
!(sprop->flags & SPROP_IS_ALIAS) &&
|
4928
|
-
(!
|
4929
|
-
SCOPE_HAS_PROPERTY(scope, sprop))) {
|
4911
|
+
(!scope->hadMiddleDelete() || scope->has(sprop))) {
|
4930
4912
|
length++;
|
4931
4913
|
}
|
4932
4914
|
}
|
4933
4915
|
if (length == 0) {
|
4934
|
-
|
4935
|
-
*
|
4916
|
+
/*
|
4917
|
+
* Cache the scope without enumerable properties unless its
|
4918
|
+
* shape overflows, see bug 440834.
|
4919
|
+
*/
|
4920
|
+
JS_UNLOCK_SCOPE(cx, scope);
|
4921
|
+
if (shape < SHAPE_OVERFLOW_BIT) {
|
4922
|
+
SetEnumeratorCache(cx, cachep,
|
4923
|
+
(jsuword(shape) << 1) | jsuword(1));
|
4924
|
+
}
|
4925
|
+
ne = NULL;
|
4936
4926
|
break;
|
4937
4927
|
}
|
4938
4928
|
|
4939
|
-
|
4940
|
-
|
4929
|
+
ne = (JSNativeEnumerator *)
|
4930
|
+
cx->mallocNoReport(JSNativeEnumerator::size(length));
|
4941
4931
|
if (!ne) {
|
4932
|
+
/* Report the OOM error outside the lock. */
|
4942
4933
|
JS_UNLOCK_SCOPE(cx, scope);
|
4943
|
-
|
4934
|
+
JS_ReportOutOfMemory(cx);
|
4935
|
+
return false;
|
4944
4936
|
}
|
4945
4937
|
ne->cursor = length;
|
4946
4938
|
ne->length = length;
|
4947
4939
|
ne->shape = shape;
|
4948
|
-
|
4949
|
-
|
4940
|
+
|
4941
|
+
jsid *ids = ne->ids;
|
4942
|
+
for (JSScopeProperty *sprop = SCOPE_LAST_PROP(scope);
|
4943
|
+
sprop;
|
4944
|
+
sprop = sprop->parent) {
|
4950
4945
|
if ((sprop->attrs & JSPROP_ENUMERATE) &&
|
4951
4946
|
!(sprop->flags & SPROP_IS_ALIAS) &&
|
4952
|
-
(!
|
4953
|
-
SCOPE_HAS_PROPERTY(scope, sprop))) {
|
4947
|
+
(!scope->hadMiddleDelete() || scope->has(sprop))) {
|
4954
4948
|
JS_ASSERT(ids < ne->ids + length);
|
4955
4949
|
*ids++ = sprop->id;
|
4956
4950
|
}
|
4957
4951
|
}
|
4958
4952
|
JS_ASSERT(ids == ne->ids + length);
|
4953
|
+
JS_UNLOCK_SCOPE(cx, scope);
|
4954
|
+
|
4955
|
+
/*
|
4956
|
+
* Do not cache enumerators for objects with with a shape
|
4957
|
+
* that had overflowed, see bug 440834.
|
4958
|
+
*/
|
4959
|
+
if (shape < SHAPE_OVERFLOW_BIT)
|
4960
|
+
SetEnumeratorCache(cx, cachep, reinterpret_cast<jsuword>(ne));
|
4959
4961
|
} while (0);
|
4960
|
-
JS_UNLOCK_SCOPE(cx, scope);
|
4961
4962
|
|
4962
4963
|
if (!ne) {
|
4963
4964
|
JS_ASSERT(length == 0);
|
4964
|
-
JS_ASSERT(allocated == 0);
|
4965
4965
|
*statep = JSVAL_ZERO;
|
4966
4966
|
} else {
|
4967
4967
|
JS_ASSERT(length != 0);
|
4968
|
-
JS_ASSERT(ne->cursor ==
|
4969
|
-
|
4970
|
-
JS_LOCK_GC(cx->runtime);
|
4971
|
-
if (!js_AddAsGCBytes(cx, allocated)) {
|
4972
|
-
/* js_AddAsGCBytes releases the GC lock on failures. */
|
4973
|
-
JS_free(cx, ne);
|
4974
|
-
return JS_FALSE;
|
4975
|
-
}
|
4976
|
-
ne->next = cx->runtime->nativeEnumerators;
|
4977
|
-
cx->runtime->nativeEnumerators = ne;
|
4978
|
-
JS_ASSERT(((jsuword) ne & (jsuword) 1) == (jsuword) 0);
|
4979
|
-
*cachep = (jsuword) ne;
|
4980
|
-
JS_UNLOCK_GC(cx->runtime);
|
4981
|
-
}
|
4968
|
+
JS_ASSERT(ne->cursor == length);
|
4969
|
+
JS_ASSERT(!(reinterpret_cast<jsuword>(ne) & jsuword(1)));
|
4982
4970
|
*statep = PRIVATE_TO_JSVAL(ne);
|
4983
4971
|
}
|
4984
4972
|
if (idp)
|
4985
4973
|
*idp = INT_TO_JSVAL(length);
|
4986
4974
|
break;
|
4975
|
+
}
|
4987
4976
|
|
4988
4977
|
case JSENUMERATE_NEXT:
|
4989
|
-
case JSENUMERATE_DESTROY:
|
4978
|
+
case JSENUMERATE_DESTROY: {
|
4990
4979
|
if (*statep == JSVAL_ZERO) {
|
4991
4980
|
*statep = JSVAL_NULL;
|
4992
4981
|
break;
|
4993
4982
|
}
|
4994
|
-
ne = (JSNativeEnumerator *)
|
4983
|
+
JSNativeEnumerator *ne = (JSNativeEnumerator *)
|
4984
|
+
JSVAL_TO_PRIVATE(*statep);
|
4995
4985
|
JS_ASSERT(ne->length >= 1);
|
4996
4986
|
JS_ASSERT(ne->cursor >= 1);
|
4997
|
-
|
4998
|
-
/*
|
4999
|
-
* We must not access ne->cursor when we set it to zero as it means
|
5000
|
-
* that ne is free and another thread can grab it from the cache. So
|
5001
|
-
* we set the state to JSVAL_ZERO in the NEXT case to avoid touching
|
5002
|
-
* ne->length again in the DESTROY case.
|
5003
|
-
*/
|
5004
4987
|
if (enum_op == JSENUMERATE_NEXT) {
|
5005
|
-
newcursor = ne->cursor - 1;
|
4988
|
+
uint32 newcursor = ne->cursor - 1;
|
5006
4989
|
*idp = ne->ids[newcursor];
|
5007
|
-
|
5008
|
-
|
5009
|
-
|
4990
|
+
if (newcursor != 0) {
|
4991
|
+
ne->cursor = newcursor;
|
4992
|
+
break;
|
4993
|
+
}
|
5010
4994
|
} else {
|
5011
4995
|
/* The enumerator has not iterated over all ids. */
|
4996
|
+
JS_ASSERT(enum_op == JSENUMERATE_DESTROY);
|
4997
|
+
}
|
4998
|
+
*statep = JSVAL_ZERO;
|
4999
|
+
|
5000
|
+
jsuword *cachep = &JS_THREAD_DATA(cx)->
|
5001
|
+
nativeEnumCache[NATIVE_ENUM_CACHE_HASH(ne->shape)];
|
5002
|
+
if (reinterpret_cast<jsuword>(ne) == *cachep) {
|
5003
|
+
/* Mark the cached iterator as available. */
|
5012
5004
|
ne->cursor = 0;
|
5005
|
+
} else {
|
5006
|
+
cx->free(ne);
|
5013
5007
|
}
|
5014
5008
|
break;
|
5009
|
+
}
|
5015
5010
|
}
|
5016
|
-
return
|
5011
|
+
return true;
|
5017
5012
|
}
|
5018
5013
|
|
5019
5014
|
void
|
5020
|
-
|
5015
|
+
js_MarkEnumeratorState(JSTracer *trc, JSObject *obj, jsval state)
|
5021
5016
|
{
|
5022
|
-
|
5023
|
-
|
5024
|
-
|
5017
|
+
if (JSVAL_IS_TRACEABLE(state)) {
|
5018
|
+
JS_CALL_TRACER(trc, JSVAL_TO_TRACEABLE(state),
|
5019
|
+
JSVAL_TRACE_KIND(state), "enumerator_value");
|
5020
|
+
} else if (obj->map->ops->enumerate == js_Enumerate &&
|
5021
|
+
!(obj->getClass()->flags & JSCLASS_NEW_ENUMERATE)) {
|
5022
|
+
/* Check if state stores JSNativeEnumerator. */
|
5023
|
+
JS_ASSERT(JSVAL_IS_INT(state) ||
|
5024
|
+
JSVAL_IS_NULL(state) ||
|
5025
|
+
JSVAL_IS_VOID(state));
|
5026
|
+
if (JSVAL_IS_INT(state) && state != JSVAL_ZERO)
|
5027
|
+
((JSNativeEnumerator *) JSVAL_TO_PRIVATE(state))->mark(trc);
|
5028
|
+
}
|
5029
|
+
}
|
5030
|
+
|
5031
|
+
void
|
5032
|
+
js_PurgeCachedNativeEnumerators(JSContext *cx, JSThreadData *data)
|
5033
|
+
{
|
5034
|
+
jsuword *cachep = &data->nativeEnumCache[0];
|
5035
|
+
jsuword *end = cachep + JS_ARRAY_LENGTH(data->nativeEnumCache);
|
5036
|
+
for (; cachep != end; ++cachep)
|
5037
|
+
SetEnumeratorCache(cx, cachep, jsuword(0));
|
5025
5038
|
|
5026
|
-
/*
|
5027
|
-
* Purge native enumerators cached by shape id, which we are about to
|
5028
|
-
* re-number completely when tracing is done for the GC.
|
5029
|
-
*/
|
5030
|
-
rt = trc->context->runtime;
|
5031
|
-
if (IS_GC_MARKING_TRACER(trc)) {
|
5032
|
-
memset(&rt->nativeEnumCache, 0, sizeof rt->nativeEnumCache);
|
5033
5039
|
#ifdef JS_DUMP_ENUM_CACHE_STATS
|
5034
|
-
|
5035
|
-
|
5036
|
-
|
5040
|
+
printf("nativeEnumCache hit rate %g%%\n",
|
5041
|
+
100.0 * (cx->runtime->nativeEnumProbes -
|
5042
|
+
cx->runtime->nativeEnumMisses) /
|
5043
|
+
cx->runtime->nativeEnumProbes);
|
5037
5044
|
#endif
|
5038
|
-
}
|
5039
|
-
|
5040
|
-
nep = &rt->nativeEnumerators;
|
5041
|
-
while ((ne = *nep) != NULL) {
|
5042
|
-
JS_ASSERT(ne->length != 0);
|
5043
|
-
if (ne->cursor != 0) {
|
5044
|
-
/* Trace ids of the running enumerator. */
|
5045
|
-
cursor = ne->ids;
|
5046
|
-
end = cursor + ne->length;
|
5047
|
-
do {
|
5048
|
-
TRACE_ID(trc, *cursor);
|
5049
|
-
} while (++cursor != end);
|
5050
|
-
} else if (IS_GC_MARKING_TRACER(trc)) {
|
5051
|
-
js_RemoveAsGCBytes(rt, NativeEnumeratorSize(ne->length));
|
5052
|
-
*nep = ne->next;
|
5053
|
-
JS_free(trc->context, ne);
|
5054
|
-
continue;
|
5055
|
-
}
|
5056
|
-
nep = &ne->next;
|
5057
|
-
}
|
5058
5045
|
}
|
5059
5046
|
|
5060
5047
|
JSBool
|
@@ -5086,7 +5073,7 @@ js_CheckAccess(JSContext *cx, JSObject *obj, jsid id, JSAccessMode mode,
|
|
5086
5073
|
break;
|
5087
5074
|
|
5088
5075
|
default:
|
5089
|
-
if (!
|
5076
|
+
if (!obj->lookupProperty(cx, id, &pobj, &prop))
|
5090
5077
|
return JS_FALSE;
|
5091
5078
|
if (!prop) {
|
5092
5079
|
if (!writing)
|
@@ -5097,7 +5084,7 @@ js_CheckAccess(JSContext *cx, JSObject *obj, jsid id, JSAccessMode mode,
|
|
5097
5084
|
}
|
5098
5085
|
|
5099
5086
|
if (!OBJ_IS_NATIVE(pobj)) {
|
5100
|
-
|
5087
|
+
pobj->dropProperty(cx, prop);
|
5101
5088
|
|
5102
5089
|
/* Avoid diverging for non-natives that reuse js_CheckAccess. */
|
5103
5090
|
if (pobj->map->ops->checkAccess == js_CheckAccess) {
|
@@ -5107,7 +5094,7 @@ js_CheckAccess(JSContext *cx, JSObject *obj, jsid id, JSAccessMode mode,
|
|
5107
5094
|
}
|
5108
5095
|
break;
|
5109
5096
|
}
|
5110
|
-
return
|
5097
|
+
return pobj->checkAccess(cx, id, mode, vp, attrsp);
|
5111
5098
|
}
|
5112
5099
|
|
5113
5100
|
sprop = (JSScopeProperty *)prop;
|
@@ -5117,7 +5104,7 @@ js_CheckAccess(JSContext *cx, JSObject *obj, jsid id, JSAccessMode mode,
|
|
5117
5104
|
? LOCKED_OBJ_GET_SLOT(pobj, sprop->slot)
|
5118
5105
|
: JSVAL_VOID;
|
5119
5106
|
}
|
5120
|
-
|
5107
|
+
pobj->dropProperty(cx, prop);
|
5121
5108
|
}
|
5122
5109
|
|
5123
5110
|
/*
|
@@ -5158,19 +5145,14 @@ GetCurrentExecutionContext(JSContext *cx, JSObject *obj, jsval *rval)
|
|
5158
5145
|
|
5159
5146
|
while ((tmp = OBJ_GET_PARENT(cx, obj)) != NULL)
|
5160
5147
|
obj = tmp;
|
5161
|
-
if (!
|
5162
|
-
ATOM_TO_JSID(cx->runtime->atomState
|
5163
|
-
.ExecutionContextAtom),
|
5164
|
-
&xcval)) {
|
5148
|
+
if (!obj->getProperty(cx, ATOM_TO_JSID(cx->runtime->atomState.ExecutionContextAtom), &xcval))
|
5165
5149
|
return JS_FALSE;
|
5166
|
-
}
|
5167
5150
|
if (JSVAL_IS_PRIMITIVE(xcval)) {
|
5168
5151
|
JS_ReportError(cx, "invalid ExecutionContext in global object");
|
5169
5152
|
return JS_FALSE;
|
5170
5153
|
}
|
5171
|
-
if (!
|
5172
|
-
|
5173
|
-
rval)) {
|
5154
|
+
if (!JSVAL_TO_OBJECT(xcval)->getProperty(cx, ATOM_TO_JSID(cx->runtime->atomState.currentAtom),
|
5155
|
+
rval)) {
|
5174
5156
|
return JS_FALSE;
|
5175
5157
|
}
|
5176
5158
|
return JS_TRUE;
|
@@ -5190,11 +5172,8 @@ js_Call(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
|
5190
5172
|
JSBool ok;
|
5191
5173
|
|
5192
5174
|
callee = JSVAL_TO_OBJECT(argv[-2]);
|
5193
|
-
if (!
|
5194
|
-
ATOM_TO_JSID(cx->runtime->atomState.__call__Atom),
|
5195
|
-
&fval)) {
|
5175
|
+
if (!callee->getProperty(cx, ATOM_TO_JSID(cx->runtime->atomState.__call__Atom), &fval))
|
5196
5176
|
return JS_FALSE;
|
5197
|
-
}
|
5198
5177
|
if (VALUE_IS_FUNCTION(cx, fval)) {
|
5199
5178
|
if (!GetCurrentExecutionContext(cx, obj, &nargv[2]))
|
5200
5179
|
return JS_FALSE;
|
@@ -5232,10 +5211,8 @@ js_Construct(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
|
|
5232
5211
|
JSBool ok;
|
5233
5212
|
|
5234
5213
|
callee = JSVAL_TO_OBJECT(argv[-2]);
|
5235
|
-
if (!
|
5236
|
-
|
5237
|
-
.__construct__Atom),
|
5238
|
-
&cval)) {
|
5214
|
+
if (!callee->getProperty(cx, ATOM_TO_JSID(cx->runtime->atomState.__construct__Atom),
|
5215
|
+
&cval)) {
|
5239
5216
|
return JS_FALSE;
|
5240
5217
|
}
|
5241
5218
|
if (VALUE_IS_FUNCTION(cx, cval)) {
|
@@ -5272,12 +5249,8 @@ js_HasInstance(JSContext *cx, JSObject *obj, jsval v, JSBool *bp)
|
|
5272
5249
|
{
|
5273
5250
|
jsval fval, rval;
|
5274
5251
|
|
5275
|
-
if (!
|
5276
|
-
ATOM_TO_JSID(cx->runtime->atomState
|
5277
|
-
.__hasInstance__Atom),
|
5278
|
-
&fval)) {
|
5252
|
+
if (!obj->getProperty(cx, ATOM_TO_JSID(cx->runtime->atomState.__hasInstance__Atom), &fval))
|
5279
5253
|
return JS_FALSE;
|
5280
|
-
}
|
5281
5254
|
if (VALUE_IS_FUNCTION(cx, fval)) {
|
5282
5255
|
if (!js_InternalCall(cx, obj, fval, 1, &v, &rval))
|
5283
5256
|
return JS_FALSE;
|
@@ -5320,12 +5293,8 @@ js_GetClassPrototype(JSContext *cx, JSObject *scope, jsid id,
|
|
5320
5293
|
return JS_FALSE;
|
5321
5294
|
if (VALUE_IS_FUNCTION(cx, v)) {
|
5322
5295
|
ctor = JSVAL_TO_OBJECT(v);
|
5323
|
-
if (!
|
5324
|
-
ATOM_TO_JSID(cx->runtime->atomState
|
5325
|
-
.classPrototypeAtom),
|
5326
|
-
&v)) {
|
5296
|
+
if (!ctor->getProperty(cx, ATOM_TO_JSID(cx->runtime->atomState.classPrototypeAtom), &v))
|
5327
5297
|
return JS_FALSE;
|
5328
|
-
}
|
5329
5298
|
if (!JSVAL_IS_PRIMITIVE(v)) {
|
5330
5299
|
/*
|
5331
5300
|
* Set the newborn root in case v is otherwise unreferenced.
|
@@ -5366,8 +5335,7 @@ CheckCtorGetAccess(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
|
5366
5335
|
|
5367
5336
|
atom = cx->runtime->atomState.constructorAtom;
|
5368
5337
|
JS_ASSERT(id == ATOM_TO_JSID(atom));
|
5369
|
-
return
|
5370
|
-
vp, &attrs);
|
5338
|
+
return obj->checkAccess(cx, ATOM_TO_JSID(atom), JSACC_READ, vp, &attrs);
|
5371
5339
|
}
|
5372
5340
|
|
5373
5341
|
static JSBool
|
@@ -5378,8 +5346,7 @@ CheckCtorSetAccess(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
|
5378
5346
|
|
5379
5347
|
atom = cx->runtime->atomState.constructorAtom;
|
5380
5348
|
JS_ASSERT(id == ATOM_TO_JSID(atom));
|
5381
|
-
return
|
5382
|
-
vp, &attrs);
|
5349
|
+
return obj->checkAccess(cx, ATOM_TO_JSID(atom), JSACC_WRITE, vp, &attrs);
|
5383
5350
|
}
|
5384
5351
|
|
5385
5352
|
JSBool
|
@@ -5392,12 +5359,9 @@ js_SetClassPrototype(JSContext *cx, JSObject *ctor, JSObject *proto,
|
|
5392
5359
|
* reset), while native or "system" constructors have DontEnum | ReadOnly |
|
5393
5360
|
* DontDelete.
|
5394
5361
|
*/
|
5395
|
-
if (!
|
5396
|
-
|
5397
|
-
|
5398
|
-
OBJECT_TO_JSVAL(proto),
|
5399
|
-
JS_PropertyStub, JS_PropertyStub,
|
5400
|
-
attrs, NULL)) {
|
5362
|
+
if (!ctor->defineProperty(cx, ATOM_TO_JSID(cx->runtime->atomState.classPrototypeAtom),
|
5363
|
+
OBJECT_TO_JSVAL(proto), JS_PropertyStub, JS_PropertyStub,
|
5364
|
+
attrs)) {
|
5401
5365
|
return JS_FALSE;
|
5402
5366
|
}
|
5403
5367
|
|
@@ -5405,12 +5369,8 @@ js_SetClassPrototype(JSContext *cx, JSObject *ctor, JSObject *proto,
|
|
5405
5369
|
* ECMA says that Object.prototype.constructor, or f.prototype.constructor
|
5406
5370
|
* for a user-defined function f, is DontEnum.
|
5407
5371
|
*/
|
5408
|
-
return
|
5409
|
-
|
5410
|
-
.constructorAtom),
|
5411
|
-
OBJECT_TO_JSVAL(ctor),
|
5412
|
-
CheckCtorGetAccess, CheckCtorSetAccess,
|
5413
|
-
0, NULL);
|
5372
|
+
return proto->defineProperty(cx, ATOM_TO_JSID(cx->runtime->atomState.constructorAtom),
|
5373
|
+
OBJECT_TO_JSVAL(ctor), CheckCtorGetAccess, CheckCtorSetAccess, 0);
|
5414
5374
|
}
|
5415
5375
|
|
5416
5376
|
JSBool
|
@@ -5423,7 +5383,7 @@ js_PrimitiveToObject(JSContext *cx, jsval *vp)
|
|
5423
5383
|
JS_STATIC_ASSERT(JSVAL_INT == 1);
|
5424
5384
|
JS_STATIC_ASSERT(JSVAL_DOUBLE == 2);
|
5425
5385
|
JS_STATIC_ASSERT(JSVAL_STRING == 4);
|
5426
|
-
JS_STATIC_ASSERT(
|
5386
|
+
JS_STATIC_ASSERT(JSVAL_SPECIAL == 6);
|
5427
5387
|
static JSClass *const PrimitiveClasses[] = {
|
5428
5388
|
&js_NumberClass, /* INT */
|
5429
5389
|
&js_NumberClass, /* DOUBLE */
|
@@ -5437,10 +5397,10 @@ js_PrimitiveToObject(JSContext *cx, jsval *vp)
|
|
5437
5397
|
JS_ASSERT(!JSVAL_IS_OBJECT(*vp));
|
5438
5398
|
JS_ASSERT(!JSVAL_IS_VOID(*vp));
|
5439
5399
|
clasp = PrimitiveClasses[JSVAL_TAG(*vp) - 1];
|
5440
|
-
obj = js_NewObject(cx, clasp, NULL, NULL
|
5400
|
+
obj = js_NewObject(cx, clasp, NULL, NULL);
|
5441
5401
|
if (!obj)
|
5442
5402
|
return JS_FALSE;
|
5443
|
-
|
5403
|
+
obj->fslots[JSSLOT_PRIMITIVE_THIS] = *vp;
|
5444
5404
|
*vp = OBJECT_TO_JSVAL(obj);
|
5445
5405
|
return JS_TRUE;
|
5446
5406
|
}
|
@@ -5454,7 +5414,7 @@ js_ValueToObject(JSContext *cx, jsval v, JSObject **objp)
|
|
5454
5414
|
obj = NULL;
|
5455
5415
|
} else if (JSVAL_IS_OBJECT(v)) {
|
5456
5416
|
obj = JSVAL_TO_OBJECT(v);
|
5457
|
-
if (!
|
5417
|
+
if (!obj->defaultValue(cx, JSTYPE_OBJECT, &v))
|
5458
5418
|
return JS_FALSE;
|
5459
5419
|
if (!JSVAL_IS_PRIMITIVE(v))
|
5460
5420
|
obj = JSVAL_TO_OBJECT(v);
|
@@ -5643,21 +5603,15 @@ js_DumpScopeMeters(JSRuntime *rt)
|
|
5643
5603
|
void
|
5644
5604
|
js_PrintObjectSlotName(JSTracer *trc, char *buf, size_t bufsize)
|
5645
5605
|
{
|
5646
|
-
JSObject *obj;
|
5647
|
-
uint32 slot;
|
5648
|
-
JSScope *scope;
|
5649
|
-
jsval nval;
|
5650
|
-
JSScopeProperty *sprop;
|
5651
|
-
JSClass *clasp;
|
5652
|
-
uint32 key;
|
5653
|
-
const char *slotname;
|
5654
|
-
|
5655
5606
|
JS_ASSERT(trc->debugPrinter == js_PrintObjectSlotName);
|
5656
|
-
obj = (JSObject *)trc->debugPrintArg;
|
5657
|
-
slot = (uint32)trc->debugPrintIndex;
|
5658
5607
|
|
5608
|
+
JSObject *obj = (JSObject *)trc->debugPrintArg;
|
5609
|
+
uint32 slot = (uint32)trc->debugPrintIndex;
|
5610
|
+
JS_ASSERT(slot >= JSSLOT_START(obj->getClass()));
|
5611
|
+
|
5612
|
+
JSScopeProperty *sprop;
|
5659
5613
|
if (OBJ_IS_NATIVE(obj)) {
|
5660
|
-
scope = OBJ_SCOPE(obj);
|
5614
|
+
JSScope *scope = OBJ_SCOPE(obj);
|
5661
5615
|
sprop = SCOPE_LAST_PROP(scope);
|
5662
5616
|
while (sprop && sprop->slot != slot)
|
5663
5617
|
sprop = sprop->parent;
|
@@ -5666,32 +5620,22 @@ js_PrintObjectSlotName(JSTracer *trc, char *buf, size_t bufsize)
|
|
5666
5620
|
}
|
5667
5621
|
|
5668
5622
|
if (!sprop) {
|
5669
|
-
|
5670
|
-
|
5671
|
-
|
5672
|
-
|
5673
|
-
|
5674
|
-
JS_snprintf(buf, bufsize, "__parent__");
|
5675
|
-
break;
|
5676
|
-
default:
|
5677
|
-
slotname = NULL;
|
5678
|
-
clasp = LOCKED_OBJ_GET_CLASS(obj);
|
5679
|
-
if (clasp->flags & JSCLASS_IS_GLOBAL) {
|
5680
|
-
key = slot - JSSLOT_START(clasp);
|
5681
|
-
#define JS_PROTO(name,code,init) \
|
5623
|
+
const char *slotname = NULL;
|
5624
|
+
JSClass *clasp = obj->getClass();
|
5625
|
+
if (clasp->flags & JSCLASS_IS_GLOBAL) {
|
5626
|
+
uint32 key = slot - JSSLOT_START(clasp);
|
5627
|
+
#define JS_PROTO(name,code,init) \
|
5682
5628
|
if ((code) == key) { slotname = js_##name##_str; goto found; }
|
5683
5629
|
#include "jsproto.tbl"
|
5684
5630
|
#undef JS_PROTO
|
5685
|
-
}
|
5686
|
-
found:
|
5687
|
-
if (slotname)
|
5688
|
-
JS_snprintf(buf, bufsize, "CLASS_OBJECT(%s)", slotname);
|
5689
|
-
else
|
5690
|
-
JS_snprintf(buf, bufsize, "**UNKNOWN SLOT %ld**", (long)slot);
|
5691
|
-
break;
|
5692
5631
|
}
|
5632
|
+
found:
|
5633
|
+
if (slotname)
|
5634
|
+
JS_snprintf(buf, bufsize, "CLASS_OBJECT(%s)", slotname);
|
5635
|
+
else
|
5636
|
+
JS_snprintf(buf, bufsize, "**UNKNOWN SLOT %ld**", (long)slot);
|
5693
5637
|
} else {
|
5694
|
-
nval = ID_TO_VALUE(sprop->id);
|
5638
|
+
jsval nval = ID_TO_VALUE(sprop->id);
|
5695
5639
|
if (JSVAL_IS_INT(nval)) {
|
5696
5640
|
JS_snprintf(buf, bufsize, "%ld", (long)JSVAL_TO_INT(nval));
|
5697
5641
|
} else if (JSVAL_IS_STRING(nval)) {
|
@@ -5706,78 +5650,32 @@ js_PrintObjectSlotName(JSTracer *trc, char *buf, size_t bufsize)
|
|
5706
5650
|
void
|
5707
5651
|
js_TraceObject(JSTracer *trc, JSObject *obj)
|
5708
5652
|
{
|
5709
|
-
JSContext *cx;
|
5710
|
-
JSScope *scope;
|
5711
|
-
JSBool traceScope;
|
5712
|
-
JSScopeProperty *sprop;
|
5713
|
-
JSClass *clasp;
|
5714
|
-
size_t nslots, i;
|
5715
|
-
jsval v;
|
5716
|
-
|
5717
5653
|
JS_ASSERT(OBJ_IS_NATIVE(obj));
|
5718
|
-
cx = trc->context;
|
5719
|
-
scope = OBJ_SCOPE(obj);
|
5720
|
-
|
5721
|
-
traceScope = (scope->object == obj);
|
5722
|
-
if (!traceScope) {
|
5723
|
-
JSObject *pobj = obj;
|
5724
5654
|
|
5655
|
+
JSContext *cx = trc->context;
|
5656
|
+
JSScope *scope = OBJ_SCOPE(obj);
|
5657
|
+
if (scope->owned() && IS_GC_MARKING_TRACER(trc)) {
|
5725
5658
|
/*
|
5726
|
-
*
|
5727
|
-
*
|
5728
|
-
*
|
5729
|
-
* from the prototype object whose scope it shares, so we may have to
|
5730
|
-
* mark scope even though scope->object != obj.
|
5659
|
+
* Check whether we should shrink the object's slots. Skip this check
|
5660
|
+
* if the scope is shared, since for Block objects and flat closures
|
5661
|
+
* that share their scope, scope->freeslot can be an underestimate.
|
5731
5662
|
*/
|
5732
|
-
|
5733
|
-
|
5734
|
-
|
5735
|
-
}
|
5736
|
-
JS_ASSERT_IF(pobj, OBJ_SCOPE(pobj) == scope);
|
5737
|
-
traceScope = !pobj;
|
5663
|
+
size_t slots = scope->freeslot;
|
5664
|
+
if (STOBJ_NSLOTS(obj) != slots)
|
5665
|
+
js_ShrinkSlots(cx, obj, slots);
|
5738
5666
|
}
|
5739
5667
|
|
5740
|
-
if (traceScope) {
|
5741
5668
|
#ifdef JS_DUMP_SCOPE_METERS
|
5742
|
-
|
5669
|
+
MeterEntryCount(scope->entryCount);
|
5743
5670
|
#endif
|
5744
5671
|
|
5745
|
-
|
5746
|
-
if (sprop) {
|
5747
|
-
JS_ASSERT(SCOPE_HAS_PROPERTY(scope, sprop));
|
5748
|
-
|
5749
|
-
/* Regenerate property cache shape ids if GC'ing. */
|
5750
|
-
if (IS_GC_MARKING_TRACER(trc)) {
|
5751
|
-
uint32 shape, oldshape;
|
5752
|
-
|
5753
|
-
shape = js_RegenerateShapeForGC(cx);
|
5754
|
-
if (!(sprop->flags & SPROP_MARK)) {
|
5755
|
-
oldshape = sprop->shape;
|
5756
|
-
sprop->shape = shape;
|
5757
|
-
sprop->flags |= SPROP_FLAG_SHAPE_REGEN;
|
5758
|
-
if (scope->shape != oldshape)
|
5759
|
-
shape = js_RegenerateShapeForGC(cx);
|
5760
|
-
}
|
5761
|
-
|
5762
|
-
scope->shape = shape;
|
5763
|
-
}
|
5764
|
-
|
5765
|
-
/* Trace scope's property tree ancestor line. */
|
5766
|
-
do {
|
5767
|
-
if (SCOPE_HAD_MIDDLE_DELETE(scope) &&
|
5768
|
-
!SCOPE_HAS_PROPERTY(scope, sprop)) {
|
5769
|
-
continue;
|
5770
|
-
}
|
5771
|
-
TRACE_SCOPE_PROPERTY(trc, sprop);
|
5772
|
-
} while ((sprop = sprop->parent) != NULL);
|
5773
|
-
}
|
5774
|
-
}
|
5672
|
+
scope->trace(trc);
|
5775
5673
|
|
5776
5674
|
if (!JS_CLIST_IS_EMPTY(&cx->runtime->watchPointList))
|
5777
5675
|
js_TraceWatchPoints(trc, obj);
|
5778
5676
|
|
5779
5677
|
/* No one runs while the GC is running, so we can use LOCKED_... here. */
|
5780
|
-
clasp =
|
5678
|
+
JSClass *clasp = obj->getClass();
|
5781
5679
|
if (clasp->mark) {
|
5782
5680
|
if (clasp->flags & JSCLASS_MARK_IS_TRACE)
|
5783
5681
|
((JSTraceOp) clasp->mark)(trc, obj);
|
@@ -5785,6 +5683,8 @@ js_TraceObject(JSTracer *trc, JSObject *obj)
|
|
5785
5683
|
(void) clasp->mark(cx, obj, trc);
|
5786
5684
|
}
|
5787
5685
|
|
5686
|
+
obj->traceProtoAndParent(trc);
|
5687
|
+
|
5788
5688
|
/*
|
5789
5689
|
* An unmutated object that shares a prototype object's scope. We can't
|
5790
5690
|
* tell how many slots are in use in obj by looking at its scope, so we
|
@@ -5794,12 +5694,13 @@ js_TraceObject(JSTracer *trc, JSObject *obj)
|
|
5794
5694
|
* don't move it up and unify it with the |if (!traceScope)| section
|
5795
5695
|
* above.
|
5796
5696
|
*/
|
5797
|
-
nslots = STOBJ_NSLOTS(obj);
|
5798
|
-
if (scope->
|
5697
|
+
uint32 nslots = STOBJ_NSLOTS(obj);
|
5698
|
+
if (scope->owned() && scope->freeslot < nslots)
|
5799
5699
|
nslots = scope->freeslot;
|
5700
|
+
JS_ASSERT(nslots >= JSSLOT_START(clasp));
|
5800
5701
|
|
5801
|
-
for (i =
|
5802
|
-
v = STOBJ_GET_SLOT(obj, i);
|
5702
|
+
for (uint32 i = JSSLOT_START(clasp); i != nslots; ++i) {
|
5703
|
+
jsval v = STOBJ_GET_SLOT(obj, i);
|
5803
5704
|
if (JSVAL_IS_TRACEABLE(v)) {
|
5804
5705
|
JS_SET_TRACING_DETAILS(trc, js_PrintObjectSlotName, obj, i);
|
5805
5706
|
JS_CallTracer(trc, JSVAL_TO_TRACEABLE(v), JSVAL_TRACE_KIND(v));
|
@@ -5815,19 +5716,18 @@ js_Clear(JSContext *cx, JSObject *obj)
|
|
5815
5716
|
|
5816
5717
|
/*
|
5817
5718
|
* Clear our scope and the property cache of all obj's properties only if
|
5818
|
-
* obj owns the scope (i.e., not if obj is
|
5819
|
-
*
|
5820
|
-
* below JSSLOT_FREE(clasp).
|
5719
|
+
* obj owns the scope (i.e., not if obj is sharing another object's scope).
|
5720
|
+
* NB: we do not clear any reserved slots lying below JSSLOT_FREE(clasp).
|
5821
5721
|
*/
|
5822
5722
|
JS_LOCK_OBJ(cx, obj);
|
5823
5723
|
scope = OBJ_SCOPE(obj);
|
5824
|
-
if (scope->
|
5724
|
+
if (scope->owned()) {
|
5825
5725
|
/* Now that we're done using scope->lastProp/table, clear scope. */
|
5826
|
-
|
5726
|
+
scope->clear(cx);
|
5827
5727
|
|
5828
5728
|
/* Clear slot values and reset freeslot so we're consistent. */
|
5829
5729
|
i = STOBJ_NSLOTS(obj);
|
5830
|
-
n = JSSLOT_FREE(
|
5730
|
+
n = JSSLOT_FREE(obj->getClass());
|
5831
5731
|
while (--i >= n)
|
5832
5732
|
STOBJ_SET_SLOT(obj, i, JSVAL_VOID);
|
5833
5733
|
scope->freeslot = n;
|
@@ -5835,57 +5735,92 @@ js_Clear(JSContext *cx, JSObject *obj)
|
|
5835
5735
|
JS_UNLOCK_OBJ(cx, obj);
|
5836
5736
|
}
|
5837
5737
|
|
5838
|
-
|
5839
|
-
|
5738
|
+
/* On failure the function unlocks the object. */
|
5739
|
+
static bool
|
5740
|
+
ReservedSlotIndexOK(JSContext *cx, JSObject *obj, JSClass *clasp,
|
5741
|
+
uint32 index, uint32 limit)
|
5840
5742
|
{
|
5841
|
-
|
5743
|
+
JS_ASSERT(JS_IS_OBJ_LOCKED(cx, obj));
|
5744
|
+
|
5745
|
+
/* Check the computed, possibly per-instance, upper bound. */
|
5746
|
+
if (clasp->reserveSlots)
|
5747
|
+
limit += clasp->reserveSlots(cx, obj);
|
5748
|
+
if (index >= limit) {
|
5749
|
+
JS_UNLOCK_OBJ(cx, obj);
|
5750
|
+
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL,
|
5751
|
+
JSMSG_RESERVED_SLOT_RANGE);
|
5752
|
+
return false;
|
5753
|
+
}
|
5754
|
+
return true;
|
5755
|
+
}
|
5756
|
+
|
5757
|
+
bool
|
5758
|
+
js_GetReservedSlot(JSContext *cx, JSObject *obj, uint32 index, jsval *vp)
|
5759
|
+
{
|
5760
|
+
if (!OBJ_IS_NATIVE(obj)) {
|
5761
|
+
*vp = JSVAL_VOID;
|
5762
|
+
return true;
|
5763
|
+
}
|
5764
|
+
|
5765
|
+
JSClass *clasp = obj->getClass();
|
5766
|
+
uint32 limit = JSCLASS_RESERVED_SLOTS(clasp);
|
5842
5767
|
|
5843
5768
|
JS_LOCK_OBJ(cx, obj);
|
5844
|
-
|
5769
|
+
if (index >= limit && !ReservedSlotIndexOK(cx, obj, clasp, index, limit))
|
5770
|
+
return false;
|
5771
|
+
|
5772
|
+
uint32 slot = JSSLOT_START(clasp) + index;
|
5773
|
+
*vp = (slot < STOBJ_NSLOTS(obj)) ? STOBJ_GET_SLOT(obj, slot) : JSVAL_VOID;
|
5845
5774
|
JS_UNLOCK_OBJ(cx, obj);
|
5846
|
-
return
|
5775
|
+
return true;
|
5847
5776
|
}
|
5848
5777
|
|
5849
|
-
|
5850
|
-
|
5778
|
+
bool
|
5779
|
+
js_SetReservedSlot(JSContext *cx, JSObject *obj, uint32 index, jsval v)
|
5851
5780
|
{
|
5852
|
-
|
5853
|
-
|
5854
|
-
|
5781
|
+
if (!OBJ_IS_NATIVE(obj))
|
5782
|
+
return true;
|
5783
|
+
|
5784
|
+
JSClass *clasp = OBJ_GET_CLASS(cx, obj);
|
5785
|
+
uint32 limit = JSCLASS_RESERVED_SLOTS(clasp);
|
5855
5786
|
|
5856
5787
|
JS_LOCK_OBJ(cx, obj);
|
5857
|
-
|
5788
|
+
if (index >= limit && !ReservedSlotIndexOK(cx, obj, clasp, index, limit))
|
5789
|
+
return false;
|
5790
|
+
|
5791
|
+
uint32 slot = JSSLOT_START(clasp) + index;
|
5858
5792
|
if (slot >= JS_INITIAL_NSLOTS && !obj->dslots) {
|
5859
5793
|
/*
|
5860
|
-
* At this point, obj may or may not own scope
|
5861
|
-
*
|
5862
|
-
*
|
5863
|
-
* prototype's scope, then we cannot update scope->map here. Instead
|
5864
|
-
* we rely on STOBJ_NSLOTS(obj) to get the number of available slots
|
5865
|
-
* in obj after we allocate dynamic slots.
|
5866
|
-
*
|
5867
|
-
* See js_TraceObject, before the slot tracing, where we make a special
|
5868
|
-
* case for unmutated (scope->object != obj) objects.
|
5794
|
+
* At this point, obj may or may not own scope, and we may or may not
|
5795
|
+
* need to allocate dslots. If scope is shared, scope->freeslot may not
|
5796
|
+
* be accurate for obj (see comment below).
|
5869
5797
|
*/
|
5870
|
-
|
5871
|
-
nslots = JSSLOT_FREE(clasp);
|
5798
|
+
uint32 nslots = JSSLOT_FREE(clasp);
|
5872
5799
|
if (clasp->reserveSlots)
|
5873
5800
|
nslots += clasp->reserveSlots(cx, obj);
|
5874
5801
|
JS_ASSERT(slot < nslots);
|
5875
|
-
if (!
|
5876
|
-
|
5877
|
-
return
|
5802
|
+
if (!AllocSlots(cx, obj, nslots)) {
|
5803
|
+
JS_UNLOCK_OBJ(cx, obj);
|
5804
|
+
return false;
|
5878
5805
|
}
|
5879
5806
|
}
|
5880
5807
|
|
5881
|
-
/*
|
5882
|
-
|
5808
|
+
/*
|
5809
|
+
* Whether or not we grew nslots, we may need to advance freeslot.
|
5810
|
+
*
|
5811
|
+
* If scope is shared, do not modify scope->freeslot. It is OK for freeslot
|
5812
|
+
* to be an underestimate in objects with shared scopes, as they will get
|
5813
|
+
* their own scopes before mutating, and elsewhere (e.g. js_TraceObject) we
|
5814
|
+
* use STOBJ_NSLOTS(obj) rather than rely on freeslot.
|
5815
|
+
*/
|
5816
|
+
JSScope *scope = OBJ_SCOPE(obj);
|
5817
|
+
if (scope->owned() && slot >= scope->freeslot)
|
5883
5818
|
scope->freeslot = slot + 1;
|
5884
5819
|
|
5885
5820
|
STOBJ_SET_SLOT(obj, slot, v);
|
5886
5821
|
GC_POKE(cx, JS_NULL);
|
5887
5822
|
JS_UNLOCK_SCOPE(cx, scope);
|
5888
|
-
return
|
5823
|
+
return true;
|
5889
5824
|
}
|
5890
5825
|
|
5891
5826
|
JSObject *
|
@@ -5926,7 +5861,6 @@ js_ReportGetterOnlyAssignment(JSContext *cx)
|
|
5926
5861
|
JSMSG_GETTER_ONLY, NULL);
|
5927
5862
|
}
|
5928
5863
|
|
5929
|
-
|
5930
5864
|
JS_FRIEND_API(JSBool)
|
5931
5865
|
js_GetterOnlyPropertyStub(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
5932
5866
|
{
|
@@ -5978,14 +5912,14 @@ js_DumpChars(const jschar *s, size_t n)
|
|
5978
5912
|
void
|
5979
5913
|
dumpString(JSString *str)
|
5980
5914
|
{
|
5981
|
-
dumpChars(
|
5915
|
+
dumpChars(str->chars(), str->length());
|
5982
5916
|
}
|
5983
5917
|
|
5984
5918
|
JS_FRIEND_API(void)
|
5985
5919
|
js_DumpString(JSString *str)
|
5986
5920
|
{
|
5987
5921
|
fprintf(stderr, "JSString* (%p) = jschar * (%p) = ",
|
5988
|
-
(void *) str, (void *)
|
5922
|
+
(void *) str, (void *) str->chars());
|
5989
5923
|
dumpString(str);
|
5990
5924
|
fputc('\n', stderr);
|
5991
5925
|
}
|
@@ -6007,7 +5941,7 @@ dumpValue(jsval val)
|
|
6007
5941
|
} else if (JSVAL_IS_OBJECT(val) &&
|
6008
5942
|
HAS_FUNCTION_CLASS(JSVAL_TO_OBJECT(val))) {
|
6009
5943
|
JSObject *funobj = JSVAL_TO_OBJECT(val);
|
6010
|
-
JSFunction *fun = (
|
5944
|
+
JSFunction *fun = GET_FUNCTION_PRIVATE(cx, funobj);
|
6011
5945
|
fprintf(stderr, "<%s %s at %p (JSFunction at %p)>",
|
6012
5946
|
fun->atom ? "function" : "unnamed",
|
6013
5947
|
fun->atom ? JS_GetStringBytes(ATOM_TO_STRING(fun->atom)) : "function",
|
@@ -6041,7 +5975,7 @@ dumpValue(jsval val)
|
|
6041
5975
|
JS_FRIEND_API(void)
|
6042
5976
|
js_DumpValue(jsval val)
|
6043
5977
|
{
|
6044
|
-
fprintf(stderr, "jsval %
|
5978
|
+
fprintf(stderr, "jsval %p = ", (void *) val);
|
6045
5979
|
dumpValue(val);
|
6046
5980
|
fputc('\n', stderr);
|
6047
5981
|
}
|
@@ -6049,7 +5983,7 @@ js_DumpValue(jsval val)
|
|
6049
5983
|
JS_FRIEND_API(void)
|
6050
5984
|
js_DumpId(jsid id)
|
6051
5985
|
{
|
6052
|
-
fprintf(stderr, "
|
5986
|
+
fprintf(stderr, "jsid %p = ", (void *) id);
|
6053
5987
|
dumpValue(ID_TO_VALUE(id));
|
6054
5988
|
fputc('\n', stderr);
|
6055
5989
|
}
|
@@ -6084,7 +6018,6 @@ js_DumpObject(JSObject *obj)
|
|
6084
6018
|
uint32 i, slots;
|
6085
6019
|
JSClass *clasp;
|
6086
6020
|
jsuint reservedEnd;
|
6087
|
-
bool sharesScope = false;
|
6088
6021
|
|
6089
6022
|
fprintf(stderr, "object %p\n", (void *) obj);
|
6090
6023
|
clasp = STOBJ_GET_CLASS(obj);
|
@@ -6106,54 +6039,42 @@ js_DumpObject(JSObject *obj)
|
|
6106
6039
|
|
6107
6040
|
if (OBJ_IS_NATIVE(obj)) {
|
6108
6041
|
JSScope *scope = OBJ_SCOPE(obj);
|
6109
|
-
|
6110
|
-
|
6111
|
-
if (SCOPE_IS_SEALED(scope))
|
6042
|
+
if (scope->sealed())
|
6112
6043
|
fprintf(stderr, "sealed\n");
|
6113
6044
|
|
6114
|
-
|
6115
|
-
|
6116
|
-
|
6117
|
-
|
6118
|
-
|
6119
|
-
} else {
|
6120
|
-
fprintf(stderr, "no own properties - null proto\n");
|
6121
|
-
}
|
6122
|
-
} else {
|
6123
|
-
fprintf(stderr, "properties:\n");
|
6124
|
-
for (JSScopeProperty *sprop = SCOPE_LAST_PROP(scope); sprop;
|
6125
|
-
sprop = sprop->parent) {
|
6126
|
-
if (!SCOPE_HAD_MIDDLE_DELETE(scope) ||
|
6127
|
-
SCOPE_HAS_PROPERTY(scope, sprop)) {
|
6128
|
-
dumpScopeProp(sprop);
|
6129
|
-
}
|
6130
|
-
}
|
6045
|
+
fprintf(stderr, "properties:\n");
|
6046
|
+
for (JSScopeProperty *sprop = SCOPE_LAST_PROP(scope); sprop;
|
6047
|
+
sprop = sprop->parent) {
|
6048
|
+
if (!scope->hadMiddleDelete() || scope->has(sprop))
|
6049
|
+
dumpScopeProp(sprop);
|
6131
6050
|
}
|
6132
6051
|
} else {
|
6133
6052
|
if (!OBJ_IS_NATIVE(obj))
|
6134
6053
|
fprintf(stderr, "not native\n");
|
6135
6054
|
}
|
6136
6055
|
|
6056
|
+
fprintf(stderr, "proto ");
|
6057
|
+
dumpValue(OBJECT_TO_JSVAL(STOBJ_GET_PROTO(obj)));
|
6058
|
+
fputc('\n', stderr);
|
6059
|
+
|
6060
|
+
fprintf(stderr, "parent ");
|
6061
|
+
dumpValue(OBJECT_TO_JSVAL(STOBJ_GET_PARENT(obj)));
|
6062
|
+
fputc('\n', stderr);
|
6063
|
+
|
6064
|
+
i = JSSLOT_PRIVATE;
|
6065
|
+
if (clasp->flags & JSCLASS_HAS_PRIVATE) {
|
6066
|
+
i = JSSLOT_PRIVATE + 1;
|
6067
|
+
fprintf(stderr, "private %p\n", obj->getPrivate());
|
6068
|
+
}
|
6069
|
+
|
6137
6070
|
fprintf(stderr, "slots:\n");
|
6138
|
-
reservedEnd =
|
6139
|
-
|
6140
|
-
reservedEnd++;
|
6141
|
-
reservedEnd += JSCLASS_RESERVED_SLOTS(clasp);
|
6142
|
-
slots = (OBJ_IS_NATIVE(obj) && !sharesScope)
|
6071
|
+
reservedEnd = i + JSCLASS_RESERVED_SLOTS(clasp);
|
6072
|
+
slots = (OBJ_IS_NATIVE(obj) && OBJ_SCOPE(obj)->owned())
|
6143
6073
|
? OBJ_SCOPE(obj)->freeslot
|
6144
6074
|
: STOBJ_NSLOTS(obj);
|
6145
|
-
for (
|
6075
|
+
for (; i < slots; i++) {
|
6146
6076
|
fprintf(stderr, " %3d ", i);
|
6147
|
-
if (i
|
6148
|
-
fprintf(stderr, "(private) = %p\n",
|
6149
|
-
JSVAL_TO_PRIVATE(STOBJ_GET_SLOT(obj, i)));
|
6150
|
-
continue;
|
6151
|
-
}
|
6152
|
-
if (i == JSSLOT_PROTO)
|
6153
|
-
fprintf(stderr, "(proto) ");
|
6154
|
-
else if (i == JSSLOT_PARENT)
|
6155
|
-
fprintf(stderr, "(parent) ");
|
6156
|
-
else if (i < reservedEnd)
|
6077
|
+
if (i < reservedEnd)
|
6157
6078
|
fprintf(stderr, "(reserved) ");
|
6158
6079
|
fprintf(stderr, "= ");
|
6159
6080
|
dumpValue(STOBJ_GET_SLOT(obj, i));
|
@@ -6162,4 +6083,115 @@ js_DumpObject(JSObject *obj)
|
|
6162
6083
|
fputc('\n', stderr);
|
6163
6084
|
}
|
6164
6085
|
|
6086
|
+
static void
|
6087
|
+
MaybeDumpObject(const char *name, JSObject *obj)
|
6088
|
+
{
|
6089
|
+
if (obj) {
|
6090
|
+
fprintf(stderr, " %s: ", name);
|
6091
|
+
dumpValue(OBJECT_TO_JSVAL(obj));
|
6092
|
+
fputc('\n', stderr);
|
6093
|
+
}
|
6094
|
+
}
|
6095
|
+
|
6096
|
+
JS_FRIEND_API(void)
|
6097
|
+
js_DumpStackFrame(JSStackFrame *fp)
|
6098
|
+
{
|
6099
|
+
jsval *sp = NULL;
|
6100
|
+
|
6101
|
+
for (; fp; fp = fp->down) {
|
6102
|
+
fprintf(stderr, "JSStackFrame at %p\n", (void *) fp);
|
6103
|
+
if (fp->argv)
|
6104
|
+
dumpValue(fp->argv[-2]);
|
6105
|
+
else
|
6106
|
+
fprintf(stderr, "global frame, no callee");
|
6107
|
+
fputc('\n', stderr);
|
6108
|
+
|
6109
|
+
if (fp->script)
|
6110
|
+
fprintf(stderr, "file %s line %u\n", fp->script->filename, (unsigned) fp->script->lineno);
|
6111
|
+
|
6112
|
+
if (fp->regs) {
|
6113
|
+
if (!fp->regs->pc) {
|
6114
|
+
fprintf(stderr, "*** regs && !regs->pc, skipping frame\n\n");
|
6115
|
+
continue;
|
6116
|
+
}
|
6117
|
+
if (!fp->script) {
|
6118
|
+
fprintf(stderr, "*** regs && !script, skipping frame\n\n");
|
6119
|
+
continue;
|
6120
|
+
}
|
6121
|
+
jsbytecode *pc = fp->regs->pc;
|
6122
|
+
sp = fp->regs->sp;
|
6123
|
+
if (fp->imacpc) {
|
6124
|
+
fprintf(stderr, " pc in imacro at %p\n called from ", pc);
|
6125
|
+
pc = fp->imacpc;
|
6126
|
+
} else {
|
6127
|
+
fprintf(stderr, " ");
|
6128
|
+
}
|
6129
|
+
fprintf(stderr, "pc = %p\n", pc);
|
6130
|
+
fprintf(stderr, " current op: %s\n", js_CodeName[*pc]);
|
6131
|
+
}
|
6132
|
+
if (sp && fp->slots) {
|
6133
|
+
fprintf(stderr, " slots: %p\n", (void *) fp->slots);
|
6134
|
+
fprintf(stderr, " sp: %p = slots + %u\n", (void *) sp, (unsigned) (sp - fp->slots));
|
6135
|
+
if (sp - fp->slots < 10000) { // sanity
|
6136
|
+
for (jsval *p = fp->slots; p < sp; p++) {
|
6137
|
+
fprintf(stderr, " %p: ", (void *) p);
|
6138
|
+
dumpValue(*p);
|
6139
|
+
fputc('\n', stderr);
|
6140
|
+
}
|
6141
|
+
}
|
6142
|
+
} else {
|
6143
|
+
fprintf(stderr, " sp: %p\n", (void *) sp);
|
6144
|
+
fprintf(stderr, " slots: %p\n", (void *) fp->slots);
|
6145
|
+
}
|
6146
|
+
fprintf(stderr, " argv: %p (argc: %u)\n", (void *) fp->argv, (unsigned) fp->argc);
|
6147
|
+
MaybeDumpObject("callobj", fp->callobj);
|
6148
|
+
MaybeDumpObject("argsobj", JSVAL_TO_OBJECT(fp->argsobj));
|
6149
|
+
MaybeDumpObject("varobj", fp->varobj);
|
6150
|
+
MaybeDumpObject("this", fp->thisp);
|
6151
|
+
fprintf(stderr, " rval: ");
|
6152
|
+
dumpValue(fp->rval);
|
6153
|
+
fputc('\n', stderr);
|
6154
|
+
|
6155
|
+
fprintf(stderr, " flags:");
|
6156
|
+
if (fp->flags == 0)
|
6157
|
+
fprintf(stderr, " none");
|
6158
|
+
if (fp->flags & JSFRAME_CONSTRUCTING)
|
6159
|
+
fprintf(stderr, " constructing");
|
6160
|
+
if (fp->flags & JSFRAME_COMPUTED_THIS)
|
6161
|
+
fprintf(stderr, " computed_this");
|
6162
|
+
if (fp->flags & JSFRAME_ASSIGNING)
|
6163
|
+
fprintf(stderr, " assigning");
|
6164
|
+
if (fp->flags & JSFRAME_DEBUGGER)
|
6165
|
+
fprintf(stderr, " debugger");
|
6166
|
+
if (fp->flags & JSFRAME_EVAL)
|
6167
|
+
fprintf(stderr, " eval");
|
6168
|
+
if (fp->flags & JSFRAME_ROOTED_ARGV)
|
6169
|
+
fprintf(stderr, " rooted_argv");
|
6170
|
+
if (fp->flags & JSFRAME_YIELDING)
|
6171
|
+
fprintf(stderr, " yielding");
|
6172
|
+
if (fp->flags & JSFRAME_ITERATOR)
|
6173
|
+
fprintf(stderr, " iterator");
|
6174
|
+
if (fp->flags & JSFRAME_GENERATOR)
|
6175
|
+
fprintf(stderr, " generator");
|
6176
|
+
if (fp->flags & JSFRAME_OVERRIDE_ARGS)
|
6177
|
+
fprintf(stderr, " overridden_args");
|
6178
|
+
fputc('\n', stderr);
|
6179
|
+
|
6180
|
+
if (fp->scopeChain)
|
6181
|
+
fprintf(stderr, " scopeChain: (JSObject *) %p\n", (void *) fp->scopeChain);
|
6182
|
+
if (fp->blockChain)
|
6183
|
+
fprintf(stderr, " blockChain: (JSObject *) %p\n", (void *) fp->blockChain);
|
6184
|
+
|
6185
|
+
if (fp->sharpDepth)
|
6186
|
+
fprintf(stderr, " sharpDepth: %u\n", (unsigned) fp->sharpDepth);
|
6187
|
+
|
6188
|
+
if (fp->dormantNext)
|
6189
|
+
fprintf(stderr, " dormantNext: (JSStackFrame *) %p\n", (void *) fp->dormantNext);
|
6190
|
+
if (fp->displaySave)
|
6191
|
+
fprintf(stderr, " displaySave: (JSStackFrame *) %p\n", (void *) fp->displaySave);
|
6192
|
+
|
6193
|
+
fputc('\n', stderr);
|
6194
|
+
}
|
6195
|
+
}
|
6196
|
+
|
6165
6197
|
#endif
|