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
@@ -311,26 +311,45 @@ js_GetIndexFromBytecode(JSContext *cx, JSScript *script, jsbytecode *pc,
|
|
311
311
|
*/
|
312
312
|
#define GET_ATOM_FROM_BYTECODE(script, pc, pcoff, atom) \
|
313
313
|
JS_BEGIN_MACRO \
|
314
|
+
JS_ASSERT(*(pc) != JSOP_DOUBLE); \
|
314
315
|
uintN index_ = js_GetIndexFromBytecode(cx, (script), (pc), (pcoff)); \
|
315
|
-
JS_GET_SCRIPT_ATOM(
|
316
|
+
JS_GET_SCRIPT_ATOM(script, pc, index_, atom); \
|
317
|
+
JS_END_MACRO
|
318
|
+
|
319
|
+
/*
|
320
|
+
* Variant for getting a double atom when we might be in an imacro. Bytecodes
|
321
|
+
* with literals that are only ever doubles must use this macro, and never use
|
322
|
+
* GET_ATOM_FROM_BYTECODE or JS_GET_SCRIPT_ATOM.
|
323
|
+
*
|
324
|
+
* Unfortunately some bytecodes such as JSOP_LOOKUPSWITCH have immediates that
|
325
|
+
* might be string or double atoms. Those opcodes cannot be used from imacros.
|
326
|
+
* See the assertions in the JSOP_DOUBLE and JSOP_LOOKUPSWTICH* opcode cases in
|
327
|
+
* jsops.cpp.
|
328
|
+
*/
|
329
|
+
#define GET_DOUBLE_FROM_BYTECODE(script, pc, pcoff, atom) \
|
330
|
+
JS_BEGIN_MACRO \
|
331
|
+
uintN index_ = js_GetIndexFromBytecode(cx, (script), (pc), (pcoff)); \
|
332
|
+
JS_ASSERT(index_ < (script)->atomMap.length); \
|
333
|
+
(atom) = (script)->atomMap.vector[index_]; \
|
334
|
+
JS_ASSERT(ATOM_IS_DOUBLE(atom)); \
|
316
335
|
JS_END_MACRO
|
317
336
|
|
318
337
|
#define GET_OBJECT_FROM_BYTECODE(script, pc, pcoff, obj) \
|
319
338
|
JS_BEGIN_MACRO \
|
320
339
|
uintN index_ = js_GetIndexFromBytecode(cx, (script), (pc), (pcoff)); \
|
321
|
-
|
340
|
+
obj = (script)->getObject(index_); \
|
322
341
|
JS_END_MACRO
|
323
342
|
|
324
343
|
#define GET_FUNCTION_FROM_BYTECODE(script, pc, pcoff, fun) \
|
325
344
|
JS_BEGIN_MACRO \
|
326
345
|
uintN index_ = js_GetIndexFromBytecode(cx, (script), (pc), (pcoff)); \
|
327
|
-
|
346
|
+
fun = (script)->getFunction(index_); \
|
328
347
|
JS_END_MACRO
|
329
348
|
|
330
349
|
#define GET_REGEXP_FROM_BYTECODE(script, pc, pcoff, obj) \
|
331
350
|
JS_BEGIN_MACRO \
|
332
351
|
uintN index_ = js_GetIndexFromBytecode(cx, (script), (pc), (pcoff)); \
|
333
|
-
|
352
|
+
obj = (script)->getRegExp(index_); \
|
334
353
|
JS_END_MACRO
|
335
354
|
|
336
355
|
/*
|
@@ -579,7 +579,7 @@ OPDEF(JSOP_LAMBDA_FC, 226,"lambda_fc", NULL, 3, 0, 1, 19, JOF_OBJECT
|
|
579
579
|
*/
|
580
580
|
OPDEF(JSOP_OBJTOP, 227,"objtop", NULL, 3, 0, 0, 0, JOF_UINT16)
|
581
581
|
|
582
|
-
OPDEF(
|
582
|
+
OPDEF(JSOP_TRACE, 228, "trace", NULL, 1, 0, 0, 0, JOF_BYTE)
|
583
583
|
|
584
584
|
/*
|
585
585
|
* Debugger versions of JSOP_{GET,CALL}UPVAR.
|
@@ -589,3 +589,9 @@ OPDEF(JSOP_CALLUPVAR_DBG, 230,"callupvar_dbg", NULL, 3, 0, 2, 19, JOF_UINT16
|
|
589
589
|
OPDEF(JSOP_DEFFUN_DBGFC, 231,"deffun_dbgfc", NULL, 3, 0, 0, 0, JOF_OBJECT|JOF_DECLARING)
|
590
590
|
OPDEF(JSOP_DEFLOCALFUN_DBGFC,232,"deflocalfun_dbgfc",NULL, 5, 0, 0, 0, JOF_SLOTOBJECT|JOF_DECLARING)
|
591
591
|
OPDEF(JSOP_LAMBDA_DBGFC, 233,"lambda_dbgfc", NULL, 3, 0, 1, 19, JOF_OBJECT)
|
592
|
+
|
593
|
+
/*
|
594
|
+
* Concatenate N values, coercing to string if necessary, where N is concatn's
|
595
|
+
* immediate. See record_JSOP_CONCATN for recording behavior.
|
596
|
+
*/
|
597
|
+
OPDEF(JSOP_CONCATN, 234,"concatn", NULL, 3, -1, 1, 13, JOF_UINT16|JOF_TMPSLOT2)
|
@@ -0,0 +1,4213 @@
|
|
1
|
+
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
2
|
+
* vim: set ts=8 sw=4 et tw=79:
|
3
|
+
*
|
4
|
+
* ***** BEGIN LICENSE BLOCK *****
|
5
|
+
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
6
|
+
*
|
7
|
+
* The contents of this file are subject to the Mozilla Public License Version
|
8
|
+
* 1.1 (the "License"); you may not use this file except in compliance with
|
9
|
+
* the License. You may obtain a copy of the License at
|
10
|
+
* http://www.mozilla.org/MPL/
|
11
|
+
*
|
12
|
+
* Software distributed under the License is distributed on an "AS IS" basis,
|
13
|
+
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
14
|
+
* for the specific language governing rights and limitations under the
|
15
|
+
* License.
|
16
|
+
*
|
17
|
+
* The Original Code is Mozilla Communicator client code, released
|
18
|
+
* March 31, 1998.
|
19
|
+
*
|
20
|
+
* The Initial Developer of the Original Code is
|
21
|
+
* Netscape Communications Corporation.
|
22
|
+
* Portions created by the Initial Developer are Copyright (C) 1998
|
23
|
+
* the Initial Developer. All Rights Reserved.
|
24
|
+
*
|
25
|
+
* Contributor(s):
|
26
|
+
*
|
27
|
+
* Alternatively, the contents of this file may be used under the terms of
|
28
|
+
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
29
|
+
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
30
|
+
* in which case the provisions of the GPL or the LGPL are applicable instead
|
31
|
+
* of those above. If you wish to allow use of your version of this file only
|
32
|
+
* under the terms of either the GPL or the LGPL, and not to allow others to
|
33
|
+
* use your version of this file under the terms of the MPL, indicate your
|
34
|
+
* decision by deleting the provisions above and replace them with the notice
|
35
|
+
* and other provisions required by the GPL or the LGPL. If you do not delete
|
36
|
+
* the provisions above, a recipient may use your version of this file under
|
37
|
+
* the terms of any one of the MPL, the GPL or the LGPL.
|
38
|
+
*
|
39
|
+
* ***** END LICENSE BLOCK ***** */
|
40
|
+
|
41
|
+
/* This file needs to be included in possibly multiple places. */
|
42
|
+
|
43
|
+
#if JS_THREADED_INTERP
|
44
|
+
interrupt:
|
45
|
+
#else /* !JS_THREADED_INTERP */
|
46
|
+
case -1:
|
47
|
+
JS_ASSERT(switchMask == -1);
|
48
|
+
#endif /* !JS_THREADED_INTERP */
|
49
|
+
{
|
50
|
+
bool moreInterrupts = false;
|
51
|
+
JSTrapHandler handler = cx->debugHooks->interruptHandler;
|
52
|
+
if (handler) {
|
53
|
+
#ifdef JS_TRACER
|
54
|
+
if (TRACE_RECORDER(cx))
|
55
|
+
js_AbortRecording(cx, "interrupt handler");
|
56
|
+
#endif
|
57
|
+
switch (handler(cx, script, regs.pc, &rval,
|
58
|
+
cx->debugHooks->interruptHandlerData)) {
|
59
|
+
case JSTRAP_ERROR:
|
60
|
+
goto error;
|
61
|
+
case JSTRAP_CONTINUE:
|
62
|
+
break;
|
63
|
+
case JSTRAP_RETURN:
|
64
|
+
fp->rval = rval;
|
65
|
+
ok = JS_TRUE;
|
66
|
+
goto forced_return;
|
67
|
+
case JSTRAP_THROW:
|
68
|
+
cx->throwing = JS_TRUE;
|
69
|
+
cx->exception = rval;
|
70
|
+
goto error;
|
71
|
+
default:;
|
72
|
+
}
|
73
|
+
moreInterrupts = true;
|
74
|
+
}
|
75
|
+
|
76
|
+
#ifdef JS_TRACER
|
77
|
+
TraceRecorder* tr = TRACE_RECORDER(cx);
|
78
|
+
if (tr) {
|
79
|
+
JSRecordingStatus status = TraceRecorder::monitorRecording(cx, tr, op);
|
80
|
+
switch (status) {
|
81
|
+
case JSRS_CONTINUE:
|
82
|
+
moreInterrupts = true;
|
83
|
+
break;
|
84
|
+
case JSRS_IMACRO:
|
85
|
+
atoms = COMMON_ATOMS_START(&rt->atomState);
|
86
|
+
op = JSOp(*regs.pc);
|
87
|
+
DO_OP(); /* keep interrupting for op. */
|
88
|
+
break;
|
89
|
+
case JSRS_ERROR:
|
90
|
+
// The code at 'error:' aborts the recording.
|
91
|
+
goto error;
|
92
|
+
case JSRS_STOP:
|
93
|
+
break;
|
94
|
+
default:
|
95
|
+
JS_NOT_REACHED("Bad recording status");
|
96
|
+
}
|
97
|
+
}
|
98
|
+
#endif /* !JS_TRACER */
|
99
|
+
|
100
|
+
#if JS_THREADED_INTERP
|
101
|
+
#ifdef MOZ_TRACEVIS
|
102
|
+
if (!moreInterrupts)
|
103
|
+
js_ExitTraceVisState(cx, R_ABORT);
|
104
|
+
#endif
|
105
|
+
jumpTable = moreInterrupts ? interruptJumpTable : normalJumpTable;
|
106
|
+
JS_EXTENSION_(goto *normalJumpTable[op]);
|
107
|
+
#else
|
108
|
+
switchMask = moreInterrupts ? -1 : 0;
|
109
|
+
switchOp = intN(op);
|
110
|
+
goto do_switch;
|
111
|
+
#endif
|
112
|
+
}
|
113
|
+
|
114
|
+
/* No-ops for ease of decompilation. */
|
115
|
+
ADD_EMPTY_CASE(JSOP_NOP)
|
116
|
+
ADD_EMPTY_CASE(JSOP_CONDSWITCH)
|
117
|
+
ADD_EMPTY_CASE(JSOP_TRY)
|
118
|
+
ADD_EMPTY_CASE(JSOP_TRACE)
|
119
|
+
#if JS_HAS_XML_SUPPORT
|
120
|
+
ADD_EMPTY_CASE(JSOP_STARTXML)
|
121
|
+
ADD_EMPTY_CASE(JSOP_STARTXMLEXPR)
|
122
|
+
#endif
|
123
|
+
END_EMPTY_CASES
|
124
|
+
|
125
|
+
/* ADD_EMPTY_CASE is not used here as JSOP_LINENO_LENGTH == 3. */
|
126
|
+
BEGIN_CASE(JSOP_LINENO)
|
127
|
+
END_CASE(JSOP_LINENO)
|
128
|
+
|
129
|
+
BEGIN_CASE(JSOP_PUSH)
|
130
|
+
PUSH_OPND(JSVAL_VOID);
|
131
|
+
END_CASE(JSOP_PUSH)
|
132
|
+
|
133
|
+
BEGIN_CASE(JSOP_POP)
|
134
|
+
regs.sp--;
|
135
|
+
END_CASE(JSOP_POP)
|
136
|
+
|
137
|
+
BEGIN_CASE(JSOP_POPN)
|
138
|
+
regs.sp -= GET_UINT16(regs.pc);
|
139
|
+
#ifdef DEBUG
|
140
|
+
JS_ASSERT(StackBase(fp) <= regs.sp);
|
141
|
+
obj = fp->blockChain;
|
142
|
+
JS_ASSERT_IF(obj,
|
143
|
+
OBJ_BLOCK_DEPTH(cx, obj) + OBJ_BLOCK_COUNT(cx, obj)
|
144
|
+
<= (size_t) (regs.sp - StackBase(fp)));
|
145
|
+
for (obj = fp->scopeChain; obj; obj = OBJ_GET_PARENT(cx, obj)) {
|
146
|
+
clasp = OBJ_GET_CLASS(cx, obj);
|
147
|
+
if (clasp != &js_BlockClass && clasp != &js_WithClass)
|
148
|
+
continue;
|
149
|
+
if (obj->getPrivate() != fp)
|
150
|
+
break;
|
151
|
+
JS_ASSERT(StackBase(fp) + OBJ_BLOCK_DEPTH(cx, obj)
|
152
|
+
+ ((clasp == &js_BlockClass)
|
153
|
+
? OBJ_BLOCK_COUNT(cx, obj)
|
154
|
+
: 1)
|
155
|
+
<= regs.sp);
|
156
|
+
}
|
157
|
+
#endif
|
158
|
+
END_CASE(JSOP_POPN)
|
159
|
+
|
160
|
+
BEGIN_CASE(JSOP_SETRVAL)
|
161
|
+
BEGIN_CASE(JSOP_POPV)
|
162
|
+
ASSERT_NOT_THROWING(cx);
|
163
|
+
fp->rval = POP_OPND();
|
164
|
+
END_CASE(JSOP_POPV)
|
165
|
+
|
166
|
+
BEGIN_CASE(JSOP_ENTERWITH)
|
167
|
+
if (!js_EnterWith(cx, -1))
|
168
|
+
goto error;
|
169
|
+
|
170
|
+
/*
|
171
|
+
* We must ensure that different "with" blocks have different
|
172
|
+
* stack depth associated with them. This allows the try handler
|
173
|
+
* search to properly recover the scope chain. Thus we must keep
|
174
|
+
* the stack at least at the current level.
|
175
|
+
*
|
176
|
+
* We set sp[-1] to the current "with" object to help asserting
|
177
|
+
* the enter/leave balance in [leavewith].
|
178
|
+
*/
|
179
|
+
regs.sp[-1] = OBJECT_TO_JSVAL(fp->scopeChain);
|
180
|
+
END_CASE(JSOP_ENTERWITH)
|
181
|
+
|
182
|
+
BEGIN_CASE(JSOP_LEAVEWITH)
|
183
|
+
JS_ASSERT(regs.sp[-1] == OBJECT_TO_JSVAL(fp->scopeChain));
|
184
|
+
regs.sp--;
|
185
|
+
js_LeaveWith(cx);
|
186
|
+
END_CASE(JSOP_LEAVEWITH)
|
187
|
+
|
188
|
+
BEGIN_CASE(JSOP_RETURN)
|
189
|
+
fp->rval = POP_OPND();
|
190
|
+
/* FALL THROUGH */
|
191
|
+
|
192
|
+
BEGIN_CASE(JSOP_RETRVAL) /* fp->rval already set */
|
193
|
+
BEGIN_CASE(JSOP_STOP)
|
194
|
+
/*
|
195
|
+
* When the inlined frame exits with an exception or an error, ok
|
196
|
+
* will be false after the inline_return label.
|
197
|
+
*/
|
198
|
+
ASSERT_NOT_THROWING(cx);
|
199
|
+
CHECK_BRANCH();
|
200
|
+
|
201
|
+
if (fp->imacpc) {
|
202
|
+
/*
|
203
|
+
* If we are at the end of an imacro, return to its caller in
|
204
|
+
* the current frame.
|
205
|
+
*/
|
206
|
+
JS_ASSERT(op == JSOP_STOP);
|
207
|
+
|
208
|
+
end_imacro:
|
209
|
+
JS_ASSERT((uintN)(regs.sp - fp->slots) <= script->nslots);
|
210
|
+
regs.pc = fp->imacpc + js_CodeSpec[*fp->imacpc].length;
|
211
|
+
fp->imacpc = NULL;
|
212
|
+
atoms = script->atomMap.vector;
|
213
|
+
op = JSOp(*regs.pc);
|
214
|
+
DO_OP();
|
215
|
+
}
|
216
|
+
|
217
|
+
JS_ASSERT(regs.sp == StackBase(fp));
|
218
|
+
if ((fp->flags & JSFRAME_CONSTRUCTING) &&
|
219
|
+
JSVAL_IS_PRIMITIVE(fp->rval)) {
|
220
|
+
if (!fp->fun) {
|
221
|
+
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL,
|
222
|
+
JSMSG_BAD_NEW_RESULT,
|
223
|
+
js_ValueToPrintableString(cx, rval));
|
224
|
+
goto error;
|
225
|
+
}
|
226
|
+
fp->rval = OBJECT_TO_JSVAL(fp->thisp);
|
227
|
+
}
|
228
|
+
ok = JS_TRUE;
|
229
|
+
if (inlineCallCount)
|
230
|
+
inline_return:
|
231
|
+
{
|
232
|
+
JSInlineFrame *ifp = (JSInlineFrame *) fp;
|
233
|
+
void *hookData = ifp->hookData;
|
234
|
+
|
235
|
+
JS_ASSERT(!fp->blockChain);
|
236
|
+
JS_ASSERT(!js_IsActiveWithOrBlock(cx, fp->scopeChain, 0));
|
237
|
+
|
238
|
+
if (script->staticLevel < JS_DISPLAY_SIZE)
|
239
|
+
cx->display[script->staticLevel] = fp->displaySave;
|
240
|
+
|
241
|
+
if (hookData) {
|
242
|
+
JSInterpreterHook hook;
|
243
|
+
JSBool status;
|
244
|
+
|
245
|
+
hook = cx->debugHooks->callHook;
|
246
|
+
if (hook) {
|
247
|
+
/*
|
248
|
+
* Do not pass &ok directly as exposing the address
|
249
|
+
* inhibits optimizations and uninitialised warnings.
|
250
|
+
*/
|
251
|
+
status = ok;
|
252
|
+
hook(cx, fp, JS_FALSE, &status, hookData);
|
253
|
+
ok = status;
|
254
|
+
CHECK_INTERRUPT_HANDLER();
|
255
|
+
}
|
256
|
+
}
|
257
|
+
|
258
|
+
/*
|
259
|
+
* If fp has a call object, sync values and clear the back-
|
260
|
+
* pointer. This can happen for a lightweight function if it
|
261
|
+
* calls eval unexpectedly (in a way that is hidden from the
|
262
|
+
* compiler). See bug 325540.
|
263
|
+
*/
|
264
|
+
fp->putActivationObjects(cx);
|
265
|
+
|
266
|
+
#ifdef INCLUDE_MOZILLA_DTRACE
|
267
|
+
/* DTrace function return, inlines */
|
268
|
+
if (JAVASCRIPT_FUNCTION_RVAL_ENABLED())
|
269
|
+
jsdtrace_function_rval(cx, fp, fp->fun, &fp->rval);
|
270
|
+
if (JAVASCRIPT_FUNCTION_RETURN_ENABLED())
|
271
|
+
jsdtrace_function_return(cx, fp, fp->fun);
|
272
|
+
#endif
|
273
|
+
|
274
|
+
/* Restore context version only if callee hasn't set version. */
|
275
|
+
if (JS_LIKELY(cx->version == currentVersion)) {
|
276
|
+
currentVersion = ifp->callerVersion;
|
277
|
+
if (currentVersion != cx->version)
|
278
|
+
js_SetVersion(cx, currentVersion);
|
279
|
+
}
|
280
|
+
|
281
|
+
/*
|
282
|
+
* If inline-constructing, replace primitive rval with the new
|
283
|
+
* object passed in via |this|, and instrument this constructor
|
284
|
+
* invocation
|
285
|
+
*/
|
286
|
+
if (fp->flags & JSFRAME_CONSTRUCTING) {
|
287
|
+
if (JSVAL_IS_PRIMITIVE(fp->rval))
|
288
|
+
fp->rval = OBJECT_TO_JSVAL(fp->thisp);
|
289
|
+
JS_RUNTIME_METER(cx->runtime, constructs);
|
290
|
+
}
|
291
|
+
|
292
|
+
/* Restore caller's registers. */
|
293
|
+
regs = ifp->callerRegs;
|
294
|
+
|
295
|
+
/* Store the return value in the caller's operand frame. */
|
296
|
+
regs.sp -= 1 + (size_t) ifp->frame.argc;
|
297
|
+
regs.sp[-1] = fp->rval;
|
298
|
+
|
299
|
+
/* Restore cx->fp and release the inline frame's space. */
|
300
|
+
cx->fp = fp = fp->down;
|
301
|
+
JS_ASSERT(fp->regs == &ifp->callerRegs);
|
302
|
+
fp->regs = ®s;
|
303
|
+
JS_ARENA_RELEASE(&cx->stackPool, ifp->mark);
|
304
|
+
|
305
|
+
/* Restore the calling script's interpreter registers. */
|
306
|
+
script = fp->script;
|
307
|
+
atoms = FrameAtomBase(cx, fp);
|
308
|
+
|
309
|
+
/* Resume execution in the calling frame. */
|
310
|
+
inlineCallCount--;
|
311
|
+
if (JS_LIKELY(ok)) {
|
312
|
+
TRACE_0(LeaveFrame);
|
313
|
+
JS_ASSERT(js_CodeSpec[js_GetOpcode(cx, script, regs.pc)].length
|
314
|
+
== JSOP_CALL_LENGTH);
|
315
|
+
len = JSOP_CALL_LENGTH;
|
316
|
+
DO_NEXT_OP(len);
|
317
|
+
}
|
318
|
+
goto error;
|
319
|
+
}
|
320
|
+
goto exit;
|
321
|
+
|
322
|
+
BEGIN_CASE(JSOP_DEFAULT)
|
323
|
+
(void) POP();
|
324
|
+
/* FALL THROUGH */
|
325
|
+
BEGIN_CASE(JSOP_GOTO)
|
326
|
+
len = GET_JUMP_OFFSET(regs.pc);
|
327
|
+
BRANCH(len);
|
328
|
+
END_CASE(JSOP_GOTO)
|
329
|
+
|
330
|
+
BEGIN_CASE(JSOP_IFEQ)
|
331
|
+
POP_BOOLEAN(cx, rval, cond);
|
332
|
+
if (cond == JS_FALSE) {
|
333
|
+
len = GET_JUMP_OFFSET(regs.pc);
|
334
|
+
BRANCH(len);
|
335
|
+
}
|
336
|
+
END_CASE(JSOP_IFEQ)
|
337
|
+
|
338
|
+
BEGIN_CASE(JSOP_IFNE)
|
339
|
+
POP_BOOLEAN(cx, rval, cond);
|
340
|
+
if (cond != JS_FALSE) {
|
341
|
+
len = GET_JUMP_OFFSET(regs.pc);
|
342
|
+
BRANCH(len);
|
343
|
+
}
|
344
|
+
END_CASE(JSOP_IFNE)
|
345
|
+
|
346
|
+
BEGIN_CASE(JSOP_OR)
|
347
|
+
POP_BOOLEAN(cx, rval, cond);
|
348
|
+
if (cond == JS_TRUE) {
|
349
|
+
len = GET_JUMP_OFFSET(regs.pc);
|
350
|
+
PUSH_OPND(rval);
|
351
|
+
DO_NEXT_OP(len);
|
352
|
+
}
|
353
|
+
END_CASE(JSOP_OR)
|
354
|
+
|
355
|
+
BEGIN_CASE(JSOP_AND)
|
356
|
+
POP_BOOLEAN(cx, rval, cond);
|
357
|
+
if (cond == JS_FALSE) {
|
358
|
+
len = GET_JUMP_OFFSET(regs.pc);
|
359
|
+
PUSH_OPND(rval);
|
360
|
+
DO_NEXT_OP(len);
|
361
|
+
}
|
362
|
+
END_CASE(JSOP_AND)
|
363
|
+
|
364
|
+
BEGIN_CASE(JSOP_DEFAULTX)
|
365
|
+
(void) POP();
|
366
|
+
/* FALL THROUGH */
|
367
|
+
BEGIN_CASE(JSOP_GOTOX)
|
368
|
+
len = GET_JUMPX_OFFSET(regs.pc);
|
369
|
+
BRANCH(len);
|
370
|
+
END_CASE(JSOP_GOTOX);
|
371
|
+
|
372
|
+
BEGIN_CASE(JSOP_IFEQX)
|
373
|
+
POP_BOOLEAN(cx, rval, cond);
|
374
|
+
if (cond == JS_FALSE) {
|
375
|
+
len = GET_JUMPX_OFFSET(regs.pc);
|
376
|
+
BRANCH(len);
|
377
|
+
}
|
378
|
+
END_CASE(JSOP_IFEQX)
|
379
|
+
|
380
|
+
BEGIN_CASE(JSOP_IFNEX)
|
381
|
+
POP_BOOLEAN(cx, rval, cond);
|
382
|
+
if (cond != JS_FALSE) {
|
383
|
+
len = GET_JUMPX_OFFSET(regs.pc);
|
384
|
+
BRANCH(len);
|
385
|
+
}
|
386
|
+
END_CASE(JSOP_IFNEX)
|
387
|
+
|
388
|
+
BEGIN_CASE(JSOP_ORX)
|
389
|
+
POP_BOOLEAN(cx, rval, cond);
|
390
|
+
if (cond == JS_TRUE) {
|
391
|
+
len = GET_JUMPX_OFFSET(regs.pc);
|
392
|
+
PUSH_OPND(rval);
|
393
|
+
DO_NEXT_OP(len);
|
394
|
+
}
|
395
|
+
END_CASE(JSOP_ORX)
|
396
|
+
|
397
|
+
BEGIN_CASE(JSOP_ANDX)
|
398
|
+
POP_BOOLEAN(cx, rval, cond);
|
399
|
+
if (cond == JS_FALSE) {
|
400
|
+
len = GET_JUMPX_OFFSET(regs.pc);
|
401
|
+
PUSH_OPND(rval);
|
402
|
+
DO_NEXT_OP(len);
|
403
|
+
}
|
404
|
+
END_CASE(JSOP_ANDX)
|
405
|
+
|
406
|
+
/*
|
407
|
+
* If the index value at sp[n] is not an int that fits in a jsval, it could
|
408
|
+
* be an object (an XML QName, AttributeName, or AnyName), but only if we are
|
409
|
+
* compiling with JS_HAS_XML_SUPPORT. Otherwise convert the index value to a
|
410
|
+
* string atom id.
|
411
|
+
*/
|
412
|
+
#define FETCH_ELEMENT_ID(obj, n, id) \
|
413
|
+
JS_BEGIN_MACRO \
|
414
|
+
jsval idval_ = FETCH_OPND(n); \
|
415
|
+
if (JSVAL_IS_INT(idval_)) { \
|
416
|
+
id = INT_JSVAL_TO_JSID(idval_); \
|
417
|
+
} else { \
|
418
|
+
if (!js_InternNonIntElementId(cx, obj, idval_, &id)) \
|
419
|
+
goto error; \
|
420
|
+
regs.sp[n] = ID_TO_VALUE(id); \
|
421
|
+
} \
|
422
|
+
JS_END_MACRO
|
423
|
+
|
424
|
+
#define TRY_BRANCH_AFTER_COND(cond,spdec) \
|
425
|
+
JS_BEGIN_MACRO \
|
426
|
+
uintN diff_; \
|
427
|
+
JS_ASSERT(js_CodeSpec[op].length == 1); \
|
428
|
+
diff_ = (uintN) regs.pc[1] - (uintN) JSOP_IFEQ; \
|
429
|
+
if (diff_ <= 1) { \
|
430
|
+
regs.sp -= spdec; \
|
431
|
+
if (cond == (diff_ != 0)) { \
|
432
|
+
++regs.pc; \
|
433
|
+
len = GET_JUMP_OFFSET(regs.pc); \
|
434
|
+
BRANCH(len); \
|
435
|
+
} \
|
436
|
+
len = 1 + JSOP_IFEQ_LENGTH; \
|
437
|
+
DO_NEXT_OP(len); \
|
438
|
+
} \
|
439
|
+
JS_END_MACRO
|
440
|
+
|
441
|
+
BEGIN_CASE(JSOP_IN)
|
442
|
+
rval = FETCH_OPND(-1);
|
443
|
+
if (JSVAL_IS_PRIMITIVE(rval)) {
|
444
|
+
js_ReportValueError(cx, JSMSG_IN_NOT_OBJECT, -1, rval, NULL);
|
445
|
+
goto error;
|
446
|
+
}
|
447
|
+
obj = JSVAL_TO_OBJECT(rval);
|
448
|
+
FETCH_ELEMENT_ID(obj, -2, id);
|
449
|
+
if (!obj->lookupProperty(cx, id, &obj2, &prop))
|
450
|
+
goto error;
|
451
|
+
cond = prop != NULL;
|
452
|
+
if (prop)
|
453
|
+
obj2->dropProperty(cx, prop);
|
454
|
+
TRY_BRANCH_AFTER_COND(cond, 2);
|
455
|
+
regs.sp--;
|
456
|
+
STORE_OPND(-1, BOOLEAN_TO_JSVAL(cond));
|
457
|
+
END_CASE(JSOP_IN)
|
458
|
+
|
459
|
+
BEGIN_CASE(JSOP_ITER)
|
460
|
+
JS_ASSERT(regs.sp > StackBase(fp));
|
461
|
+
flags = regs.pc[1];
|
462
|
+
if (!js_ValueToIterator(cx, flags, ®s.sp[-1]))
|
463
|
+
goto error;
|
464
|
+
CHECK_INTERRUPT_HANDLER();
|
465
|
+
JS_ASSERT(!JSVAL_IS_PRIMITIVE(regs.sp[-1]));
|
466
|
+
PUSH(JSVAL_VOID);
|
467
|
+
END_CASE(JSOP_ITER)
|
468
|
+
|
469
|
+
BEGIN_CASE(JSOP_NEXTITER)
|
470
|
+
JS_ASSERT(regs.sp - 2 >= StackBase(fp));
|
471
|
+
JS_ASSERT(!JSVAL_IS_PRIMITIVE(regs.sp[-2]));
|
472
|
+
if (!js_CallIteratorNext(cx, JSVAL_TO_OBJECT(regs.sp[-2]), ®s.sp[-1]))
|
473
|
+
goto error;
|
474
|
+
CHECK_INTERRUPT_HANDLER();
|
475
|
+
rval = BOOLEAN_TO_JSVAL(regs.sp[-1] != JSVAL_HOLE);
|
476
|
+
PUSH(rval);
|
477
|
+
END_CASE(JSOP_NEXTITER)
|
478
|
+
|
479
|
+
BEGIN_CASE(JSOP_ENDITER)
|
480
|
+
/*
|
481
|
+
* Decrease the stack pointer even when !ok -- see comments in the
|
482
|
+
* exception capturing code for details.
|
483
|
+
*/
|
484
|
+
JS_ASSERT(regs.sp - 2 >= StackBase(fp));
|
485
|
+
ok = js_CloseIterator(cx, regs.sp[-2]);
|
486
|
+
regs.sp -= 2;
|
487
|
+
if (!ok)
|
488
|
+
goto error;
|
489
|
+
END_CASE(JSOP_ENDITER)
|
490
|
+
|
491
|
+
BEGIN_CASE(JSOP_FORARG)
|
492
|
+
JS_ASSERT(regs.sp - 2 >= StackBase(fp));
|
493
|
+
slot = GET_ARGNO(regs.pc);
|
494
|
+
JS_ASSERT(slot < fp->fun->nargs);
|
495
|
+
fp->argv[slot] = regs.sp[-1];
|
496
|
+
END_CASE(JSOP_FORARG)
|
497
|
+
|
498
|
+
BEGIN_CASE(JSOP_FORLOCAL)
|
499
|
+
JS_ASSERT(regs.sp - 2 >= StackBase(fp));
|
500
|
+
slot = GET_SLOTNO(regs.pc);
|
501
|
+
JS_ASSERT(slot < fp->script->nslots);
|
502
|
+
fp->slots[slot] = regs.sp[-1];
|
503
|
+
END_CASE(JSOP_FORLOCAL)
|
504
|
+
|
505
|
+
BEGIN_CASE(JSOP_FORNAME)
|
506
|
+
JS_ASSERT(regs.sp - 2 >= StackBase(fp));
|
507
|
+
LOAD_ATOM(0);
|
508
|
+
id = ATOM_TO_JSID(atom);
|
509
|
+
if (!js_FindProperty(cx, id, &obj, &obj2, &prop))
|
510
|
+
goto error;
|
511
|
+
if (prop)
|
512
|
+
obj2->dropProperty(cx, prop);
|
513
|
+
ok = obj->setProperty(cx, id, ®s.sp[-1]);
|
514
|
+
if (!ok)
|
515
|
+
goto error;
|
516
|
+
END_CASE(JSOP_FORNAME)
|
517
|
+
|
518
|
+
BEGIN_CASE(JSOP_FORPROP)
|
519
|
+
JS_ASSERT(regs.sp - 2 >= StackBase(fp));
|
520
|
+
LOAD_ATOM(0);
|
521
|
+
id = ATOM_TO_JSID(atom);
|
522
|
+
FETCH_OBJECT(cx, -1, lval, obj);
|
523
|
+
ok = obj->setProperty(cx, id, ®s.sp[-2]);
|
524
|
+
if (!ok)
|
525
|
+
goto error;
|
526
|
+
regs.sp--;
|
527
|
+
END_CASE(JSOP_FORPROP)
|
528
|
+
|
529
|
+
BEGIN_CASE(JSOP_FORELEM)
|
530
|
+
/*
|
531
|
+
* JSOP_FORELEM simply dups the property identifier at top of stack
|
532
|
+
* and lets the subsequent JSOP_ENUMELEM opcode sequence handle the
|
533
|
+
* left-hand side expression evaluation and assignment. This opcode
|
534
|
+
* exists solely to help the decompiler.
|
535
|
+
*/
|
536
|
+
JS_ASSERT(regs.sp - 2 >= StackBase(fp));
|
537
|
+
rval = FETCH_OPND(-1);
|
538
|
+
PUSH(rval);
|
539
|
+
END_CASE(JSOP_FORELEM)
|
540
|
+
|
541
|
+
BEGIN_CASE(JSOP_DUP)
|
542
|
+
JS_ASSERT(regs.sp > StackBase(fp));
|
543
|
+
rval = FETCH_OPND(-1);
|
544
|
+
PUSH(rval);
|
545
|
+
END_CASE(JSOP_DUP)
|
546
|
+
|
547
|
+
BEGIN_CASE(JSOP_DUP2)
|
548
|
+
JS_ASSERT(regs.sp - 2 >= StackBase(fp));
|
549
|
+
lval = FETCH_OPND(-2);
|
550
|
+
rval = FETCH_OPND(-1);
|
551
|
+
PUSH(lval);
|
552
|
+
PUSH(rval);
|
553
|
+
END_CASE(JSOP_DUP2)
|
554
|
+
|
555
|
+
BEGIN_CASE(JSOP_SWAP)
|
556
|
+
JS_ASSERT(regs.sp - 2 >= StackBase(fp));
|
557
|
+
lval = FETCH_OPND(-2);
|
558
|
+
rval = FETCH_OPND(-1);
|
559
|
+
STORE_OPND(-1, lval);
|
560
|
+
STORE_OPND(-2, rval);
|
561
|
+
END_CASE(JSOP_SWAP)
|
562
|
+
|
563
|
+
BEGIN_CASE(JSOP_PICK)
|
564
|
+
i = regs.pc[1];
|
565
|
+
JS_ASSERT(regs.sp - (i+1) >= StackBase(fp));
|
566
|
+
lval = regs.sp[-(i+1)];
|
567
|
+
memmove(regs.sp - (i+1), regs.sp - i, sizeof(jsval)*i);
|
568
|
+
regs.sp[-1] = lval;
|
569
|
+
END_CASE(JSOP_PICK)
|
570
|
+
|
571
|
+
#define PROPERTY_OP(n, call) \
|
572
|
+
JS_BEGIN_MACRO \
|
573
|
+
/* Fetch the left part and resolve it to a non-null object. */ \
|
574
|
+
FETCH_OBJECT(cx, n, lval, obj); \
|
575
|
+
\
|
576
|
+
/* Get or set the property. */ \
|
577
|
+
if (!call) \
|
578
|
+
goto error; \
|
579
|
+
JS_END_MACRO
|
580
|
+
|
581
|
+
#define ELEMENT_OP(n, call) \
|
582
|
+
JS_BEGIN_MACRO \
|
583
|
+
/* Fetch the left part and resolve it to a non-null object. */ \
|
584
|
+
FETCH_OBJECT(cx, n - 1, lval, obj); \
|
585
|
+
\
|
586
|
+
/* Fetch index and convert it to id suitable for use with obj. */ \
|
587
|
+
FETCH_ELEMENT_ID(obj, n, id); \
|
588
|
+
\
|
589
|
+
/* Get or set the element. */ \
|
590
|
+
if (!call) \
|
591
|
+
goto error; \
|
592
|
+
JS_END_MACRO
|
593
|
+
|
594
|
+
#define NATIVE_GET(cx,obj,pobj,sprop,vp) \
|
595
|
+
JS_BEGIN_MACRO \
|
596
|
+
if (SPROP_HAS_STUB_GETTER(sprop)) { \
|
597
|
+
/* Fast path for Object instance properties. */ \
|
598
|
+
JS_ASSERT((sprop)->slot != SPROP_INVALID_SLOT || \
|
599
|
+
!SPROP_HAS_STUB_SETTER(sprop)); \
|
600
|
+
*vp = ((sprop)->slot != SPROP_INVALID_SLOT) \
|
601
|
+
? LOCKED_OBJ_GET_SLOT(pobj, (sprop)->slot) \
|
602
|
+
: JSVAL_VOID; \
|
603
|
+
} else { \
|
604
|
+
if (!js_NativeGet(cx, obj, pobj, sprop, vp)) \
|
605
|
+
goto error; \
|
606
|
+
} \
|
607
|
+
JS_END_MACRO
|
608
|
+
|
609
|
+
#define NATIVE_SET(cx,obj,sprop,entry,vp) \
|
610
|
+
JS_BEGIN_MACRO \
|
611
|
+
TRACE_2(SetPropHit, entry, sprop); \
|
612
|
+
if (SPROP_HAS_STUB_SETTER(sprop) && \
|
613
|
+
(sprop)->slot != SPROP_INVALID_SLOT) { \
|
614
|
+
/* Fast path for, e.g., Object instance properties. */ \
|
615
|
+
LOCKED_OBJ_WRITE_SLOT(cx, obj, (sprop)->slot, *vp); \
|
616
|
+
} else { \
|
617
|
+
if (!js_NativeSet(cx, obj, sprop, vp)) \
|
618
|
+
goto error; \
|
619
|
+
} \
|
620
|
+
JS_END_MACRO
|
621
|
+
|
622
|
+
/*
|
623
|
+
* Skip the JSOP_POP typically found after a JSOP_SET* opcode, where oplen is
|
624
|
+
* the constant length of the SET opcode sequence, and spdec is the constant
|
625
|
+
* by which to decrease the stack pointer to pop all of the SET op's operands.
|
626
|
+
*
|
627
|
+
* NB: unlike macros that could conceivably be replaced by functions (ignoring
|
628
|
+
* goto error), where a call should not have to be braced in order to expand
|
629
|
+
* correctly (e.g., in if (cond) FOO(); else BAR()), these three macros lack
|
630
|
+
* JS_{BEGIN,END}_MACRO brackets. They are also indented so as to align with
|
631
|
+
* nearby opcode code.
|
632
|
+
*/
|
633
|
+
#define SKIP_POP_AFTER_SET(oplen,spdec) \
|
634
|
+
if (regs.pc[oplen] == JSOP_POP) { \
|
635
|
+
regs.sp -= spdec; \
|
636
|
+
regs.pc += oplen + JSOP_POP_LENGTH; \
|
637
|
+
op = (JSOp) *regs.pc; \
|
638
|
+
DO_OP(); \
|
639
|
+
}
|
640
|
+
|
641
|
+
#define END_SET_CASE(OP) \
|
642
|
+
SKIP_POP_AFTER_SET(OP##_LENGTH, 1); \
|
643
|
+
END_CASE(OP)
|
644
|
+
|
645
|
+
#define END_SET_CASE_STORE_RVAL(OP,spdec) \
|
646
|
+
SKIP_POP_AFTER_SET(OP##_LENGTH, spdec); \
|
647
|
+
rval = FETCH_OPND(-1); \
|
648
|
+
regs.sp -= (spdec) - 1; \
|
649
|
+
STORE_OPND(-1, rval); \
|
650
|
+
END_CASE(OP)
|
651
|
+
|
652
|
+
BEGIN_CASE(JSOP_SETCONST)
|
653
|
+
LOAD_ATOM(0);
|
654
|
+
obj = fp->varobj;
|
655
|
+
rval = FETCH_OPND(-1);
|
656
|
+
if (!obj->defineProperty(cx, ATOM_TO_JSID(atom), rval,
|
657
|
+
JS_PropertyStub, JS_PropertyStub,
|
658
|
+
JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_READONLY)) {
|
659
|
+
goto error;
|
660
|
+
}
|
661
|
+
END_SET_CASE(JSOP_SETCONST);
|
662
|
+
|
663
|
+
#if JS_HAS_DESTRUCTURING
|
664
|
+
BEGIN_CASE(JSOP_ENUMCONSTELEM)
|
665
|
+
rval = FETCH_OPND(-3);
|
666
|
+
FETCH_OBJECT(cx, -2, lval, obj);
|
667
|
+
FETCH_ELEMENT_ID(obj, -1, id);
|
668
|
+
if (!obj->defineProperty(cx, id, rval,
|
669
|
+
JS_PropertyStub, JS_PropertyStub,
|
670
|
+
JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_READONLY)) {
|
671
|
+
goto error;
|
672
|
+
}
|
673
|
+
regs.sp -= 3;
|
674
|
+
END_CASE(JSOP_ENUMCONSTELEM)
|
675
|
+
#endif
|
676
|
+
|
677
|
+
BEGIN_CASE(JSOP_BINDNAME)
|
678
|
+
do {
|
679
|
+
JSPropCacheEntry *entry;
|
680
|
+
|
681
|
+
/*
|
682
|
+
* We can skip the property lookup for the global object. If
|
683
|
+
* the property does not exist anywhere on the scope chain,
|
684
|
+
* JSOP_SETNAME adds the property to the global.
|
685
|
+
*
|
686
|
+
* As a consequence of this optimization for the global object
|
687
|
+
* we run its JSRESOLVE_ASSIGNING-tolerant resolve hooks only
|
688
|
+
* in JSOP_SETNAME, after the interpreter evaluates the right-
|
689
|
+
* hand-side of the assignment, and not here.
|
690
|
+
*
|
691
|
+
* This should be transparent to the hooks because the script,
|
692
|
+
* instead of name = rhs, could have used global.name = rhs
|
693
|
+
* given a global object reference, which also calls the hooks
|
694
|
+
* only after evaluating the rhs. We desire such resolve hook
|
695
|
+
* equivalence between the two forms.
|
696
|
+
*/
|
697
|
+
obj = fp->scopeChain;
|
698
|
+
if (!OBJ_GET_PARENT(cx, obj))
|
699
|
+
break;
|
700
|
+
if (JS_LIKELY(OBJ_IS_NATIVE(obj))) {
|
701
|
+
PROPERTY_CACHE_TEST(cx, regs.pc, obj, obj2, entry, atom);
|
702
|
+
if (!atom) {
|
703
|
+
ASSERT_VALID_PROPERTY_CACHE_HIT(0, obj, obj2, entry);
|
704
|
+
JS_UNLOCK_OBJ(cx, obj2);
|
705
|
+
break;
|
706
|
+
}
|
707
|
+
} else {
|
708
|
+
entry = NULL;
|
709
|
+
LOAD_ATOM(0);
|
710
|
+
}
|
711
|
+
id = ATOM_TO_JSID(atom);
|
712
|
+
obj = js_FindIdentifierBase(cx, fp->scopeChain, id);
|
713
|
+
if (!obj)
|
714
|
+
goto error;
|
715
|
+
} while (0);
|
716
|
+
PUSH_OPND(OBJECT_TO_JSVAL(obj));
|
717
|
+
END_CASE(JSOP_BINDNAME)
|
718
|
+
|
719
|
+
BEGIN_CASE(JSOP_IMACOP)
|
720
|
+
JS_ASSERT(JS_UPTRDIFF(fp->imacpc, script->code) < script->length);
|
721
|
+
op = JSOp(*fp->imacpc);
|
722
|
+
DO_OP();
|
723
|
+
|
724
|
+
#define BITWISE_OP(OP) \
|
725
|
+
JS_BEGIN_MACRO \
|
726
|
+
FETCH_INT(cx, -2, i); \
|
727
|
+
FETCH_INT(cx, -1, j); \
|
728
|
+
i = i OP j; \
|
729
|
+
regs.sp--; \
|
730
|
+
STORE_INT(cx, -1, i); \
|
731
|
+
JS_END_MACRO
|
732
|
+
|
733
|
+
BEGIN_CASE(JSOP_BITOR)
|
734
|
+
BITWISE_OP(|);
|
735
|
+
END_CASE(JSOP_BITOR)
|
736
|
+
|
737
|
+
BEGIN_CASE(JSOP_BITXOR)
|
738
|
+
BITWISE_OP(^);
|
739
|
+
END_CASE(JSOP_BITXOR)
|
740
|
+
|
741
|
+
BEGIN_CASE(JSOP_BITAND)
|
742
|
+
BITWISE_OP(&);
|
743
|
+
END_CASE(JSOP_BITAND)
|
744
|
+
|
745
|
+
#define RELATIONAL_OP(OP) \
|
746
|
+
JS_BEGIN_MACRO \
|
747
|
+
rval = FETCH_OPND(-1); \
|
748
|
+
lval = FETCH_OPND(-2); \
|
749
|
+
/* Optimize for two int-tagged operands (typical loop control). */ \
|
750
|
+
if ((lval & rval) & JSVAL_INT) { \
|
751
|
+
cond = JSVAL_TO_INT(lval) OP JSVAL_TO_INT(rval); \
|
752
|
+
} else { \
|
753
|
+
if (!JSVAL_IS_PRIMITIVE(lval)) \
|
754
|
+
DEFAULT_VALUE(cx, -2, JSTYPE_NUMBER, lval); \
|
755
|
+
if (!JSVAL_IS_PRIMITIVE(rval)) \
|
756
|
+
DEFAULT_VALUE(cx, -1, JSTYPE_NUMBER, rval); \
|
757
|
+
if (JSVAL_IS_STRING(lval) && JSVAL_IS_STRING(rval)) { \
|
758
|
+
str = JSVAL_TO_STRING(lval); \
|
759
|
+
str2 = JSVAL_TO_STRING(rval); \
|
760
|
+
cond = js_CompareStrings(str, str2) OP 0; \
|
761
|
+
} else { \
|
762
|
+
VALUE_TO_NUMBER(cx, -2, lval, d); \
|
763
|
+
VALUE_TO_NUMBER(cx, -1, rval, d2); \
|
764
|
+
cond = JSDOUBLE_COMPARE(d, OP, d2, JS_FALSE); \
|
765
|
+
} \
|
766
|
+
} \
|
767
|
+
TRY_BRANCH_AFTER_COND(cond, 2); \
|
768
|
+
regs.sp--; \
|
769
|
+
STORE_OPND(-1, BOOLEAN_TO_JSVAL(cond)); \
|
770
|
+
JS_END_MACRO
|
771
|
+
|
772
|
+
/*
|
773
|
+
* NB: These macros can't use JS_BEGIN_MACRO/JS_END_MACRO around their bodies
|
774
|
+
* because they begin if/else chains, so callers must not put semicolons after
|
775
|
+
* the call expressions!
|
776
|
+
*/
|
777
|
+
#if JS_HAS_XML_SUPPORT
|
778
|
+
#define XML_EQUALITY_OP(OP) \
|
779
|
+
if ((ltmp == JSVAL_OBJECT && \
|
780
|
+
(obj2 = JSVAL_TO_OBJECT(lval)) && \
|
781
|
+
OBJECT_IS_XML(cx, obj2)) || \
|
782
|
+
(rtmp == JSVAL_OBJECT && \
|
783
|
+
(obj2 = JSVAL_TO_OBJECT(rval)) && \
|
784
|
+
OBJECT_IS_XML(cx, obj2))) { \
|
785
|
+
if (JSVAL_IS_OBJECT(rval) && obj2 == JSVAL_TO_OBJECT(rval)) \
|
786
|
+
rval = lval; \
|
787
|
+
if (!js_TestXMLEquality(cx, obj2, rval, &cond)) \
|
788
|
+
goto error; \
|
789
|
+
cond = cond OP JS_TRUE; \
|
790
|
+
} else
|
791
|
+
|
792
|
+
#define EXTENDED_EQUALITY_OP(OP) \
|
793
|
+
if (ltmp == JSVAL_OBJECT && \
|
794
|
+
(obj2 = JSVAL_TO_OBJECT(lval)) && \
|
795
|
+
((clasp = OBJ_GET_CLASS(cx, obj2))->flags & JSCLASS_IS_EXTENDED)) { \
|
796
|
+
JSExtendedClass *xclasp; \
|
797
|
+
\
|
798
|
+
xclasp = (JSExtendedClass *) clasp; \
|
799
|
+
if (!xclasp->equality(cx, obj2, rval, &cond)) \
|
800
|
+
goto error; \
|
801
|
+
cond = cond OP JS_TRUE; \
|
802
|
+
} else
|
803
|
+
#else
|
804
|
+
#define XML_EQUALITY_OP(OP) /* nothing */
|
805
|
+
#define EXTENDED_EQUALITY_OP(OP) /* nothing */
|
806
|
+
#endif
|
807
|
+
|
808
|
+
#define EQUALITY_OP(OP, IFNAN) \
|
809
|
+
JS_BEGIN_MACRO \
|
810
|
+
rval = FETCH_OPND(-1); \
|
811
|
+
lval = FETCH_OPND(-2); \
|
812
|
+
ltmp = JSVAL_TAG(lval); \
|
813
|
+
rtmp = JSVAL_TAG(rval); \
|
814
|
+
XML_EQUALITY_OP(OP) \
|
815
|
+
if (ltmp == rtmp) { \
|
816
|
+
if (ltmp == JSVAL_STRING) { \
|
817
|
+
str = JSVAL_TO_STRING(lval); \
|
818
|
+
str2 = JSVAL_TO_STRING(rval); \
|
819
|
+
cond = js_EqualStrings(str, str2) OP JS_TRUE; \
|
820
|
+
} else if (ltmp == JSVAL_DOUBLE) { \
|
821
|
+
d = *JSVAL_TO_DOUBLE(lval); \
|
822
|
+
d2 = *JSVAL_TO_DOUBLE(rval); \
|
823
|
+
cond = JSDOUBLE_COMPARE(d, OP, d2, IFNAN); \
|
824
|
+
} else { \
|
825
|
+
EXTENDED_EQUALITY_OP(OP) \
|
826
|
+
/* Handle all undefined (=>NaN) and int combinations. */ \
|
827
|
+
cond = lval OP rval; \
|
828
|
+
} \
|
829
|
+
} else { \
|
830
|
+
if (JSVAL_IS_NULL(lval) || JSVAL_IS_VOID(lval)) { \
|
831
|
+
cond = (JSVAL_IS_NULL(rval) || JSVAL_IS_VOID(rval)) OP 1; \
|
832
|
+
} else if (JSVAL_IS_NULL(rval) || JSVAL_IS_VOID(rval)) { \
|
833
|
+
cond = 1 OP 0; \
|
834
|
+
} else { \
|
835
|
+
if (ltmp == JSVAL_OBJECT) { \
|
836
|
+
DEFAULT_VALUE(cx, -2, JSTYPE_VOID, lval); \
|
837
|
+
ltmp = JSVAL_TAG(lval); \
|
838
|
+
} else if (rtmp == JSVAL_OBJECT) { \
|
839
|
+
DEFAULT_VALUE(cx, -1, JSTYPE_VOID, rval); \
|
840
|
+
rtmp = JSVAL_TAG(rval); \
|
841
|
+
} \
|
842
|
+
if (ltmp == JSVAL_STRING && rtmp == JSVAL_STRING) { \
|
843
|
+
str = JSVAL_TO_STRING(lval); \
|
844
|
+
str2 = JSVAL_TO_STRING(rval); \
|
845
|
+
cond = js_EqualStrings(str, str2) OP JS_TRUE; \
|
846
|
+
} else { \
|
847
|
+
VALUE_TO_NUMBER(cx, -2, lval, d); \
|
848
|
+
VALUE_TO_NUMBER(cx, -1, rval, d2); \
|
849
|
+
cond = JSDOUBLE_COMPARE(d, OP, d2, IFNAN); \
|
850
|
+
} \
|
851
|
+
} \
|
852
|
+
} \
|
853
|
+
TRY_BRANCH_AFTER_COND(cond, 2); \
|
854
|
+
regs.sp--; \
|
855
|
+
STORE_OPND(-1, BOOLEAN_TO_JSVAL(cond)); \
|
856
|
+
JS_END_MACRO
|
857
|
+
|
858
|
+
BEGIN_CASE(JSOP_EQ)
|
859
|
+
EQUALITY_OP(==, JS_FALSE);
|
860
|
+
END_CASE(JSOP_EQ)
|
861
|
+
|
862
|
+
BEGIN_CASE(JSOP_NE)
|
863
|
+
EQUALITY_OP(!=, JS_TRUE);
|
864
|
+
END_CASE(JSOP_NE)
|
865
|
+
|
866
|
+
#define STRICT_EQUALITY_OP(OP) \
|
867
|
+
JS_BEGIN_MACRO \
|
868
|
+
rval = FETCH_OPND(-1); \
|
869
|
+
lval = FETCH_OPND(-2); \
|
870
|
+
cond = js_StrictlyEqual(cx, lval, rval) OP JS_TRUE; \
|
871
|
+
regs.sp--; \
|
872
|
+
STORE_OPND(-1, BOOLEAN_TO_JSVAL(cond)); \
|
873
|
+
JS_END_MACRO
|
874
|
+
|
875
|
+
BEGIN_CASE(JSOP_STRICTEQ)
|
876
|
+
STRICT_EQUALITY_OP(==);
|
877
|
+
END_CASE(JSOP_STRICTEQ)
|
878
|
+
|
879
|
+
BEGIN_CASE(JSOP_STRICTNE)
|
880
|
+
STRICT_EQUALITY_OP(!=);
|
881
|
+
END_CASE(JSOP_STRICTNE)
|
882
|
+
|
883
|
+
BEGIN_CASE(JSOP_CASE)
|
884
|
+
STRICT_EQUALITY_OP(==);
|
885
|
+
(void) POP();
|
886
|
+
if (cond) {
|
887
|
+
len = GET_JUMP_OFFSET(regs.pc);
|
888
|
+
BRANCH(len);
|
889
|
+
}
|
890
|
+
PUSH(lval);
|
891
|
+
END_CASE(JSOP_CASE)
|
892
|
+
|
893
|
+
BEGIN_CASE(JSOP_CASEX)
|
894
|
+
STRICT_EQUALITY_OP(==);
|
895
|
+
(void) POP();
|
896
|
+
if (cond) {
|
897
|
+
len = GET_JUMPX_OFFSET(regs.pc);
|
898
|
+
BRANCH(len);
|
899
|
+
}
|
900
|
+
PUSH(lval);
|
901
|
+
END_CASE(JSOP_CASEX)
|
902
|
+
|
903
|
+
BEGIN_CASE(JSOP_LT)
|
904
|
+
RELATIONAL_OP(<);
|
905
|
+
END_CASE(JSOP_LT)
|
906
|
+
|
907
|
+
BEGIN_CASE(JSOP_LE)
|
908
|
+
RELATIONAL_OP(<=);
|
909
|
+
END_CASE(JSOP_LE)
|
910
|
+
|
911
|
+
BEGIN_CASE(JSOP_GT)
|
912
|
+
RELATIONAL_OP(>);
|
913
|
+
END_CASE(JSOP_GT)
|
914
|
+
|
915
|
+
BEGIN_CASE(JSOP_GE)
|
916
|
+
RELATIONAL_OP(>=);
|
917
|
+
END_CASE(JSOP_GE)
|
918
|
+
|
919
|
+
#undef EQUALITY_OP
|
920
|
+
#undef RELATIONAL_OP
|
921
|
+
|
922
|
+
#define SIGNED_SHIFT_OP(OP) \
|
923
|
+
JS_BEGIN_MACRO \
|
924
|
+
FETCH_INT(cx, -2, i); \
|
925
|
+
FETCH_INT(cx, -1, j); \
|
926
|
+
i = i OP (j & 31); \
|
927
|
+
regs.sp--; \
|
928
|
+
STORE_INT(cx, -1, i); \
|
929
|
+
JS_END_MACRO
|
930
|
+
|
931
|
+
BEGIN_CASE(JSOP_LSH)
|
932
|
+
SIGNED_SHIFT_OP(<<);
|
933
|
+
END_CASE(JSOP_LSH)
|
934
|
+
|
935
|
+
BEGIN_CASE(JSOP_RSH)
|
936
|
+
SIGNED_SHIFT_OP(>>);
|
937
|
+
END_CASE(JSOP_RSH)
|
938
|
+
|
939
|
+
BEGIN_CASE(JSOP_URSH)
|
940
|
+
{
|
941
|
+
uint32 u;
|
942
|
+
|
943
|
+
FETCH_UINT(cx, -2, u);
|
944
|
+
FETCH_INT(cx, -1, j);
|
945
|
+
u >>= (j & 31);
|
946
|
+
regs.sp--;
|
947
|
+
STORE_UINT(cx, -1, u);
|
948
|
+
}
|
949
|
+
END_CASE(JSOP_URSH)
|
950
|
+
|
951
|
+
#undef BITWISE_OP
|
952
|
+
#undef SIGNED_SHIFT_OP
|
953
|
+
|
954
|
+
BEGIN_CASE(JSOP_ADD)
|
955
|
+
rval = FETCH_OPND(-1);
|
956
|
+
lval = FETCH_OPND(-2);
|
957
|
+
#if JS_HAS_XML_SUPPORT
|
958
|
+
if (!JSVAL_IS_PRIMITIVE(lval) &&
|
959
|
+
(obj2 = JSVAL_TO_OBJECT(lval), OBJECT_IS_XML(cx, obj2)) &&
|
960
|
+
VALUE_IS_XML(cx, rval)) {
|
961
|
+
if (!js_ConcatenateXML(cx, obj2, rval, &rval))
|
962
|
+
goto error;
|
963
|
+
regs.sp--;
|
964
|
+
STORE_OPND(-1, rval);
|
965
|
+
} else
|
966
|
+
#endif
|
967
|
+
{
|
968
|
+
if (!JSVAL_IS_PRIMITIVE(lval))
|
969
|
+
DEFAULT_VALUE(cx, -2, JSTYPE_VOID, lval);
|
970
|
+
if (!JSVAL_IS_PRIMITIVE(rval))
|
971
|
+
DEFAULT_VALUE(cx, -1, JSTYPE_VOID, rval);
|
972
|
+
if ((cond = JSVAL_IS_STRING(lval)) || JSVAL_IS_STRING(rval)) {
|
973
|
+
if (cond) {
|
974
|
+
str = JSVAL_TO_STRING(lval);
|
975
|
+
str2 = js_ValueToString(cx, rval);
|
976
|
+
if (!str2)
|
977
|
+
goto error;
|
978
|
+
regs.sp[-1] = STRING_TO_JSVAL(str2);
|
979
|
+
} else {
|
980
|
+
str2 = JSVAL_TO_STRING(rval);
|
981
|
+
str = js_ValueToString(cx, lval);
|
982
|
+
if (!str)
|
983
|
+
goto error;
|
984
|
+
regs.sp[-2] = STRING_TO_JSVAL(str);
|
985
|
+
}
|
986
|
+
str = js_ConcatStrings(cx, str, str2);
|
987
|
+
if (!str)
|
988
|
+
goto error;
|
989
|
+
regs.sp--;
|
990
|
+
STORE_OPND(-1, STRING_TO_JSVAL(str));
|
991
|
+
} else {
|
992
|
+
VALUE_TO_NUMBER(cx, -2, lval, d);
|
993
|
+
VALUE_TO_NUMBER(cx, -1, rval, d2);
|
994
|
+
d += d2;
|
995
|
+
regs.sp--;
|
996
|
+
STORE_NUMBER(cx, -1, d);
|
997
|
+
}
|
998
|
+
}
|
999
|
+
END_CASE(JSOP_ADD)
|
1000
|
+
|
1001
|
+
BEGIN_CASE(JSOP_CONCATN)
|
1002
|
+
{
|
1003
|
+
#ifdef JS_TRACER
|
1004
|
+
JS_ASSERT_IF(fp->imacpc,
|
1005
|
+
*fp->imacpc == JSOP_CONCATN && *regs.pc == JSOP_IMACOP);
|
1006
|
+
|
1007
|
+
/*
|
1008
|
+
* This instruction can be executed in three contexts. (1) is normal
|
1009
|
+
* execution. (2) is while recording, during an imacro 'imacop'.
|
1010
|
+
* (3) is during a failed recording or when trace execution aborts
|
1011
|
+
* during a recorded imacro.
|
1012
|
+
* 1. !imacro : N args on stack, pc is regs.pc
|
1013
|
+
* 2. imacro && recording : N args on stack, pc is fp->imacpc
|
1014
|
+
* 3. imacro && !recording : N+2 args on stack, pc is fp->imacpc
|
1015
|
+
*/
|
1016
|
+
bool imacro = fp->imacpc != NULL;
|
1017
|
+
bool recording = TRACE_RECORDER(cx) != NULL;
|
1018
|
+
if (imacro) {
|
1019
|
+
argc = GET_ARGC(fp->imacpc);
|
1020
|
+
if (!recording)
|
1021
|
+
js_ConcatPostImacroStackCleanup(argc, regs, NULL);
|
1022
|
+
} else {
|
1023
|
+
#endif /* JS_TRACER */
|
1024
|
+
argc = GET_ARGC(regs.pc);
|
1025
|
+
#ifdef JS_TRACER
|
1026
|
+
}
|
1027
|
+
#endif /* JS_TRACER */
|
1028
|
+
|
1029
|
+
JSCharBuffer buf(cx);
|
1030
|
+
for (vp = regs.sp - argc; vp < regs.sp; vp++) {
|
1031
|
+
if ((!JSVAL_IS_PRIMITIVE(*vp) &&
|
1032
|
+
!JSVAL_TO_OBJECT(*vp)->defaultValue(cx, JSTYPE_VOID, vp)) ||
|
1033
|
+
!js_ValueToCharBuffer(cx, *vp, buf)) {
|
1034
|
+
goto error;
|
1035
|
+
}
|
1036
|
+
}
|
1037
|
+
|
1038
|
+
str = js_NewStringFromCharBuffer(cx, buf);
|
1039
|
+
if (!str)
|
1040
|
+
goto error;
|
1041
|
+
|
1042
|
+
regs.sp -= argc - 1;
|
1043
|
+
STORE_OPND(-1, STRING_TO_JSVAL(str));
|
1044
|
+
|
1045
|
+
#ifdef JS_TRACER
|
1046
|
+
if (imacro) {
|
1047
|
+
/* END_CASE does pc += CONCATN_LENGTH. (IMACOP YOU IDIOT!) */
|
1048
|
+
regs.pc -= JSOP_CONCATN_LENGTH - JSOP_IMACOP_LENGTH;
|
1049
|
+
}
|
1050
|
+
#endif /* JS_TRACER */
|
1051
|
+
}
|
1052
|
+
END_CASE(JSOP_CONCATN)
|
1053
|
+
|
1054
|
+
#define BINARY_OP(OP) \
|
1055
|
+
JS_BEGIN_MACRO \
|
1056
|
+
FETCH_NUMBER(cx, -2, d); \
|
1057
|
+
FETCH_NUMBER(cx, -1, d2); \
|
1058
|
+
d = d OP d2; \
|
1059
|
+
regs.sp--; \
|
1060
|
+
STORE_NUMBER(cx, -1, d); \
|
1061
|
+
JS_END_MACRO
|
1062
|
+
|
1063
|
+
BEGIN_CASE(JSOP_SUB)
|
1064
|
+
BINARY_OP(-);
|
1065
|
+
END_CASE(JSOP_SUB)
|
1066
|
+
|
1067
|
+
BEGIN_CASE(JSOP_MUL)
|
1068
|
+
BINARY_OP(*);
|
1069
|
+
END_CASE(JSOP_MUL)
|
1070
|
+
|
1071
|
+
BEGIN_CASE(JSOP_DIV)
|
1072
|
+
FETCH_NUMBER(cx, -1, d2);
|
1073
|
+
FETCH_NUMBER(cx, -2, d);
|
1074
|
+
regs.sp--;
|
1075
|
+
if (d2 == 0) {
|
1076
|
+
#ifdef XP_WIN
|
1077
|
+
/* XXX MSVC miscompiles such that (NaN == 0) */
|
1078
|
+
if (JSDOUBLE_IS_NaN(d2))
|
1079
|
+
rval = DOUBLE_TO_JSVAL(rt->jsNaN);
|
1080
|
+
else
|
1081
|
+
#endif
|
1082
|
+
if (d == 0 || JSDOUBLE_IS_NaN(d))
|
1083
|
+
rval = DOUBLE_TO_JSVAL(rt->jsNaN);
|
1084
|
+
else if (JSDOUBLE_IS_NEG(d) != JSDOUBLE_IS_NEG(d2))
|
1085
|
+
rval = DOUBLE_TO_JSVAL(rt->jsNegativeInfinity);
|
1086
|
+
else
|
1087
|
+
rval = DOUBLE_TO_JSVAL(rt->jsPositiveInfinity);
|
1088
|
+
STORE_OPND(-1, rval);
|
1089
|
+
} else {
|
1090
|
+
d /= d2;
|
1091
|
+
STORE_NUMBER(cx, -1, d);
|
1092
|
+
}
|
1093
|
+
END_CASE(JSOP_DIV)
|
1094
|
+
|
1095
|
+
BEGIN_CASE(JSOP_MOD)
|
1096
|
+
FETCH_NUMBER(cx, -1, d2);
|
1097
|
+
FETCH_NUMBER(cx, -2, d);
|
1098
|
+
regs.sp--;
|
1099
|
+
if (d2 == 0) {
|
1100
|
+
STORE_OPND(-1, DOUBLE_TO_JSVAL(rt->jsNaN));
|
1101
|
+
} else {
|
1102
|
+
d = js_fmod(d, d2);
|
1103
|
+
STORE_NUMBER(cx, -1, d);
|
1104
|
+
}
|
1105
|
+
END_CASE(JSOP_MOD)
|
1106
|
+
|
1107
|
+
BEGIN_CASE(JSOP_NOT)
|
1108
|
+
POP_BOOLEAN(cx, rval, cond);
|
1109
|
+
PUSH_OPND(BOOLEAN_TO_JSVAL(!cond));
|
1110
|
+
END_CASE(JSOP_NOT)
|
1111
|
+
|
1112
|
+
BEGIN_CASE(JSOP_BITNOT)
|
1113
|
+
FETCH_INT(cx, -1, i);
|
1114
|
+
i = ~i;
|
1115
|
+
STORE_INT(cx, -1, i);
|
1116
|
+
END_CASE(JSOP_BITNOT)
|
1117
|
+
|
1118
|
+
BEGIN_CASE(JSOP_NEG)
|
1119
|
+
/*
|
1120
|
+
* When the operand is int jsval, INT_FITS_IN_JSVAL(i) implies
|
1121
|
+
* INT_FITS_IN_JSVAL(-i) unless i is 0 or JSVAL_INT_MIN when the
|
1122
|
+
* results, -0.0 or JSVAL_INT_MAX + 1, are jsdouble values.
|
1123
|
+
*/
|
1124
|
+
rval = FETCH_OPND(-1);
|
1125
|
+
if (JSVAL_IS_INT(rval) &&
|
1126
|
+
rval != INT_TO_JSVAL(JSVAL_INT_MIN) &&
|
1127
|
+
(i = JSVAL_TO_INT(rval)) != 0) {
|
1128
|
+
JS_STATIC_ASSERT(!INT_FITS_IN_JSVAL(-JSVAL_INT_MIN));
|
1129
|
+
i = -i;
|
1130
|
+
JS_ASSERT(INT_FITS_IN_JSVAL(i));
|
1131
|
+
regs.sp[-1] = INT_TO_JSVAL(i);
|
1132
|
+
} else {
|
1133
|
+
if (JSVAL_IS_DOUBLE(rval)) {
|
1134
|
+
d = *JSVAL_TO_DOUBLE(rval);
|
1135
|
+
} else {
|
1136
|
+
d = js_ValueToNumber(cx, ®s.sp[-1]);
|
1137
|
+
if (JSVAL_IS_NULL(regs.sp[-1]))
|
1138
|
+
goto error;
|
1139
|
+
JS_ASSERT(JSVAL_IS_NUMBER(regs.sp[-1]) ||
|
1140
|
+
regs.sp[-1] == JSVAL_TRUE);
|
1141
|
+
}
|
1142
|
+
d = -d;
|
1143
|
+
if (!js_NewNumberInRootedValue(cx, d, ®s.sp[-1]))
|
1144
|
+
goto error;
|
1145
|
+
}
|
1146
|
+
END_CASE(JSOP_NEG)
|
1147
|
+
|
1148
|
+
BEGIN_CASE(JSOP_POS)
|
1149
|
+
rval = FETCH_OPND(-1);
|
1150
|
+
if (!JSVAL_IS_NUMBER(rval)) {
|
1151
|
+
d = js_ValueToNumber(cx, ®s.sp[-1]);
|
1152
|
+
rval = regs.sp[-1];
|
1153
|
+
if (JSVAL_IS_NULL(rval))
|
1154
|
+
goto error;
|
1155
|
+
if (rval == JSVAL_TRUE) {
|
1156
|
+
if (!js_NewNumberInRootedValue(cx, d, ®s.sp[-1]))
|
1157
|
+
goto error;
|
1158
|
+
} else {
|
1159
|
+
JS_ASSERT(JSVAL_IS_NUMBER(rval));
|
1160
|
+
}
|
1161
|
+
}
|
1162
|
+
END_CASE(JSOP_POS)
|
1163
|
+
|
1164
|
+
BEGIN_CASE(JSOP_DELNAME)
|
1165
|
+
LOAD_ATOM(0);
|
1166
|
+
id = ATOM_TO_JSID(atom);
|
1167
|
+
if (!js_FindProperty(cx, id, &obj, &obj2, &prop))
|
1168
|
+
goto error;
|
1169
|
+
|
1170
|
+
/* ECMA says to return true if name is undefined or inherited. */
|
1171
|
+
PUSH_OPND(JSVAL_TRUE);
|
1172
|
+
if (prop) {
|
1173
|
+
obj2->dropProperty(cx, prop);
|
1174
|
+
if (!obj->deleteProperty(cx, id, ®s.sp[-1]))
|
1175
|
+
goto error;
|
1176
|
+
}
|
1177
|
+
END_CASE(JSOP_DELNAME)
|
1178
|
+
|
1179
|
+
BEGIN_CASE(JSOP_DELPROP)
|
1180
|
+
LOAD_ATOM(0);
|
1181
|
+
id = ATOM_TO_JSID(atom);
|
1182
|
+
PROPERTY_OP(-1, obj->deleteProperty(cx, id, &rval));
|
1183
|
+
STORE_OPND(-1, rval);
|
1184
|
+
END_CASE(JSOP_DELPROP)
|
1185
|
+
|
1186
|
+
BEGIN_CASE(JSOP_DELELEM)
|
1187
|
+
ELEMENT_OP(-1, obj->deleteProperty(cx, id, &rval));
|
1188
|
+
regs.sp--;
|
1189
|
+
STORE_OPND(-1, rval);
|
1190
|
+
END_CASE(JSOP_DELELEM)
|
1191
|
+
|
1192
|
+
BEGIN_CASE(JSOP_TYPEOFEXPR)
|
1193
|
+
BEGIN_CASE(JSOP_TYPEOF)
|
1194
|
+
rval = FETCH_OPND(-1);
|
1195
|
+
type = JS_TypeOfValue(cx, rval);
|
1196
|
+
atom = rt->atomState.typeAtoms[type];
|
1197
|
+
STORE_OPND(-1, ATOM_KEY(atom));
|
1198
|
+
END_CASE(JSOP_TYPEOF)
|
1199
|
+
|
1200
|
+
BEGIN_CASE(JSOP_VOID)
|
1201
|
+
STORE_OPND(-1, JSVAL_VOID);
|
1202
|
+
END_CASE(JSOP_VOID)
|
1203
|
+
|
1204
|
+
BEGIN_CASE(JSOP_INCELEM)
|
1205
|
+
BEGIN_CASE(JSOP_DECELEM)
|
1206
|
+
BEGIN_CASE(JSOP_ELEMINC)
|
1207
|
+
BEGIN_CASE(JSOP_ELEMDEC)
|
1208
|
+
/*
|
1209
|
+
* Delay fetching of id until we have the object to ensure
|
1210
|
+
* the proper evaluation order. See bug 372331.
|
1211
|
+
*/
|
1212
|
+
id = 0;
|
1213
|
+
i = -2;
|
1214
|
+
goto fetch_incop_obj;
|
1215
|
+
|
1216
|
+
BEGIN_CASE(JSOP_INCPROP)
|
1217
|
+
BEGIN_CASE(JSOP_DECPROP)
|
1218
|
+
BEGIN_CASE(JSOP_PROPINC)
|
1219
|
+
BEGIN_CASE(JSOP_PROPDEC)
|
1220
|
+
LOAD_ATOM(0);
|
1221
|
+
id = ATOM_TO_JSID(atom);
|
1222
|
+
i = -1;
|
1223
|
+
|
1224
|
+
fetch_incop_obj:
|
1225
|
+
FETCH_OBJECT(cx, i, lval, obj);
|
1226
|
+
if (id == 0)
|
1227
|
+
FETCH_ELEMENT_ID(obj, -1, id);
|
1228
|
+
goto do_incop;
|
1229
|
+
|
1230
|
+
BEGIN_CASE(JSOP_INCNAME)
|
1231
|
+
BEGIN_CASE(JSOP_DECNAME)
|
1232
|
+
BEGIN_CASE(JSOP_NAMEINC)
|
1233
|
+
BEGIN_CASE(JSOP_NAMEDEC)
|
1234
|
+
{
|
1235
|
+
JSPropCacheEntry *entry;
|
1236
|
+
|
1237
|
+
obj = fp->scopeChain;
|
1238
|
+
if (JS_LIKELY(OBJ_IS_NATIVE(obj))) {
|
1239
|
+
PROPERTY_CACHE_TEST(cx, regs.pc, obj, obj2, entry, atom);
|
1240
|
+
if (!atom) {
|
1241
|
+
ASSERT_VALID_PROPERTY_CACHE_HIT(0, obj, obj2, entry);
|
1242
|
+
if (obj == obj2 && PCVAL_IS_SLOT(entry->vword)) {
|
1243
|
+
slot = PCVAL_TO_SLOT(entry->vword);
|
1244
|
+
JS_ASSERT(slot < OBJ_SCOPE(obj)->freeslot);
|
1245
|
+
rval = LOCKED_OBJ_GET_SLOT(obj, slot);
|
1246
|
+
if (JS_LIKELY(CAN_DO_FAST_INC_DEC(rval))) {
|
1247
|
+
rtmp = rval;
|
1248
|
+
rval += (js_CodeSpec[op].format & JOF_INC) ? 2 : -2;
|
1249
|
+
if (!(js_CodeSpec[op].format & JOF_POST))
|
1250
|
+
rtmp = rval;
|
1251
|
+
LOCKED_OBJ_SET_SLOT(obj, slot, rval);
|
1252
|
+
JS_UNLOCK_OBJ(cx, obj);
|
1253
|
+
PUSH_OPND(rtmp);
|
1254
|
+
len = JSOP_INCNAME_LENGTH;
|
1255
|
+
DO_NEXT_OP(len);
|
1256
|
+
}
|
1257
|
+
}
|
1258
|
+
JS_UNLOCK_OBJ(cx, obj2);
|
1259
|
+
LOAD_ATOM(0);
|
1260
|
+
}
|
1261
|
+
} else {
|
1262
|
+
LOAD_ATOM(0);
|
1263
|
+
}
|
1264
|
+
id = ATOM_TO_JSID(atom);
|
1265
|
+
if (!js_FindPropertyHelper(cx, id, true, &obj, &obj2, &prop))
|
1266
|
+
goto error;
|
1267
|
+
if (!prop)
|
1268
|
+
goto atom_not_defined;
|
1269
|
+
obj2->dropProperty(cx, prop);
|
1270
|
+
}
|
1271
|
+
|
1272
|
+
do_incop:
|
1273
|
+
{
|
1274
|
+
const JSCodeSpec *cs;
|
1275
|
+
jsval v;
|
1276
|
+
|
1277
|
+
/*
|
1278
|
+
* We need a root to store the value to leave on the stack until
|
1279
|
+
* we have done with obj->setProperty.
|
1280
|
+
*/
|
1281
|
+
PUSH_OPND(JSVAL_NULL);
|
1282
|
+
if (!obj->getProperty(cx, id, ®s.sp[-1]))
|
1283
|
+
goto error;
|
1284
|
+
|
1285
|
+
cs = &js_CodeSpec[op];
|
1286
|
+
JS_ASSERT(cs->ndefs == 1);
|
1287
|
+
JS_ASSERT((cs->format & JOF_TMPSLOT_MASK) == JOF_TMPSLOT2);
|
1288
|
+
v = regs.sp[-1];
|
1289
|
+
if (JS_LIKELY(CAN_DO_FAST_INC_DEC(v))) {
|
1290
|
+
jsval incr;
|
1291
|
+
|
1292
|
+
incr = (cs->format & JOF_INC) ? 2 : -2;
|
1293
|
+
if (cs->format & JOF_POST) {
|
1294
|
+
regs.sp[-1] = v + incr;
|
1295
|
+
} else {
|
1296
|
+
v += incr;
|
1297
|
+
regs.sp[-1] = v;
|
1298
|
+
}
|
1299
|
+
fp->flags |= JSFRAME_ASSIGNING;
|
1300
|
+
ok = obj->setProperty(cx, id, ®s.sp[-1]);
|
1301
|
+
fp->flags &= ~JSFRAME_ASSIGNING;
|
1302
|
+
if (!ok)
|
1303
|
+
goto error;
|
1304
|
+
|
1305
|
+
/*
|
1306
|
+
* We must set regs.sp[-1] to v for both post and pre increments
|
1307
|
+
* as the setter overwrites regs.sp[-1].
|
1308
|
+
*/
|
1309
|
+
regs.sp[-1] = v;
|
1310
|
+
} else {
|
1311
|
+
/* We need an extra root for the result. */
|
1312
|
+
PUSH_OPND(JSVAL_NULL);
|
1313
|
+
if (!js_DoIncDec(cx, cs, ®s.sp[-2], ®s.sp[-1]))
|
1314
|
+
goto error;
|
1315
|
+
fp->flags |= JSFRAME_ASSIGNING;
|
1316
|
+
ok = obj->setProperty(cx, id, ®s.sp[-1]);
|
1317
|
+
fp->flags &= ~JSFRAME_ASSIGNING;
|
1318
|
+
if (!ok)
|
1319
|
+
goto error;
|
1320
|
+
regs.sp--;
|
1321
|
+
}
|
1322
|
+
|
1323
|
+
if (cs->nuses == 0) {
|
1324
|
+
/* regs.sp[-1] already contains the result of name increment. */
|
1325
|
+
} else {
|
1326
|
+
rtmp = regs.sp[-1];
|
1327
|
+
regs.sp -= cs->nuses;
|
1328
|
+
regs.sp[-1] = rtmp;
|
1329
|
+
}
|
1330
|
+
len = cs->length;
|
1331
|
+
DO_NEXT_OP(len);
|
1332
|
+
}
|
1333
|
+
|
1334
|
+
{
|
1335
|
+
jsval incr, incr2;
|
1336
|
+
|
1337
|
+
/* Position cases so the most frequent i++ does not need a jump. */
|
1338
|
+
BEGIN_CASE(JSOP_DECARG)
|
1339
|
+
incr = -2; incr2 = -2; goto do_arg_incop;
|
1340
|
+
BEGIN_CASE(JSOP_ARGDEC)
|
1341
|
+
incr = -2; incr2 = 0; goto do_arg_incop;
|
1342
|
+
BEGIN_CASE(JSOP_INCARG)
|
1343
|
+
incr = 2; incr2 = 2; goto do_arg_incop;
|
1344
|
+
BEGIN_CASE(JSOP_ARGINC)
|
1345
|
+
incr = 2; incr2 = 0;
|
1346
|
+
|
1347
|
+
do_arg_incop:
|
1348
|
+
slot = GET_ARGNO(regs.pc);
|
1349
|
+
JS_ASSERT(slot < fp->fun->nargs);
|
1350
|
+
METER_SLOT_OP(op, slot);
|
1351
|
+
vp = fp->argv + slot;
|
1352
|
+
goto do_int_fast_incop;
|
1353
|
+
|
1354
|
+
BEGIN_CASE(JSOP_DECLOCAL)
|
1355
|
+
incr = -2; incr2 = -2; goto do_local_incop;
|
1356
|
+
BEGIN_CASE(JSOP_LOCALDEC)
|
1357
|
+
incr = -2; incr2 = 0; goto do_local_incop;
|
1358
|
+
BEGIN_CASE(JSOP_INCLOCAL)
|
1359
|
+
incr = 2; incr2 = 2; goto do_local_incop;
|
1360
|
+
BEGIN_CASE(JSOP_LOCALINC)
|
1361
|
+
incr = 2; incr2 = 0;
|
1362
|
+
|
1363
|
+
/*
|
1364
|
+
* do_local_incop comes right before do_int_fast_incop as we want to
|
1365
|
+
* avoid an extra jump for variable cases as local++ is more frequent
|
1366
|
+
* than arg++.
|
1367
|
+
*/
|
1368
|
+
do_local_incop:
|
1369
|
+
slot = GET_SLOTNO(regs.pc);
|
1370
|
+
JS_ASSERT(slot < fp->script->nslots);
|
1371
|
+
vp = fp->slots + slot;
|
1372
|
+
METER_SLOT_OP(op, slot);
|
1373
|
+
vp = fp->slots + slot;
|
1374
|
+
|
1375
|
+
do_int_fast_incop:
|
1376
|
+
rval = *vp;
|
1377
|
+
if (JS_LIKELY(CAN_DO_FAST_INC_DEC(rval))) {
|
1378
|
+
*vp = rval + incr;
|
1379
|
+
JS_ASSERT(JSOP_INCARG_LENGTH == js_CodeSpec[op].length);
|
1380
|
+
SKIP_POP_AFTER_SET(JSOP_INCARG_LENGTH, 0);
|
1381
|
+
PUSH_OPND(rval + incr2);
|
1382
|
+
} else {
|
1383
|
+
PUSH_OPND(rval);
|
1384
|
+
if (!js_DoIncDec(cx, &js_CodeSpec[op], ®s.sp[-1], vp))
|
1385
|
+
goto error;
|
1386
|
+
}
|
1387
|
+
len = JSOP_INCARG_LENGTH;
|
1388
|
+
JS_ASSERT(len == js_CodeSpec[op].length);
|
1389
|
+
DO_NEXT_OP(len);
|
1390
|
+
}
|
1391
|
+
|
1392
|
+
/* NB: This macro doesn't use JS_BEGIN_MACRO/JS_END_MACRO around its body. */
|
1393
|
+
#define FAST_GLOBAL_INCREMENT_OP(SLOWOP,INCR,INCR2) \
|
1394
|
+
op2 = SLOWOP; \
|
1395
|
+
incr = INCR; \
|
1396
|
+
incr2 = INCR2; \
|
1397
|
+
goto do_global_incop
|
1398
|
+
|
1399
|
+
{
|
1400
|
+
jsval incr, incr2;
|
1401
|
+
|
1402
|
+
BEGIN_CASE(JSOP_DECGVAR)
|
1403
|
+
FAST_GLOBAL_INCREMENT_OP(JSOP_DECNAME, -2, -2);
|
1404
|
+
BEGIN_CASE(JSOP_GVARDEC)
|
1405
|
+
FAST_GLOBAL_INCREMENT_OP(JSOP_NAMEDEC, -2, 0);
|
1406
|
+
BEGIN_CASE(JSOP_INCGVAR)
|
1407
|
+
FAST_GLOBAL_INCREMENT_OP(JSOP_INCNAME, 2, 2);
|
1408
|
+
BEGIN_CASE(JSOP_GVARINC)
|
1409
|
+
FAST_GLOBAL_INCREMENT_OP(JSOP_NAMEINC, 2, 0);
|
1410
|
+
|
1411
|
+
#undef FAST_GLOBAL_INCREMENT_OP
|
1412
|
+
|
1413
|
+
do_global_incop:
|
1414
|
+
JS_ASSERT((js_CodeSpec[op].format & JOF_TMPSLOT_MASK) ==
|
1415
|
+
JOF_TMPSLOT2);
|
1416
|
+
slot = GET_SLOTNO(regs.pc);
|
1417
|
+
JS_ASSERT(slot < GlobalVarCount(fp));
|
1418
|
+
METER_SLOT_OP(op, slot);
|
1419
|
+
lval = fp->slots[slot];
|
1420
|
+
if (JSVAL_IS_NULL(lval)) {
|
1421
|
+
op = op2;
|
1422
|
+
DO_OP();
|
1423
|
+
}
|
1424
|
+
slot = JSVAL_TO_INT(lval);
|
1425
|
+
rval = OBJ_GET_SLOT(cx, fp->varobj, slot);
|
1426
|
+
if (JS_LIKELY(CAN_DO_FAST_INC_DEC(rval))) {
|
1427
|
+
PUSH_OPND(rval + incr2);
|
1428
|
+
rval += incr;
|
1429
|
+
} else {
|
1430
|
+
PUSH_OPND(rval);
|
1431
|
+
PUSH_OPND(JSVAL_NULL); /* Extra root */
|
1432
|
+
if (!js_DoIncDec(cx, &js_CodeSpec[op], ®s.sp[-2], ®s.sp[-1]))
|
1433
|
+
goto error;
|
1434
|
+
rval = regs.sp[-1];
|
1435
|
+
--regs.sp;
|
1436
|
+
}
|
1437
|
+
OBJ_SET_SLOT(cx, fp->varobj, slot, rval);
|
1438
|
+
len = JSOP_INCGVAR_LENGTH; /* all gvar incops are same length */
|
1439
|
+
JS_ASSERT(len == js_CodeSpec[op].length);
|
1440
|
+
DO_NEXT_OP(len);
|
1441
|
+
}
|
1442
|
+
|
1443
|
+
#define COMPUTE_THIS(cx, fp, obj) \
|
1444
|
+
JS_BEGIN_MACRO \
|
1445
|
+
if (!(obj = js_ComputeThisForFrame(cx, fp))) \
|
1446
|
+
goto error; \
|
1447
|
+
JS_END_MACRO
|
1448
|
+
|
1449
|
+
BEGIN_CASE(JSOP_THIS)
|
1450
|
+
COMPUTE_THIS(cx, fp, obj);
|
1451
|
+
PUSH_OPND(OBJECT_TO_JSVAL(obj));
|
1452
|
+
END_CASE(JSOP_THIS)
|
1453
|
+
|
1454
|
+
BEGIN_CASE(JSOP_GETTHISPROP)
|
1455
|
+
i = 0;
|
1456
|
+
COMPUTE_THIS(cx, fp, obj);
|
1457
|
+
PUSH(JSVAL_NULL);
|
1458
|
+
goto do_getprop_with_obj;
|
1459
|
+
|
1460
|
+
#undef COMPUTE_THIS
|
1461
|
+
|
1462
|
+
BEGIN_CASE(JSOP_GETARGPROP)
|
1463
|
+
i = ARGNO_LEN;
|
1464
|
+
slot = GET_ARGNO(regs.pc);
|
1465
|
+
JS_ASSERT(slot < fp->fun->nargs);
|
1466
|
+
PUSH_OPND(fp->argv[slot]);
|
1467
|
+
goto do_getprop_body;
|
1468
|
+
|
1469
|
+
BEGIN_CASE(JSOP_GETLOCALPROP)
|
1470
|
+
i = SLOTNO_LEN;
|
1471
|
+
slot = GET_SLOTNO(regs.pc);
|
1472
|
+
JS_ASSERT(slot < script->nslots);
|
1473
|
+
PUSH_OPND(fp->slots[slot]);
|
1474
|
+
goto do_getprop_body;
|
1475
|
+
|
1476
|
+
BEGIN_CASE(JSOP_GETPROP)
|
1477
|
+
BEGIN_CASE(JSOP_GETXPROP)
|
1478
|
+
i = 0;
|
1479
|
+
|
1480
|
+
do_getprop_body:
|
1481
|
+
lval = FETCH_OPND(-1);
|
1482
|
+
|
1483
|
+
do_getprop_with_lval:
|
1484
|
+
VALUE_TO_OBJECT(cx, -1, lval, obj);
|
1485
|
+
|
1486
|
+
do_getprop_with_obj:
|
1487
|
+
do {
|
1488
|
+
JSObject *aobj;
|
1489
|
+
JSPropCacheEntry *entry;
|
1490
|
+
|
1491
|
+
aobj = js_GetProtoIfDenseArray(cx, obj);
|
1492
|
+
if (JS_LIKELY(aobj->map->ops->getProperty == js_GetProperty)) {
|
1493
|
+
PROPERTY_CACHE_TEST(cx, regs.pc, aobj, obj2, entry, atom);
|
1494
|
+
if (!atom) {
|
1495
|
+
ASSERT_VALID_PROPERTY_CACHE_HIT(i, aobj, obj2, entry);
|
1496
|
+
if (PCVAL_IS_OBJECT(entry->vword)) {
|
1497
|
+
rval = PCVAL_OBJECT_TO_JSVAL(entry->vword);
|
1498
|
+
} else if (PCVAL_IS_SLOT(entry->vword)) {
|
1499
|
+
slot = PCVAL_TO_SLOT(entry->vword);
|
1500
|
+
JS_ASSERT(slot < OBJ_SCOPE(obj2)->freeslot);
|
1501
|
+
rval = LOCKED_OBJ_GET_SLOT(obj2, slot);
|
1502
|
+
} else {
|
1503
|
+
JS_ASSERT(PCVAL_IS_SPROP(entry->vword));
|
1504
|
+
sprop = PCVAL_TO_SPROP(entry->vword);
|
1505
|
+
NATIVE_GET(cx, obj, obj2, sprop, &rval);
|
1506
|
+
}
|
1507
|
+
JS_UNLOCK_OBJ(cx, obj2);
|
1508
|
+
break;
|
1509
|
+
}
|
1510
|
+
} else {
|
1511
|
+
entry = NULL;
|
1512
|
+
if (i < 0)
|
1513
|
+
atom = rt->atomState.lengthAtom;
|
1514
|
+
else
|
1515
|
+
LOAD_ATOM(i);
|
1516
|
+
}
|
1517
|
+
id = ATOM_TO_JSID(atom);
|
1518
|
+
if (entry
|
1519
|
+
? !js_GetPropertyHelper(cx, obj, id, true, &rval)
|
1520
|
+
: !obj->getProperty(cx, id, &rval)) {
|
1521
|
+
goto error;
|
1522
|
+
}
|
1523
|
+
} while (0);
|
1524
|
+
|
1525
|
+
STORE_OPND(-1, rval);
|
1526
|
+
JS_ASSERT(JSOP_GETPROP_LENGTH + i == js_CodeSpec[op].length);
|
1527
|
+
len = JSOP_GETPROP_LENGTH + i;
|
1528
|
+
END_VARLEN_CASE
|
1529
|
+
|
1530
|
+
BEGIN_CASE(JSOP_LENGTH)
|
1531
|
+
lval = FETCH_OPND(-1);
|
1532
|
+
if (JSVAL_IS_STRING(lval)) {
|
1533
|
+
str = JSVAL_TO_STRING(lval);
|
1534
|
+
regs.sp[-1] = INT_TO_JSVAL(str->length());
|
1535
|
+
} else if (!JSVAL_IS_PRIMITIVE(lval) &&
|
1536
|
+
(obj = JSVAL_TO_OBJECT(lval), OBJ_IS_ARRAY(cx, obj))) {
|
1537
|
+
jsuint length;
|
1538
|
+
|
1539
|
+
/*
|
1540
|
+
* We know that the array is created with only its 'length'
|
1541
|
+
* private data in a fixed slot at JSSLOT_ARRAY_LENGTH. See
|
1542
|
+
* also JSOP_ARRAYPUSH, far below.
|
1543
|
+
*/
|
1544
|
+
length = obj->fslots[JSSLOT_ARRAY_LENGTH];
|
1545
|
+
if (length <= JSVAL_INT_MAX) {
|
1546
|
+
regs.sp[-1] = INT_TO_JSVAL(length);
|
1547
|
+
} else if (!js_NewDoubleInRootedValue(cx, (jsdouble) length,
|
1548
|
+
®s.sp[-1])) {
|
1549
|
+
goto error;
|
1550
|
+
}
|
1551
|
+
} else {
|
1552
|
+
i = -2;
|
1553
|
+
goto do_getprop_with_lval;
|
1554
|
+
}
|
1555
|
+
END_CASE(JSOP_LENGTH)
|
1556
|
+
|
1557
|
+
BEGIN_CASE(JSOP_CALLPROP)
|
1558
|
+
{
|
1559
|
+
JSObject *aobj;
|
1560
|
+
JSPropCacheEntry *entry;
|
1561
|
+
|
1562
|
+
lval = FETCH_OPND(-1);
|
1563
|
+
if (!JSVAL_IS_PRIMITIVE(lval)) {
|
1564
|
+
obj = JSVAL_TO_OBJECT(lval);
|
1565
|
+
} else {
|
1566
|
+
if (JSVAL_IS_STRING(lval)) {
|
1567
|
+
i = JSProto_String;
|
1568
|
+
} else if (JSVAL_IS_NUMBER(lval)) {
|
1569
|
+
i = JSProto_Number;
|
1570
|
+
} else if (JSVAL_IS_BOOLEAN(lval)) {
|
1571
|
+
i = JSProto_Boolean;
|
1572
|
+
} else {
|
1573
|
+
JS_ASSERT(JSVAL_IS_NULL(lval) || JSVAL_IS_VOID(lval));
|
1574
|
+
js_ReportIsNullOrUndefined(cx, -1, lval, NULL);
|
1575
|
+
goto error;
|
1576
|
+
}
|
1577
|
+
|
1578
|
+
if (!js_GetClassPrototype(cx, NULL, INT_TO_JSID(i), &obj))
|
1579
|
+
goto error;
|
1580
|
+
}
|
1581
|
+
|
1582
|
+
aobj = js_GetProtoIfDenseArray(cx, obj);
|
1583
|
+
if (JS_LIKELY(aobj->map->ops->getProperty == js_GetProperty)) {
|
1584
|
+
PROPERTY_CACHE_TEST(cx, regs.pc, aobj, obj2, entry, atom);
|
1585
|
+
if (!atom) {
|
1586
|
+
ASSERT_VALID_PROPERTY_CACHE_HIT(0, aobj, obj2, entry);
|
1587
|
+
if (PCVAL_IS_OBJECT(entry->vword)) {
|
1588
|
+
rval = PCVAL_OBJECT_TO_JSVAL(entry->vword);
|
1589
|
+
} else if (PCVAL_IS_SLOT(entry->vword)) {
|
1590
|
+
slot = PCVAL_TO_SLOT(entry->vword);
|
1591
|
+
JS_ASSERT(slot < OBJ_SCOPE(obj2)->freeslot);
|
1592
|
+
rval = LOCKED_OBJ_GET_SLOT(obj2, slot);
|
1593
|
+
} else {
|
1594
|
+
JS_ASSERT(PCVAL_IS_SPROP(entry->vword));
|
1595
|
+
sprop = PCVAL_TO_SPROP(entry->vword);
|
1596
|
+
NATIVE_GET(cx, obj, obj2, sprop, &rval);
|
1597
|
+
}
|
1598
|
+
JS_UNLOCK_OBJ(cx, obj2);
|
1599
|
+
STORE_OPND(-1, rval);
|
1600
|
+
PUSH_OPND(lval);
|
1601
|
+
goto end_callprop;
|
1602
|
+
}
|
1603
|
+
} else {
|
1604
|
+
entry = NULL;
|
1605
|
+
LOAD_ATOM(0);
|
1606
|
+
}
|
1607
|
+
|
1608
|
+
/*
|
1609
|
+
* Cache miss: use the immediate atom that was loaded for us under
|
1610
|
+
* PROPERTY_CACHE_TEST.
|
1611
|
+
*/
|
1612
|
+
id = ATOM_TO_JSID(atom);
|
1613
|
+
PUSH(JSVAL_NULL);
|
1614
|
+
if (!JSVAL_IS_PRIMITIVE(lval)) {
|
1615
|
+
if (!js_GetMethod(cx, obj, id, !!entry, &rval))
|
1616
|
+
goto error;
|
1617
|
+
STORE_OPND(-1, OBJECT_TO_JSVAL(obj));
|
1618
|
+
STORE_OPND(-2, rval);
|
1619
|
+
} else {
|
1620
|
+
JS_ASSERT(obj->map->ops->getProperty == js_GetProperty);
|
1621
|
+
if (!js_GetPropertyHelper(cx, obj, id, true, &rval))
|
1622
|
+
goto error;
|
1623
|
+
STORE_OPND(-1, lval);
|
1624
|
+
STORE_OPND(-2, rval);
|
1625
|
+
}
|
1626
|
+
|
1627
|
+
end_callprop:
|
1628
|
+
/* Wrap primitive lval in object clothing if necessary. */
|
1629
|
+
if (JSVAL_IS_PRIMITIVE(lval)) {
|
1630
|
+
/* FIXME: https://bugzilla.mozilla.org/show_bug.cgi?id=412571 */
|
1631
|
+
if (!VALUE_IS_FUNCTION(cx, rval) ||
|
1632
|
+
(obj = JSVAL_TO_OBJECT(rval),
|
1633
|
+
fun = GET_FUNCTION_PRIVATE(cx, obj),
|
1634
|
+
!PRIMITIVE_THIS_TEST(fun, lval))) {
|
1635
|
+
if (!js_PrimitiveToObject(cx, ®s.sp[-1]))
|
1636
|
+
goto error;
|
1637
|
+
}
|
1638
|
+
}
|
1639
|
+
#if JS_HAS_NO_SUCH_METHOD
|
1640
|
+
if (JS_UNLIKELY(JSVAL_IS_VOID(rval))) {
|
1641
|
+
LOAD_ATOM(0);
|
1642
|
+
regs.sp[-2] = ATOM_KEY(atom);
|
1643
|
+
if (!js_OnUnknownMethod(cx, regs.sp - 2))
|
1644
|
+
goto error;
|
1645
|
+
}
|
1646
|
+
#endif
|
1647
|
+
}
|
1648
|
+
END_CASE(JSOP_CALLPROP)
|
1649
|
+
|
1650
|
+
BEGIN_CASE(JSOP_SETNAME)
|
1651
|
+
BEGIN_CASE(JSOP_SETPROP)
|
1652
|
+
rval = FETCH_OPND(-1);
|
1653
|
+
lval = FETCH_OPND(-2);
|
1654
|
+
JS_ASSERT(!JSVAL_IS_PRIMITIVE(lval) || op == JSOP_SETPROP);
|
1655
|
+
VALUE_TO_OBJECT(cx, -2, lval, obj);
|
1656
|
+
|
1657
|
+
do {
|
1658
|
+
JSPropCacheEntry *entry;
|
1659
|
+
|
1660
|
+
entry = NULL;
|
1661
|
+
atom = NULL;
|
1662
|
+
if (JS_LIKELY(obj->map->ops->setProperty == js_SetProperty)) {
|
1663
|
+
JSPropertyCache *cache = &JS_PROPERTY_CACHE(cx);
|
1664
|
+
uint32 kshape = OBJ_SHAPE(obj);
|
1665
|
+
|
1666
|
+
/*
|
1667
|
+
* Open-code PROPERTY_CACHE_TEST, specializing for two
|
1668
|
+
* important set-property cases. First:
|
1669
|
+
*
|
1670
|
+
* function f(a, b, c) {
|
1671
|
+
* var o = {p:a, q:b, r:c};
|
1672
|
+
* return o;
|
1673
|
+
* }
|
1674
|
+
*
|
1675
|
+
* or similar real-world cases, which evolve a newborn
|
1676
|
+
* native object predicatably through some bounded number
|
1677
|
+
* of property additions. And second:
|
1678
|
+
*
|
1679
|
+
* o.p = x;
|
1680
|
+
*
|
1681
|
+
* in a frequently executed method or loop body, where p
|
1682
|
+
* will (possibly after the first iteration) always exist
|
1683
|
+
* in native object o.
|
1684
|
+
*/
|
1685
|
+
entry = &cache->table[PROPERTY_CACHE_HASH_PC(regs.pc, kshape)];
|
1686
|
+
PCMETER(cache->pctestentry = entry);
|
1687
|
+
PCMETER(cache->tests++);
|
1688
|
+
PCMETER(cache->settests++);
|
1689
|
+
if (entry->kpc == regs.pc && entry->kshape == kshape) {
|
1690
|
+
JS_ASSERT(PCVCAP_TAG(entry->vcap) <= 1);
|
1691
|
+
if (JS_LOCK_OBJ_IF_SHAPE(cx, obj, kshape)) {
|
1692
|
+
JS_ASSERT(PCVAL_IS_SPROP(entry->vword));
|
1693
|
+
sprop = PCVAL_TO_SPROP(entry->vword);
|
1694
|
+
JS_ASSERT(!(sprop->attrs & JSPROP_READONLY));
|
1695
|
+
JS_ASSERT_IF(!(sprop->attrs & JSPROP_SHARED),
|
1696
|
+
PCVCAP_TAG(entry->vcap) == 0);
|
1697
|
+
|
1698
|
+
JSScope *scope = OBJ_SCOPE(obj);
|
1699
|
+
JS_ASSERT(!scope->sealed());
|
1700
|
+
|
1701
|
+
/*
|
1702
|
+
* Fastest path: check whether the cached sprop is
|
1703
|
+
* already in scope and call NATIVE_SET and break
|
1704
|
+
* to get out of the do-while(0). But we can call
|
1705
|
+
* NATIVE_SET only if obj owns scope or sprop is
|
1706
|
+
* shared.
|
1707
|
+
*/
|
1708
|
+
bool checkForAdd;
|
1709
|
+
if (sprop->attrs & JSPROP_SHARED) {
|
1710
|
+
if (PCVCAP_TAG(entry->vcap) == 0 ||
|
1711
|
+
((obj2 = OBJ_GET_PROTO(cx, obj)) &&
|
1712
|
+
OBJ_IS_NATIVE(obj2) &&
|
1713
|
+
OBJ_SHAPE(obj2) == PCVCAP_SHAPE(entry->vcap))) {
|
1714
|
+
goto fast_set_propcache_hit;
|
1715
|
+
}
|
1716
|
+
|
1717
|
+
/* The cache entry doesn't apply. vshape mismatch. */
|
1718
|
+
checkForAdd = false;
|
1719
|
+
} else if (scope->owned()) {
|
1720
|
+
if (sprop == scope->lastProp || scope->has(sprop)) {
|
1721
|
+
fast_set_propcache_hit:
|
1722
|
+
PCMETER(cache->pchits++);
|
1723
|
+
PCMETER(cache->setpchits++);
|
1724
|
+
NATIVE_SET(cx, obj, sprop, entry, &rval);
|
1725
|
+
JS_UNLOCK_SCOPE(cx, scope);
|
1726
|
+
break;
|
1727
|
+
}
|
1728
|
+
checkForAdd =
|
1729
|
+
!(sprop->attrs & JSPROP_SHARED) &&
|
1730
|
+
sprop->parent == scope->lastProp &&
|
1731
|
+
!scope->hadMiddleDelete();
|
1732
|
+
} else {
|
1733
|
+
scope = js_GetMutableScope(cx, obj);
|
1734
|
+
if (!scope) {
|
1735
|
+
JS_UNLOCK_OBJ(cx, obj);
|
1736
|
+
goto error;
|
1737
|
+
}
|
1738
|
+
checkForAdd = !sprop->parent;
|
1739
|
+
}
|
1740
|
+
|
1741
|
+
if (checkForAdd &&
|
1742
|
+
SPROP_HAS_STUB_SETTER(sprop) &&
|
1743
|
+
(slot = sprop->slot) == scope->freeslot) {
|
1744
|
+
/*
|
1745
|
+
* Fast path: adding a plain old property that
|
1746
|
+
* was once at the frontier of the property
|
1747
|
+
* tree, whose slot is next to claim among the
|
1748
|
+
* allocated slots in obj, where scope->table
|
1749
|
+
* has not been created yet.
|
1750
|
+
*
|
1751
|
+
* We may want to remove hazard conditions
|
1752
|
+
* above and inline compensation code here,
|
1753
|
+
* depending on real-world workloads.
|
1754
|
+
*/
|
1755
|
+
JS_ASSERT(!(obj->getClass()->flags &
|
1756
|
+
JSCLASS_SHARE_ALL_PROPERTIES));
|
1757
|
+
|
1758
|
+
PCMETER(cache->pchits++);
|
1759
|
+
PCMETER(cache->addpchits++);
|
1760
|
+
|
1761
|
+
/*
|
1762
|
+
* Beware classes such as Function that use
|
1763
|
+
* the reserveSlots hook to allocate a number
|
1764
|
+
* of reserved slots that may vary with obj.
|
1765
|
+
*/
|
1766
|
+
if (slot < STOBJ_NSLOTS(obj) &&
|
1767
|
+
!OBJ_GET_CLASS(cx, obj)->reserveSlots) {
|
1768
|
+
++scope->freeslot;
|
1769
|
+
} else {
|
1770
|
+
if (!js_AllocSlot(cx, obj, &slot)) {
|
1771
|
+
JS_UNLOCK_SCOPE(cx, scope);
|
1772
|
+
goto error;
|
1773
|
+
}
|
1774
|
+
}
|
1775
|
+
|
1776
|
+
/*
|
1777
|
+
* If this obj's number of reserved slots
|
1778
|
+
* differed, or if something created a hash
|
1779
|
+
* table for scope, we must pay the price of
|
1780
|
+
* JSScope::add.
|
1781
|
+
*
|
1782
|
+
* If slot does not match the cached sprop's
|
1783
|
+
* slot, update the cache entry in the hope
|
1784
|
+
* that obj and other instances with the same
|
1785
|
+
* number of reserved slots are now "hot".
|
1786
|
+
*/
|
1787
|
+
if (slot != sprop->slot || scope->table) {
|
1788
|
+
JSScopeProperty *sprop2 =
|
1789
|
+
scope->add(cx, sprop->id,
|
1790
|
+
sprop->getter, sprop->setter,
|
1791
|
+
slot, sprop->attrs,
|
1792
|
+
sprop->flags, sprop->shortid);
|
1793
|
+
if (!sprop2) {
|
1794
|
+
js_FreeSlot(cx, obj, slot);
|
1795
|
+
JS_UNLOCK_SCOPE(cx, scope);
|
1796
|
+
goto error;
|
1797
|
+
}
|
1798
|
+
if (sprop2 != sprop) {
|
1799
|
+
PCMETER(cache->slotchanges++);
|
1800
|
+
JS_ASSERT(slot != sprop->slot &&
|
1801
|
+
slot == sprop2->slot &&
|
1802
|
+
sprop2->id == sprop->id);
|
1803
|
+
entry->vword = SPROP_TO_PCVAL(sprop2);
|
1804
|
+
}
|
1805
|
+
sprop = sprop2;
|
1806
|
+
} else {
|
1807
|
+
scope->extend(cx, sprop);
|
1808
|
+
}
|
1809
|
+
|
1810
|
+
LOCKED_OBJ_WRITE_BARRIER(cx, obj, slot, rval);
|
1811
|
+
TRACE_2(SetPropHit, entry, sprop);
|
1812
|
+
LOCKED_OBJ_SET_SLOT(obj, slot, rval);
|
1813
|
+
JS_UNLOCK_SCOPE(cx, scope);
|
1814
|
+
|
1815
|
+
/*
|
1816
|
+
* Purge the property cache of the id we may
|
1817
|
+
* have just shadowed in obj's scope and proto
|
1818
|
+
* chains. We do this after unlocking obj's
|
1819
|
+
* scope to avoid lock nesting.
|
1820
|
+
*/
|
1821
|
+
js_PurgeScopeChain(cx, obj, sprop->id);
|
1822
|
+
break;
|
1823
|
+
}
|
1824
|
+
JS_UNLOCK_SCOPE(cx, scope);
|
1825
|
+
PCMETER(cache->setpcmisses++);
|
1826
|
+
}
|
1827
|
+
}
|
1828
|
+
|
1829
|
+
atom = js_FullTestPropertyCache(cx, regs.pc, &obj, &obj2,
|
1830
|
+
&entry);
|
1831
|
+
if (atom) {
|
1832
|
+
PCMETER(cache->misses++);
|
1833
|
+
PCMETER(cache->setmisses++);
|
1834
|
+
} else {
|
1835
|
+
ASSERT_VALID_PROPERTY_CACHE_HIT(0, obj, obj2, entry);
|
1836
|
+
sprop = NULL;
|
1837
|
+
if (obj == obj2) {
|
1838
|
+
JS_ASSERT(PCVAL_IS_SPROP(entry->vword));
|
1839
|
+
sprop = PCVAL_TO_SPROP(entry->vword);
|
1840
|
+
JS_ASSERT(!(sprop->attrs & JSPROP_READONLY));
|
1841
|
+
JS_ASSERT(!OBJ_SCOPE(obj2)->sealed());
|
1842
|
+
NATIVE_SET(cx, obj, sprop, entry, &rval);
|
1843
|
+
}
|
1844
|
+
JS_UNLOCK_OBJ(cx, obj2);
|
1845
|
+
if (sprop)
|
1846
|
+
break;
|
1847
|
+
}
|
1848
|
+
}
|
1849
|
+
|
1850
|
+
if (!atom)
|
1851
|
+
LOAD_ATOM(0);
|
1852
|
+
id = ATOM_TO_JSID(atom);
|
1853
|
+
if (entry) {
|
1854
|
+
if (!js_SetPropertyHelper(cx, obj, id, true, &rval))
|
1855
|
+
goto error;
|
1856
|
+
} else {
|
1857
|
+
if (!obj->setProperty(cx, id, &rval))
|
1858
|
+
goto error;
|
1859
|
+
ABORT_RECORDING(cx, "Non-native set");
|
1860
|
+
}
|
1861
|
+
} while (0);
|
1862
|
+
END_SET_CASE_STORE_RVAL(JSOP_SETPROP, 2);
|
1863
|
+
|
1864
|
+
BEGIN_CASE(JSOP_GETELEM)
|
1865
|
+
/* Open-coded ELEMENT_OP optimized for strings and dense arrays. */
|
1866
|
+
lval = FETCH_OPND(-2);
|
1867
|
+
rval = FETCH_OPND(-1);
|
1868
|
+
if (JSVAL_IS_STRING(lval) && JSVAL_IS_INT(rval)) {
|
1869
|
+
str = JSVAL_TO_STRING(lval);
|
1870
|
+
i = JSVAL_TO_INT(rval);
|
1871
|
+
if ((size_t)i < str->length()) {
|
1872
|
+
str = JSString::getUnitString(cx, str, size_t(i));
|
1873
|
+
if (!str)
|
1874
|
+
goto error;
|
1875
|
+
rval = STRING_TO_JSVAL(str);
|
1876
|
+
goto end_getelem;
|
1877
|
+
}
|
1878
|
+
}
|
1879
|
+
|
1880
|
+
VALUE_TO_OBJECT(cx, -2, lval, obj);
|
1881
|
+
if (JSVAL_IS_INT(rval)) {
|
1882
|
+
if (OBJ_IS_DENSE_ARRAY(cx, obj)) {
|
1883
|
+
jsuint length;
|
1884
|
+
|
1885
|
+
length = js_DenseArrayCapacity(obj);
|
1886
|
+
i = JSVAL_TO_INT(rval);
|
1887
|
+
if ((jsuint)i < length &&
|
1888
|
+
i < obj->fslots[JSSLOT_ARRAY_LENGTH]) {
|
1889
|
+
rval = obj->dslots[i];
|
1890
|
+
if (rval != JSVAL_HOLE)
|
1891
|
+
goto end_getelem;
|
1892
|
+
|
1893
|
+
/* Reload rval from the stack in the rare hole case. */
|
1894
|
+
rval = FETCH_OPND(-1);
|
1895
|
+
}
|
1896
|
+
}
|
1897
|
+
id = INT_JSVAL_TO_JSID(rval);
|
1898
|
+
} else {
|
1899
|
+
if (!js_InternNonIntElementId(cx, obj, rval, &id))
|
1900
|
+
goto error;
|
1901
|
+
}
|
1902
|
+
|
1903
|
+
if (!obj->getProperty(cx, id, &rval))
|
1904
|
+
goto error;
|
1905
|
+
end_getelem:
|
1906
|
+
regs.sp--;
|
1907
|
+
STORE_OPND(-1, rval);
|
1908
|
+
END_CASE(JSOP_GETELEM)
|
1909
|
+
|
1910
|
+
BEGIN_CASE(JSOP_CALLELEM)
|
1911
|
+
ELEMENT_OP(-1, js_GetMethod(cx, obj, id, false, &rval));
|
1912
|
+
#if JS_HAS_NO_SUCH_METHOD
|
1913
|
+
if (JS_UNLIKELY(JSVAL_IS_VOID(rval))) {
|
1914
|
+
regs.sp[-2] = regs.sp[-1];
|
1915
|
+
regs.sp[-1] = OBJECT_TO_JSVAL(obj);
|
1916
|
+
if (!js_OnUnknownMethod(cx, regs.sp - 2))
|
1917
|
+
goto error;
|
1918
|
+
} else
|
1919
|
+
#endif
|
1920
|
+
{
|
1921
|
+
STORE_OPND(-2, rval);
|
1922
|
+
STORE_OPND(-1, OBJECT_TO_JSVAL(obj));
|
1923
|
+
}
|
1924
|
+
END_CASE(JSOP_CALLELEM)
|
1925
|
+
|
1926
|
+
BEGIN_CASE(JSOP_SETELEM)
|
1927
|
+
rval = FETCH_OPND(-1);
|
1928
|
+
FETCH_OBJECT(cx, -3, lval, obj);
|
1929
|
+
FETCH_ELEMENT_ID(obj, -2, id);
|
1930
|
+
do {
|
1931
|
+
if (OBJ_IS_DENSE_ARRAY(cx, obj) && JSID_IS_INT(id)) {
|
1932
|
+
jsuint length;
|
1933
|
+
|
1934
|
+
length = js_DenseArrayCapacity(obj);
|
1935
|
+
i = JSID_TO_INT(id);
|
1936
|
+
if ((jsuint)i < length) {
|
1937
|
+
if (obj->dslots[i] == JSVAL_HOLE) {
|
1938
|
+
if (js_PrototypeHasIndexedProperties(cx, obj))
|
1939
|
+
break;
|
1940
|
+
if (i >= obj->fslots[JSSLOT_ARRAY_LENGTH])
|
1941
|
+
obj->fslots[JSSLOT_ARRAY_LENGTH] = i + 1;
|
1942
|
+
obj->fslots[JSSLOT_ARRAY_COUNT]++;
|
1943
|
+
}
|
1944
|
+
obj->dslots[i] = rval;
|
1945
|
+
goto end_setelem;
|
1946
|
+
}
|
1947
|
+
}
|
1948
|
+
} while (0);
|
1949
|
+
if (!obj->setProperty(cx, id, &rval))
|
1950
|
+
goto error;
|
1951
|
+
end_setelem:
|
1952
|
+
END_SET_CASE_STORE_RVAL(JSOP_SETELEM, 3)
|
1953
|
+
|
1954
|
+
BEGIN_CASE(JSOP_ENUMELEM)
|
1955
|
+
/* Funky: the value to set is under the [obj, id] pair. */
|
1956
|
+
rval = FETCH_OPND(-3);
|
1957
|
+
FETCH_OBJECT(cx, -2, lval, obj);
|
1958
|
+
FETCH_ELEMENT_ID(obj, -1, id);
|
1959
|
+
if (!obj->setProperty(cx, id, &rval))
|
1960
|
+
goto error;
|
1961
|
+
regs.sp -= 3;
|
1962
|
+
END_CASE(JSOP_ENUMELEM)
|
1963
|
+
|
1964
|
+
BEGIN_CASE(JSOP_NEW)
|
1965
|
+
/* Get immediate argc and find the constructor function. */
|
1966
|
+
argc = GET_ARGC(regs.pc);
|
1967
|
+
vp = regs.sp - (2 + argc);
|
1968
|
+
JS_ASSERT(vp >= StackBase(fp));
|
1969
|
+
|
1970
|
+
/*
|
1971
|
+
* Assign lval, obj, and fun exactly as the code at inline_call:
|
1972
|
+
* expects to find them, to avoid nesting a js_Interpret call via
|
1973
|
+
* js_InvokeConstructor.
|
1974
|
+
*/
|
1975
|
+
lval = *vp;
|
1976
|
+
if (VALUE_IS_FUNCTION(cx, lval)) {
|
1977
|
+
obj = JSVAL_TO_OBJECT(lval);
|
1978
|
+
fun = GET_FUNCTION_PRIVATE(cx, obj);
|
1979
|
+
if (FUN_INTERPRETED(fun)) {
|
1980
|
+
/* Root as we go using vp[1]. */
|
1981
|
+
if (!obj->getProperty(cx,
|
1982
|
+
ATOM_TO_JSID(cx->runtime->atomState.classPrototypeAtom),
|
1983
|
+
&vp[1])) {
|
1984
|
+
goto error;
|
1985
|
+
}
|
1986
|
+
rval = vp[1];
|
1987
|
+
obj2 = js_NewObject(cx, &js_ObjectClass,
|
1988
|
+
JSVAL_IS_OBJECT(rval)
|
1989
|
+
? JSVAL_TO_OBJECT(rval)
|
1990
|
+
: NULL,
|
1991
|
+
OBJ_GET_PARENT(cx, obj));
|
1992
|
+
if (!obj2)
|
1993
|
+
goto error;
|
1994
|
+
vp[1] = OBJECT_TO_JSVAL(obj2);
|
1995
|
+
flags = JSFRAME_CONSTRUCTING;
|
1996
|
+
goto inline_call;
|
1997
|
+
}
|
1998
|
+
}
|
1999
|
+
|
2000
|
+
if (!js_InvokeConstructor(cx, argc, JS_FALSE, vp))
|
2001
|
+
goto error;
|
2002
|
+
regs.sp = vp + 1;
|
2003
|
+
CHECK_INTERRUPT_HANDLER();
|
2004
|
+
TRACE_0(NativeCallComplete);
|
2005
|
+
END_CASE(JSOP_NEW)
|
2006
|
+
|
2007
|
+
BEGIN_CASE(JSOP_CALL)
|
2008
|
+
BEGIN_CASE(JSOP_EVAL)
|
2009
|
+
BEGIN_CASE(JSOP_APPLY)
|
2010
|
+
argc = GET_ARGC(regs.pc);
|
2011
|
+
vp = regs.sp - (argc + 2);
|
2012
|
+
|
2013
|
+
lval = *vp;
|
2014
|
+
if (VALUE_IS_FUNCTION(cx, lval)) {
|
2015
|
+
obj = JSVAL_TO_OBJECT(lval);
|
2016
|
+
fun = GET_FUNCTION_PRIVATE(cx, obj);
|
2017
|
+
|
2018
|
+
/* Clear frame flags since this is not a constructor call. */
|
2019
|
+
flags = 0;
|
2020
|
+
if (FUN_INTERPRETED(fun))
|
2021
|
+
inline_call:
|
2022
|
+
{
|
2023
|
+
uintN nframeslots, nvars, missing;
|
2024
|
+
JSArena *a;
|
2025
|
+
jsuword nbytes;
|
2026
|
+
void *newmark;
|
2027
|
+
jsval *newsp;
|
2028
|
+
JSInlineFrame *newifp;
|
2029
|
+
JSInterpreterHook hook;
|
2030
|
+
|
2031
|
+
/* Restrict recursion of lightweight functions. */
|
2032
|
+
if (inlineCallCount == MAX_INLINE_CALL_COUNT) {
|
2033
|
+
js_ReportOverRecursed(cx);
|
2034
|
+
goto error;
|
2035
|
+
}
|
2036
|
+
|
2037
|
+
/* Compute the total number of stack slots needed by fun. */
|
2038
|
+
nframeslots = JS_HOWMANY(sizeof(JSInlineFrame),
|
2039
|
+
sizeof(jsval));
|
2040
|
+
script = fun->u.i.script;
|
2041
|
+
atoms = script->atomMap.vector;
|
2042
|
+
nbytes = (nframeslots + script->nslots) * sizeof(jsval);
|
2043
|
+
|
2044
|
+
/* Allocate missing expected args adjacent to actuals. */
|
2045
|
+
a = cx->stackPool.current;
|
2046
|
+
newmark = (void *) a->avail;
|
2047
|
+
if (fun->nargs <= argc) {
|
2048
|
+
missing = 0;
|
2049
|
+
} else {
|
2050
|
+
newsp = vp + 2 + fun->nargs;
|
2051
|
+
JS_ASSERT(newsp > regs.sp);
|
2052
|
+
if ((jsuword) newsp <= a->limit) {
|
2053
|
+
if ((jsuword) newsp > a->avail)
|
2054
|
+
a->avail = (jsuword) newsp;
|
2055
|
+
jsval *argsp = newsp;
|
2056
|
+
do {
|
2057
|
+
*--argsp = JSVAL_VOID;
|
2058
|
+
} while (argsp != regs.sp);
|
2059
|
+
missing = 0;
|
2060
|
+
} else {
|
2061
|
+
missing = fun->nargs - argc;
|
2062
|
+
nbytes += (2 + fun->nargs) * sizeof(jsval);
|
2063
|
+
}
|
2064
|
+
}
|
2065
|
+
|
2066
|
+
/* Allocate the inline frame with its slots and operands. */
|
2067
|
+
if (a->avail + nbytes <= a->limit) {
|
2068
|
+
newsp = (jsval *) a->avail;
|
2069
|
+
a->avail += nbytes;
|
2070
|
+
JS_ASSERT(missing == 0);
|
2071
|
+
} else {
|
2072
|
+
JS_ARENA_ALLOCATE_CAST(newsp, jsval *, &cx->stackPool,
|
2073
|
+
nbytes);
|
2074
|
+
if (!newsp) {
|
2075
|
+
js_ReportOutOfScriptQuota(cx);
|
2076
|
+
goto bad_inline_call;
|
2077
|
+
}
|
2078
|
+
|
2079
|
+
/*
|
2080
|
+
* Move args if the missing ones overflow arena a, then
|
2081
|
+
* push undefined for the missing args.
|
2082
|
+
*/
|
2083
|
+
if (missing) {
|
2084
|
+
memcpy(newsp, vp, (2 + argc) * sizeof(jsval));
|
2085
|
+
vp = newsp;
|
2086
|
+
newsp = vp + 2 + argc;
|
2087
|
+
do {
|
2088
|
+
*newsp++ = JSVAL_VOID;
|
2089
|
+
} while (--missing != 0);
|
2090
|
+
}
|
2091
|
+
}
|
2092
|
+
|
2093
|
+
/* Claim space for the stack frame and initialize it. */
|
2094
|
+
newifp = (JSInlineFrame *) newsp;
|
2095
|
+
newsp += nframeslots;
|
2096
|
+
newifp->frame.callobj = NULL;
|
2097
|
+
newifp->frame.argsobj = NULL;
|
2098
|
+
newifp->frame.varobj = NULL;
|
2099
|
+
newifp->frame.script = script;
|
2100
|
+
newifp->frame.fun = fun;
|
2101
|
+
newifp->frame.argc = argc;
|
2102
|
+
newifp->frame.argv = vp + 2;
|
2103
|
+
newifp->frame.rval = JSVAL_VOID;
|
2104
|
+
newifp->frame.down = fp;
|
2105
|
+
newifp->frame.annotation = NULL;
|
2106
|
+
newifp->frame.scopeChain = parent = OBJ_GET_PARENT(cx, obj);
|
2107
|
+
newifp->frame.sharpDepth = 0;
|
2108
|
+
newifp->frame.sharpArray = NULL;
|
2109
|
+
newifp->frame.flags = flags;
|
2110
|
+
newifp->frame.dormantNext = NULL;
|
2111
|
+
newifp->frame.blockChain = NULL;
|
2112
|
+
if (script->staticLevel < JS_DISPLAY_SIZE) {
|
2113
|
+
JSStackFrame **disp = &cx->display[script->staticLevel];
|
2114
|
+
newifp->frame.displaySave = *disp;
|
2115
|
+
*disp = &newifp->frame;
|
2116
|
+
}
|
2117
|
+
newifp->mark = newmark;
|
2118
|
+
|
2119
|
+
/* Compute the 'this' parameter now that argv is set. */
|
2120
|
+
JS_ASSERT(!JSFUN_BOUND_METHOD_TEST(fun->flags));
|
2121
|
+
JS_ASSERT(JSVAL_IS_OBJECT(vp[1]));
|
2122
|
+
newifp->frame.thisp = (JSObject *)vp[1];
|
2123
|
+
|
2124
|
+
newifp->frame.regs = NULL;
|
2125
|
+
newifp->frame.imacpc = NULL;
|
2126
|
+
newifp->frame.slots = newsp;
|
2127
|
+
|
2128
|
+
/* Push void to initialize local variables. */
|
2129
|
+
nvars = fun->u.i.nvars;
|
2130
|
+
while (nvars--)
|
2131
|
+
*newsp++ = JSVAL_VOID;
|
2132
|
+
|
2133
|
+
/* Scope with a call object parented by callee's parent. */
|
2134
|
+
if (JSFUN_HEAVYWEIGHT_TEST(fun->flags) &&
|
2135
|
+
!js_GetCallObject(cx, &newifp->frame)) {
|
2136
|
+
goto bad_inline_call;
|
2137
|
+
}
|
2138
|
+
|
2139
|
+
/* Switch version if currentVersion wasn't overridden. */
|
2140
|
+
newifp->callerVersion = (JSVersion) cx->version;
|
2141
|
+
if (JS_LIKELY(cx->version == currentVersion)) {
|
2142
|
+
currentVersion = (JSVersion) script->version;
|
2143
|
+
if (currentVersion != cx->version)
|
2144
|
+
js_SetVersion(cx, currentVersion);
|
2145
|
+
}
|
2146
|
+
|
2147
|
+
/* Push the frame and set interpreter registers. */
|
2148
|
+
newifp->callerRegs = regs;
|
2149
|
+
fp->regs = &newifp->callerRegs;
|
2150
|
+
regs.sp = newsp;
|
2151
|
+
regs.pc = script->code;
|
2152
|
+
newifp->frame.regs = ®s;
|
2153
|
+
cx->fp = fp = &newifp->frame;
|
2154
|
+
|
2155
|
+
/* Call the debugger hook if present. */
|
2156
|
+
hook = cx->debugHooks->callHook;
|
2157
|
+
if (hook) {
|
2158
|
+
newifp->hookData = hook(cx, &newifp->frame, JS_TRUE, 0,
|
2159
|
+
cx->debugHooks->callHookData);
|
2160
|
+
CHECK_INTERRUPT_HANDLER();
|
2161
|
+
} else {
|
2162
|
+
newifp->hookData = NULL;
|
2163
|
+
}
|
2164
|
+
|
2165
|
+
TRACE_0(EnterFrame);
|
2166
|
+
|
2167
|
+
inlineCallCount++;
|
2168
|
+
JS_RUNTIME_METER(rt, inlineCalls);
|
2169
|
+
|
2170
|
+
#ifdef INCLUDE_MOZILLA_DTRACE
|
2171
|
+
/* DTrace function entry, inlines */
|
2172
|
+
if (JAVASCRIPT_FUNCTION_ENTRY_ENABLED())
|
2173
|
+
jsdtrace_function_entry(cx, fp, fun);
|
2174
|
+
if (JAVASCRIPT_FUNCTION_INFO_ENABLED())
|
2175
|
+
jsdtrace_function_info(cx, fp, fp->down, fun);
|
2176
|
+
if (JAVASCRIPT_FUNCTION_ARGS_ENABLED())
|
2177
|
+
jsdtrace_function_args(cx, fp, fun, fp->argc, fp->argv);
|
2178
|
+
#endif
|
2179
|
+
|
2180
|
+
/* Load first op and dispatch it (safe since JSOP_STOP). */
|
2181
|
+
op = (JSOp) *regs.pc;
|
2182
|
+
DO_OP();
|
2183
|
+
|
2184
|
+
bad_inline_call:
|
2185
|
+
JS_ASSERT(fp->regs == ®s);
|
2186
|
+
script = fp->script;
|
2187
|
+
atoms = script->atomMap.vector;
|
2188
|
+
js_FreeRawStack(cx, newmark);
|
2189
|
+
goto error;
|
2190
|
+
}
|
2191
|
+
|
2192
|
+
if (fun->flags & JSFUN_FAST_NATIVE) {
|
2193
|
+
#ifdef INCLUDE_MOZILLA_DTRACE
|
2194
|
+
/* DTrace function entry, non-inlines */
|
2195
|
+
if (VALUE_IS_FUNCTION(cx, lval)) {
|
2196
|
+
if (JAVASCRIPT_FUNCTION_ENTRY_ENABLED())
|
2197
|
+
jsdtrace_function_entry(cx, NULL, fun);
|
2198
|
+
if (JAVASCRIPT_FUNCTION_INFO_ENABLED())
|
2199
|
+
jsdtrace_function_info(cx, NULL, fp, fun);
|
2200
|
+
if (JAVASCRIPT_FUNCTION_ARGS_ENABLED())
|
2201
|
+
jsdtrace_function_args(cx, fp, fun, argc, vp+2);
|
2202
|
+
}
|
2203
|
+
#endif
|
2204
|
+
|
2205
|
+
JS_ASSERT(fun->u.n.extra == 0);
|
2206
|
+
JS_ASSERT(JSVAL_IS_OBJECT(vp[1]) ||
|
2207
|
+
PRIMITIVE_THIS_TEST(fun, vp[1]));
|
2208
|
+
ok = ((JSFastNative) fun->u.n.native)(cx, argc, vp);
|
2209
|
+
#ifdef INCLUDE_MOZILLA_DTRACE
|
2210
|
+
if (VALUE_IS_FUNCTION(cx, lval)) {
|
2211
|
+
if (JAVASCRIPT_FUNCTION_RVAL_ENABLED())
|
2212
|
+
jsdtrace_function_rval(cx, NULL, fun, vp);
|
2213
|
+
if (JAVASCRIPT_FUNCTION_RETURN_ENABLED())
|
2214
|
+
jsdtrace_function_return(cx, NULL, fun);
|
2215
|
+
}
|
2216
|
+
#endif
|
2217
|
+
regs.sp = vp + 1;
|
2218
|
+
if (!ok) {
|
2219
|
+
/*
|
2220
|
+
* If we are executing the JSOP_NEXTITER imacro and a Stopiteration
|
2221
|
+
* exception is raised, transform it into a JSVAL_HOLE return value.
|
2222
|
+
* The tracer generates equivalent code by calling CatchStopIteration_tn.
|
2223
|
+
*/
|
2224
|
+
if (fp->imacpc && *fp->imacpc == JSOP_NEXTITER &&
|
2225
|
+
cx->throwing && js_ValueIsStopIteration(cx->exception)) {
|
2226
|
+
// pc may point to JSOP_DUP here due to bug 474854.
|
2227
|
+
JS_ASSERT(*regs.pc == JSOP_CALL || *regs.pc == JSOP_DUP);
|
2228
|
+
cx->throwing = JS_FALSE;
|
2229
|
+
cx->exception = JSVAL_VOID;
|
2230
|
+
regs.sp[-1] = JSVAL_HOLE;
|
2231
|
+
} else {
|
2232
|
+
goto error;
|
2233
|
+
}
|
2234
|
+
}
|
2235
|
+
TRACE_0(NativeCallComplete);
|
2236
|
+
goto end_call;
|
2237
|
+
}
|
2238
|
+
}
|
2239
|
+
|
2240
|
+
ok = js_Invoke(cx, argc, vp, 0);
|
2241
|
+
regs.sp = vp + 1;
|
2242
|
+
CHECK_INTERRUPT_HANDLER();
|
2243
|
+
if (!ok)
|
2244
|
+
goto error;
|
2245
|
+
JS_RUNTIME_METER(rt, nonInlineCalls);
|
2246
|
+
TRACE_0(NativeCallComplete);
|
2247
|
+
|
2248
|
+
end_call:
|
2249
|
+
#if JS_HAS_LVALUE_RETURN
|
2250
|
+
if (cx->rval2set) {
|
2251
|
+
/*
|
2252
|
+
* Use the stack depth we didn't claim in our budget, but that
|
2253
|
+
* we know is there on account of [fun, this] already having
|
2254
|
+
* been pushed, at a minimum (if no args). Those two slots
|
2255
|
+
* have been popped and [rval] has been pushed, which leaves
|
2256
|
+
* one more slot for rval2 before we might overflow.
|
2257
|
+
*
|
2258
|
+
* NB: rval2 must be the property identifier, and rval the
|
2259
|
+
* object from which to get the property. The pair form an
|
2260
|
+
* ECMA "reference type", which can be used on the right- or
|
2261
|
+
* left-hand side of assignment ops. Note well: only native
|
2262
|
+
* methods can return reference types. See JSOP_SETCALL just
|
2263
|
+
* below for the left-hand-side case.
|
2264
|
+
*/
|
2265
|
+
PUSH_OPND(cx->rval2);
|
2266
|
+
ELEMENT_OP(-1, obj->getProperty(cx, id, &rval));
|
2267
|
+
|
2268
|
+
regs.sp--;
|
2269
|
+
STORE_OPND(-1, rval);
|
2270
|
+
cx->rval2set = JS_FALSE;
|
2271
|
+
}
|
2272
|
+
#endif /* JS_HAS_LVALUE_RETURN */
|
2273
|
+
END_CASE(JSOP_CALL)
|
2274
|
+
|
2275
|
+
#if JS_HAS_LVALUE_RETURN
|
2276
|
+
BEGIN_CASE(JSOP_SETCALL)
|
2277
|
+
argc = GET_ARGC(regs.pc);
|
2278
|
+
vp = regs.sp - argc - 2;
|
2279
|
+
ok = js_Invoke(cx, argc, vp, 0);
|
2280
|
+
regs.sp = vp + 1;
|
2281
|
+
CHECK_INTERRUPT_HANDLER();
|
2282
|
+
if (!ok)
|
2283
|
+
goto error;
|
2284
|
+
if (!cx->rval2set) {
|
2285
|
+
op2 = js_GetOpcode(cx, script, regs.pc + JSOP_SETCALL_LENGTH);
|
2286
|
+
if (op2 != JSOP_DELELEM) {
|
2287
|
+
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL,
|
2288
|
+
JSMSG_BAD_LEFTSIDE_OF_ASS);
|
2289
|
+
goto error;
|
2290
|
+
}
|
2291
|
+
|
2292
|
+
/*
|
2293
|
+
* Store true as the result of the emulated delete of a
|
2294
|
+
* non-existent property. NB: We don't METER_OP_PAIR here;
|
2295
|
+
* it doesn't seem worth the code for this obscure case.
|
2296
|
+
*/
|
2297
|
+
*vp = JSVAL_TRUE;
|
2298
|
+
regs.pc += JSOP_SETCALL_LENGTH + JSOP_DELELEM_LENGTH;
|
2299
|
+
op = (JSOp) *regs.pc;
|
2300
|
+
DO_OP();
|
2301
|
+
}
|
2302
|
+
PUSH_OPND(cx->rval2);
|
2303
|
+
cx->rval2set = JS_FALSE;
|
2304
|
+
END_CASE(JSOP_SETCALL)
|
2305
|
+
#endif
|
2306
|
+
|
2307
|
+
BEGIN_CASE(JSOP_NAME)
|
2308
|
+
BEGIN_CASE(JSOP_CALLNAME)
|
2309
|
+
{
|
2310
|
+
JSPropCacheEntry *entry;
|
2311
|
+
|
2312
|
+
obj = fp->scopeChain;
|
2313
|
+
if (JS_LIKELY(OBJ_IS_NATIVE(obj))) {
|
2314
|
+
PROPERTY_CACHE_TEST(cx, regs.pc, obj, obj2, entry, atom);
|
2315
|
+
if (!atom) {
|
2316
|
+
ASSERT_VALID_PROPERTY_CACHE_HIT(0, obj, obj2, entry);
|
2317
|
+
if (PCVAL_IS_OBJECT(entry->vword)) {
|
2318
|
+
rval = PCVAL_OBJECT_TO_JSVAL(entry->vword);
|
2319
|
+
JS_UNLOCK_OBJ(cx, obj2);
|
2320
|
+
goto do_push_rval;
|
2321
|
+
}
|
2322
|
+
|
2323
|
+
if (PCVAL_IS_SLOT(entry->vword)) {
|
2324
|
+
slot = PCVAL_TO_SLOT(entry->vword);
|
2325
|
+
JS_ASSERT(slot < OBJ_SCOPE(obj2)->freeslot);
|
2326
|
+
rval = LOCKED_OBJ_GET_SLOT(obj2, slot);
|
2327
|
+
JS_UNLOCK_OBJ(cx, obj2);
|
2328
|
+
goto do_push_rval;
|
2329
|
+
}
|
2330
|
+
|
2331
|
+
JS_ASSERT(PCVAL_IS_SPROP(entry->vword));
|
2332
|
+
sprop = PCVAL_TO_SPROP(entry->vword);
|
2333
|
+
goto do_native_get;
|
2334
|
+
}
|
2335
|
+
} else {
|
2336
|
+
LOAD_ATOM(0);
|
2337
|
+
}
|
2338
|
+
|
2339
|
+
id = ATOM_TO_JSID(atom);
|
2340
|
+
if (!js_FindPropertyHelper(cx, id, true, &obj, &obj2, &prop))
|
2341
|
+
goto error;
|
2342
|
+
if (!prop) {
|
2343
|
+
/* Kludge to allow (typeof foo == "undefined") tests. */
|
2344
|
+
endpc = script->code + script->length;
|
2345
|
+
op2 = js_GetOpcode(cx, script, regs.pc + JSOP_NAME_LENGTH);
|
2346
|
+
if (op2 == JSOP_TYPEOF) {
|
2347
|
+
PUSH_OPND(JSVAL_VOID);
|
2348
|
+
len = JSOP_NAME_LENGTH;
|
2349
|
+
DO_NEXT_OP(len);
|
2350
|
+
}
|
2351
|
+
goto atom_not_defined;
|
2352
|
+
}
|
2353
|
+
|
2354
|
+
/* Take the slow path if prop was not found in a native object. */
|
2355
|
+
if (!OBJ_IS_NATIVE(obj) || !OBJ_IS_NATIVE(obj2)) {
|
2356
|
+
obj2->dropProperty(cx, prop);
|
2357
|
+
if (!obj->getProperty(cx, id, &rval))
|
2358
|
+
goto error;
|
2359
|
+
} else {
|
2360
|
+
sprop = (JSScopeProperty *)prop;
|
2361
|
+
do_native_get:
|
2362
|
+
NATIVE_GET(cx, obj, obj2, sprop, &rval);
|
2363
|
+
obj2->dropProperty(cx, (JSProperty *) sprop);
|
2364
|
+
}
|
2365
|
+
|
2366
|
+
do_push_rval:
|
2367
|
+
PUSH_OPND(rval);
|
2368
|
+
if (op == JSOP_CALLNAME)
|
2369
|
+
PUSH_OPND(OBJECT_TO_JSVAL(obj));
|
2370
|
+
}
|
2371
|
+
END_CASE(JSOP_NAME)
|
2372
|
+
|
2373
|
+
BEGIN_CASE(JSOP_UINT16)
|
2374
|
+
i = (jsint) GET_UINT16(regs.pc);
|
2375
|
+
rval = INT_TO_JSVAL(i);
|
2376
|
+
PUSH_OPND(rval);
|
2377
|
+
END_CASE(JSOP_UINT16)
|
2378
|
+
|
2379
|
+
BEGIN_CASE(JSOP_UINT24)
|
2380
|
+
i = (jsint) GET_UINT24(regs.pc);
|
2381
|
+
rval = INT_TO_JSVAL(i);
|
2382
|
+
PUSH_OPND(rval);
|
2383
|
+
END_CASE(JSOP_UINT24)
|
2384
|
+
|
2385
|
+
BEGIN_CASE(JSOP_INT8)
|
2386
|
+
i = GET_INT8(regs.pc);
|
2387
|
+
rval = INT_TO_JSVAL(i);
|
2388
|
+
PUSH_OPND(rval);
|
2389
|
+
END_CASE(JSOP_INT8)
|
2390
|
+
|
2391
|
+
BEGIN_CASE(JSOP_INT32)
|
2392
|
+
i = GET_INT32(regs.pc);
|
2393
|
+
rval = INT_TO_JSVAL(i);
|
2394
|
+
PUSH_OPND(rval);
|
2395
|
+
END_CASE(JSOP_INT32)
|
2396
|
+
|
2397
|
+
BEGIN_CASE(JSOP_INDEXBASE)
|
2398
|
+
/*
|
2399
|
+
* Here atoms can exceed script->atomMap.length as we use atoms
|
2400
|
+
* as a segment register for object literals as well.
|
2401
|
+
*/
|
2402
|
+
atoms += GET_INDEXBASE(regs.pc);
|
2403
|
+
END_CASE(JSOP_INDEXBASE)
|
2404
|
+
|
2405
|
+
BEGIN_CASE(JSOP_INDEXBASE1)
|
2406
|
+
BEGIN_CASE(JSOP_INDEXBASE2)
|
2407
|
+
BEGIN_CASE(JSOP_INDEXBASE3)
|
2408
|
+
atoms += (op - JSOP_INDEXBASE1 + 1) << 16;
|
2409
|
+
END_CASE(JSOP_INDEXBASE3)
|
2410
|
+
|
2411
|
+
BEGIN_CASE(JSOP_RESETBASE0)
|
2412
|
+
BEGIN_CASE(JSOP_RESETBASE)
|
2413
|
+
atoms = script->atomMap.vector;
|
2414
|
+
END_CASE(JSOP_RESETBASE)
|
2415
|
+
|
2416
|
+
BEGIN_CASE(JSOP_DOUBLE)
|
2417
|
+
JS_ASSERT(!fp->imacpc);
|
2418
|
+
JS_ASSERT(size_t(atoms - script->atomMap.vector) < script->atomMap.length);
|
2419
|
+
/* FALL THROUGH */
|
2420
|
+
|
2421
|
+
BEGIN_CASE(JSOP_STRING)
|
2422
|
+
LOAD_ATOM(0);
|
2423
|
+
PUSH_OPND(ATOM_KEY(atom));
|
2424
|
+
END_CASE(JSOP_DOUBLE)
|
2425
|
+
|
2426
|
+
BEGIN_CASE(JSOP_OBJECT)
|
2427
|
+
LOAD_OBJECT(0);
|
2428
|
+
PUSH_OPND(OBJECT_TO_JSVAL(obj));
|
2429
|
+
END_CASE(JSOP_OBJECT)
|
2430
|
+
|
2431
|
+
BEGIN_CASE(JSOP_REGEXP)
|
2432
|
+
{
|
2433
|
+
JSObject *funobj;
|
2434
|
+
|
2435
|
+
/*
|
2436
|
+
* Push a regexp object for the atom mapped by the bytecode at pc,
|
2437
|
+
* cloning the literal's regexp object if necessary, to simulate in
|
2438
|
+
* the pre-compile/execute-later case what ECMA specifies for the
|
2439
|
+
* compile-and-go case: that scanning each regexp literal creates
|
2440
|
+
* a single corresponding RegExp object.
|
2441
|
+
*
|
2442
|
+
* To support pre-compilation transparently, we must handle the
|
2443
|
+
* case where a regexp object literal is used in a different global
|
2444
|
+
* at execution time from the global with which it was scanned at
|
2445
|
+
* compile time. We do this by re-wrapping the JSRegExp private
|
2446
|
+
* data struct with a cloned object having the right prototype and
|
2447
|
+
* parent, and having its own lastIndex property value storage.
|
2448
|
+
*
|
2449
|
+
* Unlike JSOP_DEFFUN and other prolog bytecodes that may clone
|
2450
|
+
* literal objects, we don't want to pay a script prolog execution
|
2451
|
+
* price for all regexp literals in a script (many may not be used
|
2452
|
+
* by a particular execution of that script, depending on control
|
2453
|
+
* flow), so we initialize lazily here.
|
2454
|
+
*
|
2455
|
+
* XXX This code is specific to regular expression objects. If we
|
2456
|
+
* need a similar op for other kinds of object literals, we should
|
2457
|
+
* push cloning down under JSObjectOps and reuse code here.
|
2458
|
+
*/
|
2459
|
+
index = GET_FULL_INDEX(0);
|
2460
|
+
JS_ASSERT(index < script->regexps()->length);
|
2461
|
+
|
2462
|
+
slot = index;
|
2463
|
+
if (fp->fun) {
|
2464
|
+
/*
|
2465
|
+
* We're in function code, not global or eval code (in eval
|
2466
|
+
* code, JSOP_REGEXP is never emitted). The cloned funobj
|
2467
|
+
* contains script->regexps()->length reserved slots
|
2468
|
+
* for the cloned regexps; see fun_reserveSlots, jsfun.c.
|
2469
|
+
*/
|
2470
|
+
funobj = JSVAL_TO_OBJECT(fp->argv[-2]);
|
2471
|
+
slot += JSCLASS_RESERVED_SLOTS(&js_FunctionClass);
|
2472
|
+
if (script->upvarsOffset != 0)
|
2473
|
+
slot += script->upvars()->length;
|
2474
|
+
if (!JS_GetReservedSlot(cx, funobj, slot, &rval))
|
2475
|
+
goto error;
|
2476
|
+
if (JSVAL_IS_VOID(rval))
|
2477
|
+
rval = JSVAL_NULL;
|
2478
|
+
} else {
|
2479
|
+
/*
|
2480
|
+
* We're in global code. The code generator reserved a slot
|
2481
|
+
* for the regexp among script->nfixed slots. All such slots
|
2482
|
+
* are initialized to null, not void, for faster testing in
|
2483
|
+
* JSOP_*GVAR cases. To simplify index calculations we count
|
2484
|
+
* regexps in the reverse order down from script->nslots - 1.
|
2485
|
+
*/
|
2486
|
+
JS_ASSERT(slot < script->nfixed);
|
2487
|
+
slot = script->nfixed - slot - 1;
|
2488
|
+
rval = fp->slots[slot];
|
2489
|
+
#ifdef __GNUC__
|
2490
|
+
funobj = NULL; /* suppress bogus gcc warnings */
|
2491
|
+
#endif
|
2492
|
+
}
|
2493
|
+
|
2494
|
+
if (JSVAL_IS_NULL(rval)) {
|
2495
|
+
/* Compute the current global object in obj2. */
|
2496
|
+
obj2 = fp->scopeChain;
|
2497
|
+
while ((parent = OBJ_GET_PARENT(cx, obj2)) != NULL)
|
2498
|
+
obj2 = parent;
|
2499
|
+
|
2500
|
+
/*
|
2501
|
+
* If obj's parent is not obj2, we must clone obj so that it
|
2502
|
+
* has the right parent, and therefore, the right prototype.
|
2503
|
+
*
|
2504
|
+
* Yes, this means we assume that the correct RegExp.prototype
|
2505
|
+
* to which regexp instances (including literals) delegate can
|
2506
|
+
* be distinguished solely by the instance's parent, which was
|
2507
|
+
* set to the parent of the RegExp constructor function object
|
2508
|
+
* when the instance was created. In other words,
|
2509
|
+
*
|
2510
|
+
* (/x/.__parent__ == RegExp.__parent__) implies
|
2511
|
+
* (/x/.__proto__ == RegExp.prototype)
|
2512
|
+
*
|
2513
|
+
* (unless you assign a different object to RegExp.prototype
|
2514
|
+
* at runtime, in which case, ECMA doesn't specify operation,
|
2515
|
+
* and you get what you deserve).
|
2516
|
+
*
|
2517
|
+
* This same coupling between instance parent and constructor
|
2518
|
+
* parent turns up everywhere (see jsobj.c's FindClassObject,
|
2519
|
+
* js_ConstructObject, and js_NewObject). It's fundamental to
|
2520
|
+
* the design of the language when you consider multiple global
|
2521
|
+
* objects and separate compilation and execution, even though
|
2522
|
+
* it is not specified fully in ECMA.
|
2523
|
+
*/
|
2524
|
+
obj = script->getRegExp(index);
|
2525
|
+
if (OBJ_GET_PARENT(cx, obj) != obj2) {
|
2526
|
+
obj = js_CloneRegExpObject(cx, obj, obj2);
|
2527
|
+
if (!obj)
|
2528
|
+
goto error;
|
2529
|
+
}
|
2530
|
+
rval = OBJECT_TO_JSVAL(obj);
|
2531
|
+
|
2532
|
+
/* Store the regexp object value in its cloneIndex slot. */
|
2533
|
+
if (fp->fun) {
|
2534
|
+
if (!JS_SetReservedSlot(cx, funobj, slot, rval))
|
2535
|
+
goto error;
|
2536
|
+
} else {
|
2537
|
+
fp->slots[slot] = rval;
|
2538
|
+
}
|
2539
|
+
}
|
2540
|
+
|
2541
|
+
PUSH_OPND(rval);
|
2542
|
+
}
|
2543
|
+
END_CASE(JSOP_REGEXP)
|
2544
|
+
|
2545
|
+
BEGIN_CASE(JSOP_ZERO)
|
2546
|
+
PUSH_OPND(JSVAL_ZERO);
|
2547
|
+
END_CASE(JSOP_ZERO)
|
2548
|
+
|
2549
|
+
BEGIN_CASE(JSOP_ONE)
|
2550
|
+
PUSH_OPND(JSVAL_ONE);
|
2551
|
+
END_CASE(JSOP_ONE)
|
2552
|
+
|
2553
|
+
BEGIN_CASE(JSOP_NULL)
|
2554
|
+
PUSH_OPND(JSVAL_NULL);
|
2555
|
+
END_CASE(JSOP_NULL)
|
2556
|
+
|
2557
|
+
BEGIN_CASE(JSOP_FALSE)
|
2558
|
+
PUSH_OPND(JSVAL_FALSE);
|
2559
|
+
END_CASE(JSOP_FALSE)
|
2560
|
+
|
2561
|
+
BEGIN_CASE(JSOP_TRUE)
|
2562
|
+
PUSH_OPND(JSVAL_TRUE);
|
2563
|
+
END_CASE(JSOP_TRUE)
|
2564
|
+
|
2565
|
+
BEGIN_CASE(JSOP_TABLESWITCH)
|
2566
|
+
pc2 = regs.pc;
|
2567
|
+
len = GET_JUMP_OFFSET(pc2);
|
2568
|
+
|
2569
|
+
/*
|
2570
|
+
* ECMAv2+ forbids conversion of discriminant, so we will skip to
|
2571
|
+
* the default case if the discriminant isn't already an int jsval.
|
2572
|
+
* (This opcode is emitted only for dense jsint-domain switches.)
|
2573
|
+
*/
|
2574
|
+
rval = POP_OPND();
|
2575
|
+
if (JSVAL_IS_INT(rval)) {
|
2576
|
+
i = JSVAL_TO_INT(rval);
|
2577
|
+
} else if (JSVAL_IS_DOUBLE(rval) && *JSVAL_TO_DOUBLE(rval) == 0) {
|
2578
|
+
/* Treat -0 (double) as 0. */
|
2579
|
+
i = 0;
|
2580
|
+
} else {
|
2581
|
+
DO_NEXT_OP(len);
|
2582
|
+
}
|
2583
|
+
|
2584
|
+
pc2 += JUMP_OFFSET_LEN;
|
2585
|
+
low = GET_JUMP_OFFSET(pc2);
|
2586
|
+
pc2 += JUMP_OFFSET_LEN;
|
2587
|
+
high = GET_JUMP_OFFSET(pc2);
|
2588
|
+
|
2589
|
+
i -= low;
|
2590
|
+
if ((jsuint)i < (jsuint)(high - low + 1)) {
|
2591
|
+
pc2 += JUMP_OFFSET_LEN + JUMP_OFFSET_LEN * i;
|
2592
|
+
off = (jsint) GET_JUMP_OFFSET(pc2);
|
2593
|
+
if (off)
|
2594
|
+
len = off;
|
2595
|
+
}
|
2596
|
+
END_VARLEN_CASE
|
2597
|
+
|
2598
|
+
BEGIN_CASE(JSOP_TABLESWITCHX)
|
2599
|
+
pc2 = regs.pc;
|
2600
|
+
len = GET_JUMPX_OFFSET(pc2);
|
2601
|
+
|
2602
|
+
/*
|
2603
|
+
* ECMAv2+ forbids conversion of discriminant, so we will skip to
|
2604
|
+
* the default case if the discriminant isn't already an int jsval.
|
2605
|
+
* (This opcode is emitted only for dense jsint-domain switches.)
|
2606
|
+
*/
|
2607
|
+
rval = POP_OPND();
|
2608
|
+
if (JSVAL_IS_INT(rval)) {
|
2609
|
+
i = JSVAL_TO_INT(rval);
|
2610
|
+
} else if (JSVAL_IS_DOUBLE(rval) && *JSVAL_TO_DOUBLE(rval) == 0) {
|
2611
|
+
/* Treat -0 (double) as 0. */
|
2612
|
+
i = 0;
|
2613
|
+
} else {
|
2614
|
+
DO_NEXT_OP(len);
|
2615
|
+
}
|
2616
|
+
|
2617
|
+
pc2 += JUMPX_OFFSET_LEN;
|
2618
|
+
low = GET_JUMP_OFFSET(pc2);
|
2619
|
+
pc2 += JUMP_OFFSET_LEN;
|
2620
|
+
high = GET_JUMP_OFFSET(pc2);
|
2621
|
+
|
2622
|
+
i -= low;
|
2623
|
+
if ((jsuint)i < (jsuint)(high - low + 1)) {
|
2624
|
+
pc2 += JUMP_OFFSET_LEN + JUMPX_OFFSET_LEN * i;
|
2625
|
+
off = (jsint) GET_JUMPX_OFFSET(pc2);
|
2626
|
+
if (off)
|
2627
|
+
len = off;
|
2628
|
+
}
|
2629
|
+
END_VARLEN_CASE
|
2630
|
+
|
2631
|
+
BEGIN_CASE(JSOP_LOOKUPSWITCHX)
|
2632
|
+
off = JUMPX_OFFSET_LEN;
|
2633
|
+
goto do_lookup_switch;
|
2634
|
+
|
2635
|
+
BEGIN_CASE(JSOP_LOOKUPSWITCH)
|
2636
|
+
off = JUMP_OFFSET_LEN;
|
2637
|
+
|
2638
|
+
do_lookup_switch:
|
2639
|
+
/*
|
2640
|
+
* JSOP_LOOKUPSWITCH and JSOP_LOOKUPSWITCHX are never used if
|
2641
|
+
* any atom index in it would exceed 64K limit.
|
2642
|
+
*/
|
2643
|
+
JS_ASSERT(!fp->imacpc);
|
2644
|
+
JS_ASSERT(atoms == script->atomMap.vector);
|
2645
|
+
pc2 = regs.pc;
|
2646
|
+
lval = POP_OPND();
|
2647
|
+
|
2648
|
+
if (!JSVAL_IS_NUMBER(lval) &&
|
2649
|
+
!JSVAL_IS_STRING(lval) &&
|
2650
|
+
!JSVAL_IS_BOOLEAN(lval)) {
|
2651
|
+
goto end_lookup_switch;
|
2652
|
+
}
|
2653
|
+
|
2654
|
+
pc2 += off;
|
2655
|
+
npairs = (jsint) GET_UINT16(pc2);
|
2656
|
+
pc2 += UINT16_LEN;
|
2657
|
+
JS_ASSERT(npairs); /* empty switch uses JSOP_TABLESWITCH */
|
2658
|
+
|
2659
|
+
#define SEARCH_PAIRS(MATCH_CODE) \
|
2660
|
+
for (;;) { \
|
2661
|
+
JS_ASSERT(GET_INDEX(pc2) < script->atomMap.length); \
|
2662
|
+
atom = atoms[GET_INDEX(pc2)]; \
|
2663
|
+
rval = ATOM_KEY(atom); \
|
2664
|
+
MATCH_CODE \
|
2665
|
+
pc2 += INDEX_LEN; \
|
2666
|
+
if (match) \
|
2667
|
+
break; \
|
2668
|
+
pc2 += off; \
|
2669
|
+
if (--npairs == 0) { \
|
2670
|
+
pc2 = regs.pc; \
|
2671
|
+
break; \
|
2672
|
+
} \
|
2673
|
+
}
|
2674
|
+
if (JSVAL_IS_STRING(lval)) {
|
2675
|
+
str = JSVAL_TO_STRING(lval);
|
2676
|
+
SEARCH_PAIRS(
|
2677
|
+
match = (JSVAL_IS_STRING(rval) &&
|
2678
|
+
((str2 = JSVAL_TO_STRING(rval)) == str ||
|
2679
|
+
js_EqualStrings(str2, str)));
|
2680
|
+
)
|
2681
|
+
} else if (JSVAL_IS_DOUBLE(lval)) {
|
2682
|
+
d = *JSVAL_TO_DOUBLE(lval);
|
2683
|
+
SEARCH_PAIRS(
|
2684
|
+
match = (JSVAL_IS_DOUBLE(rval) &&
|
2685
|
+
*JSVAL_TO_DOUBLE(rval) == d);
|
2686
|
+
)
|
2687
|
+
} else {
|
2688
|
+
SEARCH_PAIRS(
|
2689
|
+
match = (lval == rval);
|
2690
|
+
)
|
2691
|
+
}
|
2692
|
+
#undef SEARCH_PAIRS
|
2693
|
+
|
2694
|
+
end_lookup_switch:
|
2695
|
+
len = (op == JSOP_LOOKUPSWITCH)
|
2696
|
+
? GET_JUMP_OFFSET(pc2)
|
2697
|
+
: GET_JUMPX_OFFSET(pc2);
|
2698
|
+
END_VARLEN_CASE
|
2699
|
+
|
2700
|
+
BEGIN_CASE(JSOP_TRAP)
|
2701
|
+
{
|
2702
|
+
JSTrapStatus status;
|
2703
|
+
|
2704
|
+
status = JS_HandleTrap(cx, script, regs.pc, &rval);
|
2705
|
+
switch (status) {
|
2706
|
+
case JSTRAP_ERROR:
|
2707
|
+
goto error;
|
2708
|
+
case JSTRAP_RETURN:
|
2709
|
+
fp->rval = rval;
|
2710
|
+
ok = JS_TRUE;
|
2711
|
+
goto forced_return;
|
2712
|
+
case JSTRAP_THROW:
|
2713
|
+
cx->throwing = JS_TRUE;
|
2714
|
+
cx->exception = rval;
|
2715
|
+
goto error;
|
2716
|
+
default:;
|
2717
|
+
break;
|
2718
|
+
}
|
2719
|
+
JS_ASSERT(status == JSTRAP_CONTINUE);
|
2720
|
+
CHECK_INTERRUPT_HANDLER();
|
2721
|
+
JS_ASSERT(JSVAL_IS_INT(rval));
|
2722
|
+
op = (JSOp) JSVAL_TO_INT(rval);
|
2723
|
+
JS_ASSERT((uintN)op < (uintN)JSOP_LIMIT);
|
2724
|
+
DO_OP();
|
2725
|
+
}
|
2726
|
+
|
2727
|
+
BEGIN_CASE(JSOP_ARGUMENTS)
|
2728
|
+
if (!js_GetArgsValue(cx, fp, &rval))
|
2729
|
+
goto error;
|
2730
|
+
PUSH_OPND(rval);
|
2731
|
+
END_CASE(JSOP_ARGUMENTS)
|
2732
|
+
|
2733
|
+
BEGIN_CASE(JSOP_ARGSUB)
|
2734
|
+
id = INT_TO_JSID(GET_ARGNO(regs.pc));
|
2735
|
+
if (!js_GetArgsProperty(cx, fp, id, &rval))
|
2736
|
+
goto error;
|
2737
|
+
PUSH_OPND(rval);
|
2738
|
+
END_CASE(JSOP_ARGSUB)
|
2739
|
+
|
2740
|
+
BEGIN_CASE(JSOP_ARGCNT)
|
2741
|
+
id = ATOM_TO_JSID(rt->atomState.lengthAtom);
|
2742
|
+
if (!js_GetArgsProperty(cx, fp, id, &rval))
|
2743
|
+
goto error;
|
2744
|
+
PUSH_OPND(rval);
|
2745
|
+
END_CASE(JSOP_ARGCNT)
|
2746
|
+
|
2747
|
+
BEGIN_CASE(JSOP_GETARG)
|
2748
|
+
BEGIN_CASE(JSOP_CALLARG)
|
2749
|
+
slot = GET_ARGNO(regs.pc);
|
2750
|
+
JS_ASSERT(slot < fp->fun->nargs);
|
2751
|
+
METER_SLOT_OP(op, slot);
|
2752
|
+
PUSH_OPND(fp->argv[slot]);
|
2753
|
+
if (op == JSOP_CALLARG)
|
2754
|
+
PUSH_OPND(JSVAL_NULL);
|
2755
|
+
END_CASE(JSOP_GETARG)
|
2756
|
+
|
2757
|
+
BEGIN_CASE(JSOP_SETARG)
|
2758
|
+
slot = GET_ARGNO(regs.pc);
|
2759
|
+
JS_ASSERT(slot < fp->fun->nargs);
|
2760
|
+
METER_SLOT_OP(op, slot);
|
2761
|
+
vp = &fp->argv[slot];
|
2762
|
+
*vp = FETCH_OPND(-1);
|
2763
|
+
END_SET_CASE(JSOP_SETARG)
|
2764
|
+
|
2765
|
+
BEGIN_CASE(JSOP_GETLOCAL)
|
2766
|
+
slot = GET_SLOTNO(regs.pc);
|
2767
|
+
JS_ASSERT(slot < script->nslots);
|
2768
|
+
PUSH_OPND(fp->slots[slot]);
|
2769
|
+
END_CASE(JSOP_GETLOCAL)
|
2770
|
+
|
2771
|
+
BEGIN_CASE(JSOP_CALLLOCAL)
|
2772
|
+
slot = GET_SLOTNO(regs.pc);
|
2773
|
+
JS_ASSERT(slot < script->nslots);
|
2774
|
+
PUSH_OPND(fp->slots[slot]);
|
2775
|
+
PUSH_OPND(JSVAL_NULL);
|
2776
|
+
END_CASE(JSOP_CALLLOCAL)
|
2777
|
+
|
2778
|
+
BEGIN_CASE(JSOP_SETLOCAL)
|
2779
|
+
slot = GET_SLOTNO(regs.pc);
|
2780
|
+
JS_ASSERT(slot < script->nslots);
|
2781
|
+
vp = &fp->slots[slot];
|
2782
|
+
*vp = FETCH_OPND(-1);
|
2783
|
+
END_SET_CASE(JSOP_SETLOCAL)
|
2784
|
+
|
2785
|
+
BEGIN_CASE(JSOP_GETUPVAR)
|
2786
|
+
BEGIN_CASE(JSOP_CALLUPVAR)
|
2787
|
+
{
|
2788
|
+
JSUpvarArray *uva = script->upvars();
|
2789
|
+
|
2790
|
+
index = GET_UINT16(regs.pc);
|
2791
|
+
JS_ASSERT(index < uva->length);
|
2792
|
+
|
2793
|
+
rval = js_GetUpvar(cx, script->staticLevel, uva->vector[index]);
|
2794
|
+
PUSH_OPND(rval);
|
2795
|
+
|
2796
|
+
if (op == JSOP_CALLUPVAR)
|
2797
|
+
PUSH_OPND(JSVAL_NULL);
|
2798
|
+
}
|
2799
|
+
END_CASE(JSOP_GETUPVAR)
|
2800
|
+
|
2801
|
+
BEGIN_CASE(JSOP_GETUPVAR_DBG)
|
2802
|
+
BEGIN_CASE(JSOP_CALLUPVAR_DBG)
|
2803
|
+
fun = fp->fun;
|
2804
|
+
JS_ASSERT(FUN_KIND(fun) == JSFUN_INTERPRETED);
|
2805
|
+
JS_ASSERT(fun->u.i.wrapper);
|
2806
|
+
|
2807
|
+
/* Scope for tempPool mark and local names allocation in it. */
|
2808
|
+
{
|
2809
|
+
void *mark = JS_ARENA_MARK(&cx->tempPool);
|
2810
|
+
jsuword *names = js_GetLocalNameArray(cx, fun, &cx->tempPool);
|
2811
|
+
if (!names)
|
2812
|
+
goto error;
|
2813
|
+
|
2814
|
+
index = fun->countArgsAndVars() + GET_UINT16(regs.pc);
|
2815
|
+
atom = JS_LOCAL_NAME_TO_ATOM(names[index]);
|
2816
|
+
id = ATOM_TO_JSID(atom);
|
2817
|
+
|
2818
|
+
ok = js_FindProperty(cx, id, &obj, &obj2, &prop);
|
2819
|
+
JS_ARENA_RELEASE(&cx->tempPool, mark);
|
2820
|
+
if (!ok)
|
2821
|
+
goto error;
|
2822
|
+
}
|
2823
|
+
|
2824
|
+
if (!prop)
|
2825
|
+
goto atom_not_defined;
|
2826
|
+
|
2827
|
+
/* Minimize footprint with generic code instead of NATIVE_GET. */
|
2828
|
+
obj2->dropProperty(cx, prop);
|
2829
|
+
vp = regs.sp;
|
2830
|
+
PUSH_OPND(JSVAL_NULL);
|
2831
|
+
if (!obj->getProperty(cx, id, vp))
|
2832
|
+
goto error;
|
2833
|
+
|
2834
|
+
if (op == JSOP_CALLUPVAR_DBG)
|
2835
|
+
PUSH_OPND(JSVAL_NULL);
|
2836
|
+
END_CASE(JSOP_GETUPVAR_DBG)
|
2837
|
+
|
2838
|
+
BEGIN_CASE(JSOP_GETDSLOT)
|
2839
|
+
BEGIN_CASE(JSOP_CALLDSLOT)
|
2840
|
+
JS_ASSERT(fp->argv);
|
2841
|
+
obj = JSVAL_TO_OBJECT(fp->argv[-2]);
|
2842
|
+
JS_ASSERT(obj);
|
2843
|
+
JS_ASSERT(obj->dslots);
|
2844
|
+
|
2845
|
+
index = GET_UINT16(regs.pc);
|
2846
|
+
JS_ASSERT(JS_INITIAL_NSLOTS + index < jsatomid(obj->dslots[-1]));
|
2847
|
+
JS_ASSERT_IF(OBJ_SCOPE(obj)->object == obj,
|
2848
|
+
JS_INITIAL_NSLOTS + index < OBJ_SCOPE(obj)->freeslot);
|
2849
|
+
|
2850
|
+
PUSH_OPND(obj->dslots[index]);
|
2851
|
+
if (op == JSOP_CALLDSLOT)
|
2852
|
+
PUSH_OPND(JSVAL_NULL);
|
2853
|
+
END_CASE(JSOP_GETDSLOT)
|
2854
|
+
|
2855
|
+
BEGIN_CASE(JSOP_GETGVAR)
|
2856
|
+
BEGIN_CASE(JSOP_CALLGVAR)
|
2857
|
+
slot = GET_SLOTNO(regs.pc);
|
2858
|
+
JS_ASSERT(slot < GlobalVarCount(fp));
|
2859
|
+
METER_SLOT_OP(op, slot);
|
2860
|
+
lval = fp->slots[slot];
|
2861
|
+
if (JSVAL_IS_NULL(lval)) {
|
2862
|
+
op = (op == JSOP_GETGVAR) ? JSOP_NAME : JSOP_CALLNAME;
|
2863
|
+
DO_OP();
|
2864
|
+
}
|
2865
|
+
obj = fp->varobj;
|
2866
|
+
slot = JSVAL_TO_INT(lval);
|
2867
|
+
rval = OBJ_GET_SLOT(cx, obj, slot);
|
2868
|
+
PUSH_OPND(rval);
|
2869
|
+
if (op == JSOP_CALLGVAR)
|
2870
|
+
PUSH_OPND(OBJECT_TO_JSVAL(obj));
|
2871
|
+
END_CASE(JSOP_GETGVAR)
|
2872
|
+
|
2873
|
+
BEGIN_CASE(JSOP_SETGVAR)
|
2874
|
+
slot = GET_SLOTNO(regs.pc);
|
2875
|
+
JS_ASSERT(slot < GlobalVarCount(fp));
|
2876
|
+
METER_SLOT_OP(op, slot);
|
2877
|
+
rval = FETCH_OPND(-1);
|
2878
|
+
obj = fp->varobj;
|
2879
|
+
lval = fp->slots[slot];
|
2880
|
+
if (JSVAL_IS_NULL(lval)) {
|
2881
|
+
/*
|
2882
|
+
* Inline-clone and deoptimize JSOP_SETNAME code here because
|
2883
|
+
* JSOP_SETGVAR has arity 1: [rval], not arity 2: [obj, rval]
|
2884
|
+
* as JSOP_SETNAME does, where [obj] is due to JSOP_BINDNAME.
|
2885
|
+
*/
|
2886
|
+
#ifdef JS_TRACER
|
2887
|
+
if (TRACE_RECORDER(cx))
|
2888
|
+
js_AbortRecording(cx, "SETGVAR with NULL slot");
|
2889
|
+
#endif
|
2890
|
+
LOAD_ATOM(0);
|
2891
|
+
id = ATOM_TO_JSID(atom);
|
2892
|
+
if (!obj->setProperty(cx, id, &rval))
|
2893
|
+
goto error;
|
2894
|
+
} else {
|
2895
|
+
slot = JSVAL_TO_INT(lval);
|
2896
|
+
JS_LOCK_OBJ(cx, obj);
|
2897
|
+
LOCKED_OBJ_WRITE_SLOT(cx, obj, slot, rval);
|
2898
|
+
JS_UNLOCK_OBJ(cx, obj);
|
2899
|
+
}
|
2900
|
+
END_SET_CASE(JSOP_SETGVAR)
|
2901
|
+
|
2902
|
+
BEGIN_CASE(JSOP_DEFCONST)
|
2903
|
+
BEGIN_CASE(JSOP_DEFVAR)
|
2904
|
+
index = GET_INDEX(regs.pc);
|
2905
|
+
atom = atoms[index];
|
2906
|
+
|
2907
|
+
/*
|
2908
|
+
* index is relative to atoms at this point but for global var
|
2909
|
+
* code below we need the absolute value.
|
2910
|
+
*/
|
2911
|
+
index += atoms - script->atomMap.vector;
|
2912
|
+
obj = fp->varobj;
|
2913
|
+
JS_ASSERT(obj->map->ops->defineProperty == js_DefineProperty);
|
2914
|
+
attrs = JSPROP_ENUMERATE;
|
2915
|
+
if (!(fp->flags & JSFRAME_EVAL))
|
2916
|
+
attrs |= JSPROP_PERMANENT;
|
2917
|
+
if (op == JSOP_DEFCONST)
|
2918
|
+
attrs |= JSPROP_READONLY;
|
2919
|
+
|
2920
|
+
/* Lookup id in order to check for redeclaration problems. */
|
2921
|
+
id = ATOM_TO_JSID(atom);
|
2922
|
+
prop = NULL;
|
2923
|
+
if (!js_CheckRedeclaration(cx, obj, id, attrs, &obj2, &prop))
|
2924
|
+
goto error;
|
2925
|
+
|
2926
|
+
/* Bind a variable only if it's not yet defined. */
|
2927
|
+
if (!prop) {
|
2928
|
+
if (!js_DefineNativeProperty(cx, obj, id, JSVAL_VOID, JS_PropertyStub, JS_PropertyStub,
|
2929
|
+
attrs, 0, 0, &prop)) {
|
2930
|
+
goto error;
|
2931
|
+
}
|
2932
|
+
JS_ASSERT(prop);
|
2933
|
+
obj2 = obj;
|
2934
|
+
}
|
2935
|
+
|
2936
|
+
/*
|
2937
|
+
* Try to optimize a property we either just created, or found
|
2938
|
+
* directly in the global object, that is permanent, has a slot,
|
2939
|
+
* and has stub getter and setter, into a "fast global" accessed
|
2940
|
+
* by the JSOP_*GVAR opcodes.
|
2941
|
+
*/
|
2942
|
+
if (!fp->fun &&
|
2943
|
+
index < GlobalVarCount(fp) &&
|
2944
|
+
obj2 == obj &&
|
2945
|
+
OBJ_IS_NATIVE(obj)) {
|
2946
|
+
sprop = (JSScopeProperty *) prop;
|
2947
|
+
if ((sprop->attrs & JSPROP_PERMANENT) &&
|
2948
|
+
SPROP_HAS_VALID_SLOT(sprop, OBJ_SCOPE(obj)) &&
|
2949
|
+
SPROP_HAS_STUB_GETTER(sprop) &&
|
2950
|
+
SPROP_HAS_STUB_SETTER(sprop)) {
|
2951
|
+
/*
|
2952
|
+
* Fast globals use frame variables to map the global
|
2953
|
+
* name's atom index to the permanent fp->varobj slot
|
2954
|
+
* number, tagged as a jsval. The atom index for the
|
2955
|
+
* global's name literal is identical to its variable
|
2956
|
+
* index.
|
2957
|
+
*/
|
2958
|
+
fp->slots[index] = INT_TO_JSVAL(sprop->slot);
|
2959
|
+
}
|
2960
|
+
}
|
2961
|
+
|
2962
|
+
obj2->dropProperty(cx, prop);
|
2963
|
+
END_CASE(JSOP_DEFVAR)
|
2964
|
+
|
2965
|
+
BEGIN_CASE(JSOP_DEFFUN)
|
2966
|
+
{
|
2967
|
+
JSPropertyOp getter, setter;
|
2968
|
+
bool doSet;
|
2969
|
+
JSObject *pobj;
|
2970
|
+
JSProperty *prop;
|
2971
|
+
uint32 old;
|
2972
|
+
|
2973
|
+
/*
|
2974
|
+
* A top-level function defined in Global or Eval code (see
|
2975
|
+
* ECMA-262 Ed. 3), or else a SpiderMonkey extension: a named
|
2976
|
+
* function statement in a compound statement (not at the top
|
2977
|
+
* statement level of global code, or at the top level of a
|
2978
|
+
* function body).
|
2979
|
+
*/
|
2980
|
+
LOAD_FUNCTION(0);
|
2981
|
+
obj = FUN_OBJECT(fun);
|
2982
|
+
|
2983
|
+
if (FUN_NULL_CLOSURE(fun)) {
|
2984
|
+
/*
|
2985
|
+
* Even a null closure needs a parent for principals finding.
|
2986
|
+
* FIXME: bug 476950, although debugger users may also demand
|
2987
|
+
* some kind of scope link for debugger-assisted eval-in-frame.
|
2988
|
+
*/
|
2989
|
+
obj2 = fp->scopeChain;
|
2990
|
+
} else {
|
2991
|
+
JS_ASSERT(!FUN_FLAT_CLOSURE(fun));
|
2992
|
+
|
2993
|
+
/*
|
2994
|
+
* Inline js_GetScopeChain a bit to optimize for the case of a
|
2995
|
+
* top-level function.
|
2996
|
+
*/
|
2997
|
+
if (!fp->blockChain) {
|
2998
|
+
obj2 = fp->scopeChain;
|
2999
|
+
} else {
|
3000
|
+
obj2 = js_GetScopeChain(cx, fp);
|
3001
|
+
if (!obj2)
|
3002
|
+
goto error;
|
3003
|
+
}
|
3004
|
+
}
|
3005
|
+
|
3006
|
+
/*
|
3007
|
+
* If static link is not current scope, clone fun's object to link
|
3008
|
+
* to the current scope via parent. We do this to enable sharing of
|
3009
|
+
* compiled functions among multiple equivalent scopes, amortizing
|
3010
|
+
* the cost of compilation over a number of executions. Examples
|
3011
|
+
* include XUL scripts and event handlers shared among Firefox or
|
3012
|
+
* other Mozilla app chrome windows, and user-defined JS functions
|
3013
|
+
* precompiled and then shared among requests in server-side JS.
|
3014
|
+
*/
|
3015
|
+
if (OBJ_GET_PARENT(cx, obj) != obj2) {
|
3016
|
+
obj = js_CloneFunctionObject(cx, fun, obj2);
|
3017
|
+
if (!obj)
|
3018
|
+
goto error;
|
3019
|
+
}
|
3020
|
+
|
3021
|
+
/*
|
3022
|
+
* Protect obj from any GC hiding below JSObject::setProperty or
|
3023
|
+
* JSObject::defineProperty. All paths from here must flow through
|
3024
|
+
* the "Restore fp->scopeChain" code below the
|
3025
|
+
* parent->defineProperty call.
|
3026
|
+
*/
|
3027
|
+
MUST_FLOW_THROUGH("restore_scope");
|
3028
|
+
fp->scopeChain = obj;
|
3029
|
+
|
3030
|
+
rval = OBJECT_TO_JSVAL(obj);
|
3031
|
+
|
3032
|
+
/*
|
3033
|
+
* ECMA requires functions defined when entering Eval code to be
|
3034
|
+
* impermanent.
|
3035
|
+
*/
|
3036
|
+
attrs = (fp->flags & JSFRAME_EVAL)
|
3037
|
+
? JSPROP_ENUMERATE
|
3038
|
+
: JSPROP_ENUMERATE | JSPROP_PERMANENT;
|
3039
|
+
|
3040
|
+
/*
|
3041
|
+
* Load function flags that are also property attributes. Getters
|
3042
|
+
* and setters do not need a slot, their value is stored elsewhere
|
3043
|
+
* in the property itself, not in obj slots.
|
3044
|
+
*/
|
3045
|
+
setter = getter = JS_PropertyStub;
|
3046
|
+
flags = JSFUN_GSFLAG2ATTR(fun->flags);
|
3047
|
+
if (flags) {
|
3048
|
+
/* Function cannot be both getter a setter. */
|
3049
|
+
JS_ASSERT(flags == JSPROP_GETTER || flags == JSPROP_SETTER);
|
3050
|
+
attrs |= flags | JSPROP_SHARED;
|
3051
|
+
rval = JSVAL_VOID;
|
3052
|
+
if (flags == JSPROP_GETTER)
|
3053
|
+
getter = js_CastAsPropertyOp(obj);
|
3054
|
+
else
|
3055
|
+
setter = js_CastAsPropertyOp(obj);
|
3056
|
+
}
|
3057
|
+
|
3058
|
+
/*
|
3059
|
+
* We define the function as a property of the variable object and
|
3060
|
+
* not the current scope chain even for the case of function
|
3061
|
+
* expression statements and functions defined by eval inside let
|
3062
|
+
* or with blocks.
|
3063
|
+
*/
|
3064
|
+
parent = fp->varobj;
|
3065
|
+
JS_ASSERT(parent);
|
3066
|
+
|
3067
|
+
/*
|
3068
|
+
* Check for a const property of the same name -- or any kind
|
3069
|
+
* of property if executing with the strict option. We check
|
3070
|
+
* here at runtime as well as at compile-time, to handle eval
|
3071
|
+
* as well as multiple HTML script tags.
|
3072
|
+
*/
|
3073
|
+
id = ATOM_TO_JSID(fun->atom);
|
3074
|
+
prop = NULL;
|
3075
|
+
ok = js_CheckRedeclaration(cx, parent, id, attrs, &pobj, &prop);
|
3076
|
+
if (!ok)
|
3077
|
+
goto restore_scope;
|
3078
|
+
|
3079
|
+
/*
|
3080
|
+
* We deviate from 10.1.2 in ECMA 262 v3 and under eval use for
|
3081
|
+
* function declarations JSObject::setProperty, not
|
3082
|
+
* JSObject::defineProperty, to preserve the JSOP_PERMANENT
|
3083
|
+
* attribute of existing properties and make sure that such
|
3084
|
+
* properties cannot be deleted.
|
3085
|
+
*
|
3086
|
+
* We also use JSObject::setProperty for the existing properties of
|
3087
|
+
* Call objects with matching attributes to preserve the native
|
3088
|
+
* getters and setters that store the value of the property in the
|
3089
|
+
* interpreter frame, see bug 467495.
|
3090
|
+
*/
|
3091
|
+
doSet = (attrs == JSPROP_ENUMERATE);
|
3092
|
+
JS_ASSERT_IF(doSet, fp->flags & JSFRAME_EVAL);
|
3093
|
+
if (prop) {
|
3094
|
+
if (parent == pobj &&
|
3095
|
+
OBJ_GET_CLASS(cx, parent) == &js_CallClass &&
|
3096
|
+
(old = ((JSScopeProperty *) prop)->attrs,
|
3097
|
+
!(old & (JSPROP_GETTER|JSPROP_SETTER)) &&
|
3098
|
+
(old & (JSPROP_ENUMERATE|JSPROP_PERMANENT)) == attrs)) {
|
3099
|
+
/*
|
3100
|
+
* js_CheckRedeclaration must reject attempts to add a
|
3101
|
+
* getter or setter to an existing property without a
|
3102
|
+
* getter or setter.
|
3103
|
+
*/
|
3104
|
+
JS_ASSERT(!(attrs & ~(JSPROP_ENUMERATE|JSPROP_PERMANENT)));
|
3105
|
+
JS_ASSERT(!(old & JSPROP_READONLY));
|
3106
|
+
doSet = JS_TRUE;
|
3107
|
+
}
|
3108
|
+
pobj->dropProperty(cx, prop);
|
3109
|
+
}
|
3110
|
+
ok = doSet
|
3111
|
+
? parent->setProperty(cx, id, &rval)
|
3112
|
+
: parent->defineProperty(cx, id, rval, getter, setter, attrs);
|
3113
|
+
|
3114
|
+
restore_scope:
|
3115
|
+
/* Restore fp->scopeChain now that obj is defined in fp->varobj. */
|
3116
|
+
fp->scopeChain = obj2;
|
3117
|
+
if (!ok)
|
3118
|
+
goto error;
|
3119
|
+
}
|
3120
|
+
END_CASE(JSOP_DEFFUN)
|
3121
|
+
|
3122
|
+
BEGIN_CASE(JSOP_DEFFUN_FC)
|
3123
|
+
BEGIN_CASE(JSOP_DEFFUN_DBGFC)
|
3124
|
+
LOAD_FUNCTION(0);
|
3125
|
+
|
3126
|
+
obj = (op == JSOP_DEFFUN_FC)
|
3127
|
+
? js_NewFlatClosure(cx, fun)
|
3128
|
+
: js_NewDebuggableFlatClosure(cx, fun);
|
3129
|
+
if (!obj)
|
3130
|
+
goto error;
|
3131
|
+
rval = OBJECT_TO_JSVAL(obj);
|
3132
|
+
|
3133
|
+
attrs = (fp->flags & JSFRAME_EVAL)
|
3134
|
+
? JSPROP_ENUMERATE
|
3135
|
+
: JSPROP_ENUMERATE | JSPROP_PERMANENT;
|
3136
|
+
|
3137
|
+
flags = JSFUN_GSFLAG2ATTR(fun->flags);
|
3138
|
+
if (flags) {
|
3139
|
+
attrs |= flags | JSPROP_SHARED;
|
3140
|
+
rval = JSVAL_VOID;
|
3141
|
+
}
|
3142
|
+
|
3143
|
+
parent = fp->varobj;
|
3144
|
+
JS_ASSERT(parent);
|
3145
|
+
|
3146
|
+
id = ATOM_TO_JSID(fun->atom);
|
3147
|
+
ok = js_CheckRedeclaration(cx, parent, id, attrs, NULL, NULL);
|
3148
|
+
if (ok) {
|
3149
|
+
if (attrs == JSPROP_ENUMERATE) {
|
3150
|
+
JS_ASSERT(fp->flags & JSFRAME_EVAL);
|
3151
|
+
ok = parent->setProperty(cx, id, &rval);
|
3152
|
+
} else {
|
3153
|
+
JS_ASSERT(attrs & JSPROP_PERMANENT);
|
3154
|
+
|
3155
|
+
ok = parent->defineProperty(cx, id, rval,
|
3156
|
+
(flags & JSPROP_GETTER)
|
3157
|
+
? JS_EXTENSION (JSPropertyOp) obj
|
3158
|
+
: JS_PropertyStub,
|
3159
|
+
(flags & JSPROP_SETTER)
|
3160
|
+
? JS_EXTENSION (JSPropertyOp) obj
|
3161
|
+
: JS_PropertyStub,
|
3162
|
+
attrs);
|
3163
|
+
}
|
3164
|
+
}
|
3165
|
+
|
3166
|
+
if (!ok)
|
3167
|
+
goto error;
|
3168
|
+
END_CASE(JSOP_DEFFUN_FC)
|
3169
|
+
|
3170
|
+
BEGIN_CASE(JSOP_DEFLOCALFUN)
|
3171
|
+
/*
|
3172
|
+
* Define a local function (i.e., one nested at the top level of
|
3173
|
+
* another function), parented by the current scope chain, stored
|
3174
|
+
* in a local variable slot that the compiler allocated. This is
|
3175
|
+
* an optimization over JSOP_DEFFUN that avoids requiring a call
|
3176
|
+
* object for the outer function's activation.
|
3177
|
+
*/
|
3178
|
+
LOAD_FUNCTION(SLOTNO_LEN);
|
3179
|
+
JS_ASSERT(FUN_INTERPRETED(fun));
|
3180
|
+
JS_ASSERT(!FUN_FLAT_CLOSURE(fun));
|
3181
|
+
obj = FUN_OBJECT(fun);
|
3182
|
+
|
3183
|
+
if (FUN_NULL_CLOSURE(fun)) {
|
3184
|
+
obj = js_CloneFunctionObject(cx, fun, fp->scopeChain);
|
3185
|
+
if (!obj)
|
3186
|
+
goto error;
|
3187
|
+
} else {
|
3188
|
+
parent = js_GetScopeChain(cx, fp);
|
3189
|
+
if (!parent)
|
3190
|
+
goto error;
|
3191
|
+
|
3192
|
+
if (OBJ_GET_PARENT(cx, obj) != parent) {
|
3193
|
+
#ifdef JS_TRACER
|
3194
|
+
if (TRACE_RECORDER(cx))
|
3195
|
+
js_AbortRecording(cx, "DEFLOCALFUN for closure");
|
3196
|
+
#endif
|
3197
|
+
obj = js_CloneFunctionObject(cx, fun, parent);
|
3198
|
+
if (!obj)
|
3199
|
+
goto error;
|
3200
|
+
}
|
3201
|
+
}
|
3202
|
+
|
3203
|
+
slot = GET_SLOTNO(regs.pc);
|
3204
|
+
TRACE_2(DefLocalFunSetSlot, slot, obj);
|
3205
|
+
|
3206
|
+
fp->slots[slot] = OBJECT_TO_JSVAL(obj);
|
3207
|
+
END_CASE(JSOP_DEFLOCALFUN)
|
3208
|
+
|
3209
|
+
BEGIN_CASE(JSOP_DEFLOCALFUN_FC)
|
3210
|
+
LOAD_FUNCTION(SLOTNO_LEN);
|
3211
|
+
|
3212
|
+
obj = js_NewFlatClosure(cx, fun);
|
3213
|
+
if (!obj)
|
3214
|
+
goto error;
|
3215
|
+
|
3216
|
+
slot = GET_SLOTNO(regs.pc);
|
3217
|
+
TRACE_2(DefLocalFunSetSlot, slot, obj);
|
3218
|
+
|
3219
|
+
fp->slots[slot] = OBJECT_TO_JSVAL(obj);
|
3220
|
+
END_CASE(JSOP_DEFLOCALFUN_FC)
|
3221
|
+
|
3222
|
+
BEGIN_CASE(JSOP_DEFLOCALFUN_DBGFC)
|
3223
|
+
LOAD_FUNCTION(SLOTNO_LEN);
|
3224
|
+
|
3225
|
+
obj = js_NewDebuggableFlatClosure(cx, fun);
|
3226
|
+
if (!obj)
|
3227
|
+
goto error;
|
3228
|
+
|
3229
|
+
slot = GET_SLOTNO(regs.pc);
|
3230
|
+
fp->slots[slot] = OBJECT_TO_JSVAL(obj);
|
3231
|
+
END_CASE(JSOP_DEFLOCALFUN_DBGFC)
|
3232
|
+
|
3233
|
+
BEGIN_CASE(JSOP_LAMBDA)
|
3234
|
+
/* Load the specified function object literal. */
|
3235
|
+
LOAD_FUNCTION(0);
|
3236
|
+
obj = FUN_OBJECT(fun);
|
3237
|
+
|
3238
|
+
if (FUN_NULL_CLOSURE(fun)) {
|
3239
|
+
obj = js_CloneFunctionObject(cx, fun, fp->scopeChain);
|
3240
|
+
if (!obj)
|
3241
|
+
goto error;
|
3242
|
+
} else {
|
3243
|
+
parent = js_GetScopeChain(cx, fp);
|
3244
|
+
if (!parent)
|
3245
|
+
goto error;
|
3246
|
+
|
3247
|
+
/*
|
3248
|
+
* FIXME: bug 471214, Cloning here even when the compiler saw
|
3249
|
+
* the right parent is wasteful but we don't fully support
|
3250
|
+
* joined function objects, yet.
|
3251
|
+
*/
|
3252
|
+
obj = js_CloneFunctionObject(cx, fun, parent);
|
3253
|
+
if (!obj)
|
3254
|
+
goto error;
|
3255
|
+
}
|
3256
|
+
|
3257
|
+
PUSH_OPND(OBJECT_TO_JSVAL(obj));
|
3258
|
+
END_CASE(JSOP_LAMBDA)
|
3259
|
+
|
3260
|
+
BEGIN_CASE(JSOP_LAMBDA_FC)
|
3261
|
+
LOAD_FUNCTION(0);
|
3262
|
+
|
3263
|
+
obj = js_NewFlatClosure(cx, fun);
|
3264
|
+
if (!obj)
|
3265
|
+
goto error;
|
3266
|
+
|
3267
|
+
PUSH_OPND(OBJECT_TO_JSVAL(obj));
|
3268
|
+
END_CASE(JSOP_LAMBDA_FC)
|
3269
|
+
|
3270
|
+
BEGIN_CASE(JSOP_LAMBDA_DBGFC)
|
3271
|
+
LOAD_FUNCTION(0);
|
3272
|
+
|
3273
|
+
obj = js_NewDebuggableFlatClosure(cx, fun);
|
3274
|
+
if (!obj)
|
3275
|
+
goto error;
|
3276
|
+
|
3277
|
+
PUSH_OPND(OBJECT_TO_JSVAL(obj));
|
3278
|
+
END_CASE(JSOP_LAMBDA_DBGFC)
|
3279
|
+
|
3280
|
+
BEGIN_CASE(JSOP_CALLEE)
|
3281
|
+
PUSH_OPND(fp->argv[-2]);
|
3282
|
+
END_CASE(JSOP_CALLEE)
|
3283
|
+
|
3284
|
+
#if JS_HAS_GETTER_SETTER
|
3285
|
+
BEGIN_CASE(JSOP_GETTER)
|
3286
|
+
BEGIN_CASE(JSOP_SETTER)
|
3287
|
+
do_getter_setter:
|
3288
|
+
op2 = (JSOp) *++regs.pc;
|
3289
|
+
switch (op2) {
|
3290
|
+
case JSOP_INDEXBASE:
|
3291
|
+
atoms += GET_INDEXBASE(regs.pc);
|
3292
|
+
regs.pc += JSOP_INDEXBASE_LENGTH - 1;
|
3293
|
+
goto do_getter_setter;
|
3294
|
+
case JSOP_INDEXBASE1:
|
3295
|
+
case JSOP_INDEXBASE2:
|
3296
|
+
case JSOP_INDEXBASE3:
|
3297
|
+
atoms += (op2 - JSOP_INDEXBASE1 + 1) << 16;
|
3298
|
+
goto do_getter_setter;
|
3299
|
+
|
3300
|
+
case JSOP_SETNAME:
|
3301
|
+
case JSOP_SETPROP:
|
3302
|
+
LOAD_ATOM(0);
|
3303
|
+
id = ATOM_TO_JSID(atom);
|
3304
|
+
rval = FETCH_OPND(-1);
|
3305
|
+
i = -1;
|
3306
|
+
goto gs_pop_lval;
|
3307
|
+
|
3308
|
+
case JSOP_SETELEM:
|
3309
|
+
rval = FETCH_OPND(-1);
|
3310
|
+
id = 0;
|
3311
|
+
i = -2;
|
3312
|
+
gs_pop_lval:
|
3313
|
+
FETCH_OBJECT(cx, i - 1, lval, obj);
|
3314
|
+
break;
|
3315
|
+
|
3316
|
+
case JSOP_INITPROP:
|
3317
|
+
JS_ASSERT(regs.sp - StackBase(fp) >= 2);
|
3318
|
+
rval = FETCH_OPND(-1);
|
3319
|
+
i = -1;
|
3320
|
+
LOAD_ATOM(0);
|
3321
|
+
id = ATOM_TO_JSID(atom);
|
3322
|
+
goto gs_get_lval;
|
3323
|
+
|
3324
|
+
default:
|
3325
|
+
JS_ASSERT(op2 == JSOP_INITELEM);
|
3326
|
+
|
3327
|
+
JS_ASSERT(regs.sp - StackBase(fp) >= 3);
|
3328
|
+
rval = FETCH_OPND(-1);
|
3329
|
+
id = 0;
|
3330
|
+
i = -2;
|
3331
|
+
gs_get_lval:
|
3332
|
+
lval = FETCH_OPND(i-1);
|
3333
|
+
JS_ASSERT(JSVAL_IS_OBJECT(lval));
|
3334
|
+
obj = JSVAL_TO_OBJECT(lval);
|
3335
|
+
break;
|
3336
|
+
}
|
3337
|
+
|
3338
|
+
/* Ensure that id has a type suitable for use with obj. */
|
3339
|
+
if (id == 0)
|
3340
|
+
FETCH_ELEMENT_ID(obj, i, id);
|
3341
|
+
|
3342
|
+
if (JS_TypeOfValue(cx, rval) != JSTYPE_FUNCTION) {
|
3343
|
+
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL,
|
3344
|
+
JSMSG_BAD_GETTER_OR_SETTER,
|
3345
|
+
(op == JSOP_GETTER)
|
3346
|
+
? js_getter_str
|
3347
|
+
: js_setter_str);
|
3348
|
+
goto error;
|
3349
|
+
}
|
3350
|
+
|
3351
|
+
/*
|
3352
|
+
* Getters and setters are just like watchpoints from an access
|
3353
|
+
* control point of view.
|
3354
|
+
*/
|
3355
|
+
if (!obj->checkAccess(cx, id, JSACC_WATCH, &rtmp, &attrs))
|
3356
|
+
goto error;
|
3357
|
+
|
3358
|
+
if (op == JSOP_GETTER) {
|
3359
|
+
getter = JS_EXTENSION (JSPropertyOp) JSVAL_TO_OBJECT(rval);
|
3360
|
+
setter = JS_PropertyStub;
|
3361
|
+
attrs = JSPROP_GETTER;
|
3362
|
+
} else {
|
3363
|
+
getter = JS_PropertyStub;
|
3364
|
+
setter = JS_EXTENSION (JSPropertyOp) JSVAL_TO_OBJECT(rval);
|
3365
|
+
attrs = JSPROP_SETTER;
|
3366
|
+
}
|
3367
|
+
attrs |= JSPROP_ENUMERATE | JSPROP_SHARED;
|
3368
|
+
|
3369
|
+
/* Check for a readonly or permanent property of the same name. */
|
3370
|
+
if (!js_CheckRedeclaration(cx, obj, id, attrs, NULL, NULL))
|
3371
|
+
goto error;
|
3372
|
+
|
3373
|
+
if (!obj->defineProperty(cx, id, JSVAL_VOID, getter, setter, attrs))
|
3374
|
+
goto error;
|
3375
|
+
|
3376
|
+
regs.sp += i;
|
3377
|
+
if (js_CodeSpec[op2].ndefs)
|
3378
|
+
STORE_OPND(-1, rval);
|
3379
|
+
len = js_CodeSpec[op2].length;
|
3380
|
+
DO_NEXT_OP(len);
|
3381
|
+
#endif /* JS_HAS_GETTER_SETTER */
|
3382
|
+
|
3383
|
+
BEGIN_CASE(JSOP_HOLE)
|
3384
|
+
PUSH_OPND(JSVAL_HOLE);
|
3385
|
+
END_CASE(JSOP_HOLE)
|
3386
|
+
|
3387
|
+
BEGIN_CASE(JSOP_NEWARRAY)
|
3388
|
+
len = GET_UINT16(regs.pc);
|
3389
|
+
cx->fp->assertValidStackDepth(len);
|
3390
|
+
obj = js_NewArrayObject(cx, len, regs.sp - len, JS_TRUE);
|
3391
|
+
if (!obj)
|
3392
|
+
goto error;
|
3393
|
+
regs.sp -= len - 1;
|
3394
|
+
STORE_OPND(-1, OBJECT_TO_JSVAL(obj));
|
3395
|
+
END_CASE(JSOP_NEWARRAY)
|
3396
|
+
|
3397
|
+
BEGIN_CASE(JSOP_NEWINIT)
|
3398
|
+
i = GET_INT8(regs.pc);
|
3399
|
+
JS_ASSERT(i == JSProto_Array || i == JSProto_Object);
|
3400
|
+
obj = (i == JSProto_Array)
|
3401
|
+
? js_NewArrayObject(cx, 0, NULL)
|
3402
|
+
: js_NewObject(cx, &js_ObjectClass, NULL, NULL);
|
3403
|
+
if (!obj)
|
3404
|
+
goto error;
|
3405
|
+
PUSH_OPND(OBJECT_TO_JSVAL(obj));
|
3406
|
+
fp->sharpDepth++;
|
3407
|
+
CHECK_INTERRUPT_HANDLER();
|
3408
|
+
END_CASE(JSOP_NEWINIT)
|
3409
|
+
|
3410
|
+
BEGIN_CASE(JSOP_ENDINIT)
|
3411
|
+
if (--fp->sharpDepth == 0)
|
3412
|
+
fp->sharpArray = NULL;
|
3413
|
+
|
3414
|
+
/* Re-set the newborn root to the top of this object tree. */
|
3415
|
+
JS_ASSERT(regs.sp - StackBase(fp) >= 1);
|
3416
|
+
lval = FETCH_OPND(-1);
|
3417
|
+
JS_ASSERT(JSVAL_IS_OBJECT(lval));
|
3418
|
+
cx->weakRoots.newborn[GCX_OBJECT] = JSVAL_TO_GCTHING(lval);
|
3419
|
+
END_CASE(JSOP_ENDINIT)
|
3420
|
+
|
3421
|
+
BEGIN_CASE(JSOP_INITPROP)
|
3422
|
+
/* Load the property's initial value into rval. */
|
3423
|
+
JS_ASSERT(regs.sp - StackBase(fp) >= 2);
|
3424
|
+
rval = FETCH_OPND(-1);
|
3425
|
+
|
3426
|
+
/* Load the object being initialized into lval/obj. */
|
3427
|
+
lval = FETCH_OPND(-2);
|
3428
|
+
obj = JSVAL_TO_OBJECT(lval);
|
3429
|
+
JS_ASSERT(OBJ_IS_NATIVE(obj));
|
3430
|
+
JS_ASSERT(!OBJ_GET_CLASS(cx, obj)->reserveSlots);
|
3431
|
+
JS_ASSERT(!(obj->getClass()->flags & JSCLASS_SHARE_ALL_PROPERTIES));
|
3432
|
+
|
3433
|
+
do {
|
3434
|
+
JSScope *scope;
|
3435
|
+
uint32 kshape;
|
3436
|
+
JSPropertyCache *cache;
|
3437
|
+
JSPropCacheEntry *entry;
|
3438
|
+
|
3439
|
+
JS_LOCK_OBJ(cx, obj);
|
3440
|
+
scope = OBJ_SCOPE(obj);
|
3441
|
+
JS_ASSERT(!scope->sealed());
|
3442
|
+
kshape = scope->shape;
|
3443
|
+
cache = &JS_PROPERTY_CACHE(cx);
|
3444
|
+
entry = &cache->table[PROPERTY_CACHE_HASH_PC(regs.pc, kshape)];
|
3445
|
+
PCMETER(cache->pctestentry = entry);
|
3446
|
+
PCMETER(cache->tests++);
|
3447
|
+
PCMETER(cache->initests++);
|
3448
|
+
|
3449
|
+
if (entry->kpc == regs.pc &&
|
3450
|
+
entry->kshape == kshape &&
|
3451
|
+
PCVCAP_SHAPE(entry->vcap) == rt->protoHazardShape) {
|
3452
|
+
JS_ASSERT(PCVCAP_TAG(entry->vcap) == 0);
|
3453
|
+
|
3454
|
+
PCMETER(cache->pchits++);
|
3455
|
+
PCMETER(cache->inipchits++);
|
3456
|
+
|
3457
|
+
JS_ASSERT(PCVAL_IS_SPROP(entry->vword));
|
3458
|
+
sprop = PCVAL_TO_SPROP(entry->vword);
|
3459
|
+
JS_ASSERT(!(sprop->attrs & JSPROP_READONLY));
|
3460
|
+
|
3461
|
+
/*
|
3462
|
+
* If this property has a non-stub setter, it must be
|
3463
|
+
* __proto__, __parent__, or another "shared prototype"
|
3464
|
+
* built-in. Force a miss to save code size here and let
|
3465
|
+
* the standard code path take care of business.
|
3466
|
+
*/
|
3467
|
+
if (!SPROP_HAS_STUB_SETTER(sprop))
|
3468
|
+
goto do_initprop_miss;
|
3469
|
+
|
3470
|
+
if (!scope->owned()) {
|
3471
|
+
scope = js_GetMutableScope(cx, obj);
|
3472
|
+
if (!scope) {
|
3473
|
+
JS_UNLOCK_OBJ(cx, obj);
|
3474
|
+
goto error;
|
3475
|
+
}
|
3476
|
+
}
|
3477
|
+
|
3478
|
+
/*
|
3479
|
+
* Detect a repeated property name and force a miss to
|
3480
|
+
* share the strict warning code and cope with complexity
|
3481
|
+
* managed by JSScope::add.
|
3482
|
+
*/
|
3483
|
+
if (sprop->parent != scope->lastProp)
|
3484
|
+
goto do_initprop_miss;
|
3485
|
+
|
3486
|
+
/*
|
3487
|
+
* Otherwise this entry must be for a direct property of
|
3488
|
+
* obj, not a proto-property, and there cannot have been
|
3489
|
+
* any deletions of prior properties.
|
3490
|
+
*/
|
3491
|
+
JS_ASSERT(!scope->hadMiddleDelete());
|
3492
|
+
JS_ASSERT_IF(scope->table, !scope->has(sprop));
|
3493
|
+
|
3494
|
+
slot = sprop->slot;
|
3495
|
+
JS_ASSERT(slot == scope->freeslot);
|
3496
|
+
if (slot < STOBJ_NSLOTS(obj)) {
|
3497
|
+
++scope->freeslot;
|
3498
|
+
} else {
|
3499
|
+
if (!js_AllocSlot(cx, obj, &slot)) {
|
3500
|
+
JS_UNLOCK_SCOPE(cx, scope);
|
3501
|
+
goto error;
|
3502
|
+
}
|
3503
|
+
JS_ASSERT(slot == sprop->slot);
|
3504
|
+
}
|
3505
|
+
|
3506
|
+
JS_ASSERT(!scope->lastProp ||
|
3507
|
+
scope->shape == scope->lastProp->shape);
|
3508
|
+
if (scope->table) {
|
3509
|
+
JSScopeProperty *sprop2 =
|
3510
|
+
scope->add(cx, sprop->id,
|
3511
|
+
sprop->getter, sprop->setter,
|
3512
|
+
slot, sprop->attrs,
|
3513
|
+
sprop->flags, sprop->shortid);
|
3514
|
+
if (!sprop2) {
|
3515
|
+
js_FreeSlot(cx, obj, slot);
|
3516
|
+
JS_UNLOCK_SCOPE(cx, scope);
|
3517
|
+
goto error;
|
3518
|
+
}
|
3519
|
+
JS_ASSERT(sprop2 == sprop);
|
3520
|
+
} else {
|
3521
|
+
JS_ASSERT(scope->owned());
|
3522
|
+
js_LeaveTraceIfGlobalObject(cx, obj);
|
3523
|
+
scope->shape = sprop->shape;
|
3524
|
+
++scope->entryCount;
|
3525
|
+
scope->lastProp = sprop;
|
3526
|
+
}
|
3527
|
+
|
3528
|
+
LOCKED_OBJ_WRITE_BARRIER(cx, obj, slot, rval);
|
3529
|
+
TRACE_2(SetPropHit, entry, sprop);
|
3530
|
+
LOCKED_OBJ_SET_SLOT(obj, slot, rval);
|
3531
|
+
JS_UNLOCK_SCOPE(cx, scope);
|
3532
|
+
break;
|
3533
|
+
}
|
3534
|
+
|
3535
|
+
do_initprop_miss:
|
3536
|
+
PCMETER(cache->inipcmisses++);
|
3537
|
+
JS_UNLOCK_SCOPE(cx, scope);
|
3538
|
+
|
3539
|
+
/* Get the immediate property name into id. */
|
3540
|
+
LOAD_ATOM(0);
|
3541
|
+
id = ATOM_TO_JSID(atom);
|
3542
|
+
|
3543
|
+
/* Set the property named by obj[id] to rval. */
|
3544
|
+
if (!js_CheckRedeclaration(cx, obj, id, JSPROP_INITIALIZER,
|
3545
|
+
NULL, NULL)) {
|
3546
|
+
goto error;
|
3547
|
+
}
|
3548
|
+
|
3549
|
+
if (!(JS_UNLIKELY(atom == cx->runtime->atomState.protoAtom)
|
3550
|
+
? js_SetPropertyHelper(cx, obj, id, true, &rval)
|
3551
|
+
: js_DefineNativeProperty(cx, obj, id, rval, NULL, NULL,
|
3552
|
+
JSPROP_ENUMERATE, 0, 0, NULL,
|
3553
|
+
JSDNP_CACHE_RESULT)))
|
3554
|
+
goto error;
|
3555
|
+
} while (0);
|
3556
|
+
|
3557
|
+
/* Common tail for property cache hit and miss cases. */
|
3558
|
+
regs.sp--;
|
3559
|
+
END_CASE(JSOP_INITPROP);
|
3560
|
+
|
3561
|
+
BEGIN_CASE(JSOP_INITELEM)
|
3562
|
+
/* Pop the element's value into rval. */
|
3563
|
+
JS_ASSERT(regs.sp - StackBase(fp) >= 3);
|
3564
|
+
rval = FETCH_OPND(-1);
|
3565
|
+
|
3566
|
+
/* Find the object being initialized at top of stack. */
|
3567
|
+
lval = FETCH_OPND(-3);
|
3568
|
+
JS_ASSERT(!JSVAL_IS_PRIMITIVE(lval));
|
3569
|
+
obj = JSVAL_TO_OBJECT(lval);
|
3570
|
+
|
3571
|
+
/* Fetch id now that we have obj. */
|
3572
|
+
FETCH_ELEMENT_ID(obj, -2, id);
|
3573
|
+
|
3574
|
+
/*
|
3575
|
+
* Check for property redeclaration strict warning (we may be in
|
3576
|
+
* an object initialiser, not an array initialiser).
|
3577
|
+
*/
|
3578
|
+
if (!js_CheckRedeclaration(cx, obj, id, JSPROP_INITIALIZER, NULL, NULL))
|
3579
|
+
goto error;
|
3580
|
+
|
3581
|
+
/*
|
3582
|
+
* If rval is a hole, do not call JSObject::defineProperty. In this case,
|
3583
|
+
* obj must be an array, so if the current op is the last element
|
3584
|
+
* initialiser, set the array length to one greater than id.
|
3585
|
+
*/
|
3586
|
+
if (rval == JSVAL_HOLE) {
|
3587
|
+
JS_ASSERT(OBJ_IS_ARRAY(cx, obj));
|
3588
|
+
JS_ASSERT(JSID_IS_INT(id));
|
3589
|
+
JS_ASSERT(jsuint(JSID_TO_INT(id)) < JS_ARGS_LENGTH_MAX);
|
3590
|
+
if (js_GetOpcode(cx, script, regs.pc + JSOP_INITELEM_LENGTH) == JSOP_ENDINIT &&
|
3591
|
+
!js_SetLengthProperty(cx, obj, (jsuint) (JSID_TO_INT(id) + 1))) {
|
3592
|
+
goto error;
|
3593
|
+
}
|
3594
|
+
} else {
|
3595
|
+
if (!obj->defineProperty(cx, id, rval, NULL, NULL, JSPROP_ENUMERATE))
|
3596
|
+
goto error;
|
3597
|
+
}
|
3598
|
+
regs.sp -= 2;
|
3599
|
+
END_CASE(JSOP_INITELEM)
|
3600
|
+
|
3601
|
+
#if JS_HAS_SHARP_VARS
|
3602
|
+
BEGIN_CASE(JSOP_DEFSHARP)
|
3603
|
+
obj = fp->sharpArray;
|
3604
|
+
if (!obj) {
|
3605
|
+
obj = js_NewArrayObject(cx, 0, NULL);
|
3606
|
+
if (!obj)
|
3607
|
+
goto error;
|
3608
|
+
fp->sharpArray = obj;
|
3609
|
+
}
|
3610
|
+
i = (jsint) GET_UINT16(regs.pc);
|
3611
|
+
id = INT_TO_JSID(i);
|
3612
|
+
rval = FETCH_OPND(-1);
|
3613
|
+
if (JSVAL_IS_PRIMITIVE(rval)) {
|
3614
|
+
char numBuf[12];
|
3615
|
+
JS_snprintf(numBuf, sizeof numBuf, "%u", (unsigned) i);
|
3616
|
+
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL,
|
3617
|
+
JSMSG_BAD_SHARP_DEF, numBuf);
|
3618
|
+
goto error;
|
3619
|
+
}
|
3620
|
+
if (!obj->defineProperty(cx, id, rval, NULL, NULL, JSPROP_ENUMERATE))
|
3621
|
+
goto error;
|
3622
|
+
END_CASE(JSOP_DEFSHARP)
|
3623
|
+
|
3624
|
+
BEGIN_CASE(JSOP_USESHARP)
|
3625
|
+
i = (jsint) GET_UINT16(regs.pc);
|
3626
|
+
id = INT_TO_JSID(i);
|
3627
|
+
obj = fp->sharpArray;
|
3628
|
+
if (!obj) {
|
3629
|
+
rval = JSVAL_VOID;
|
3630
|
+
} else {
|
3631
|
+
if (!obj->getProperty(cx, id, &rval))
|
3632
|
+
goto error;
|
3633
|
+
}
|
3634
|
+
if (!JSVAL_IS_OBJECT(rval)) {
|
3635
|
+
char numBuf[12];
|
3636
|
+
|
3637
|
+
JS_snprintf(numBuf, sizeof numBuf, "%u", (unsigned) i);
|
3638
|
+
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL,
|
3639
|
+
JSMSG_BAD_SHARP_USE, numBuf);
|
3640
|
+
goto error;
|
3641
|
+
}
|
3642
|
+
PUSH_OPND(rval);
|
3643
|
+
END_CASE(JSOP_USESHARP)
|
3644
|
+
#endif /* JS_HAS_SHARP_VARS */
|
3645
|
+
|
3646
|
+
BEGIN_CASE(JSOP_GOSUB)
|
3647
|
+
PUSH(JSVAL_FALSE);
|
3648
|
+
i = (regs.pc - script->main) + JSOP_GOSUB_LENGTH;
|
3649
|
+
PUSH(INT_TO_JSVAL(i));
|
3650
|
+
len = GET_JUMP_OFFSET(regs.pc);
|
3651
|
+
END_VARLEN_CASE
|
3652
|
+
|
3653
|
+
BEGIN_CASE(JSOP_GOSUBX)
|
3654
|
+
PUSH(JSVAL_FALSE);
|
3655
|
+
i = (regs.pc - script->main) + JSOP_GOSUBX_LENGTH;
|
3656
|
+
len = GET_JUMPX_OFFSET(regs.pc);
|
3657
|
+
PUSH(INT_TO_JSVAL(i));
|
3658
|
+
END_VARLEN_CASE
|
3659
|
+
|
3660
|
+
BEGIN_CASE(JSOP_RETSUB)
|
3661
|
+
/* Pop [exception or hole, retsub pc-index]. */
|
3662
|
+
rval = POP();
|
3663
|
+
lval = POP();
|
3664
|
+
JS_ASSERT(JSVAL_IS_BOOLEAN(lval));
|
3665
|
+
if (JSVAL_TO_BOOLEAN(lval)) {
|
3666
|
+
/*
|
3667
|
+
* Exception was pending during finally, throw it *before* we
|
3668
|
+
* adjust pc, because pc indexes into script->trynotes. This
|
3669
|
+
* turns out not to be necessary, but it seems clearer. And
|
3670
|
+
* it points out a FIXME: 350509, due to Igor Bukanov.
|
3671
|
+
*/
|
3672
|
+
cx->throwing = JS_TRUE;
|
3673
|
+
cx->exception = rval;
|
3674
|
+
goto error;
|
3675
|
+
}
|
3676
|
+
JS_ASSERT(JSVAL_IS_INT(rval));
|
3677
|
+
len = JSVAL_TO_INT(rval);
|
3678
|
+
regs.pc = script->main;
|
3679
|
+
END_VARLEN_CASE
|
3680
|
+
|
3681
|
+
BEGIN_CASE(JSOP_EXCEPTION)
|
3682
|
+
JS_ASSERT(cx->throwing);
|
3683
|
+
PUSH(cx->exception);
|
3684
|
+
cx->throwing = JS_FALSE;
|
3685
|
+
CHECK_BRANCH();
|
3686
|
+
END_CASE(JSOP_EXCEPTION)
|
3687
|
+
|
3688
|
+
BEGIN_CASE(JSOP_FINALLY)
|
3689
|
+
CHECK_BRANCH();
|
3690
|
+
END_CASE(JSOP_FINALLY)
|
3691
|
+
|
3692
|
+
BEGIN_CASE(JSOP_THROWING)
|
3693
|
+
JS_ASSERT(!cx->throwing);
|
3694
|
+
cx->throwing = JS_TRUE;
|
3695
|
+
cx->exception = POP_OPND();
|
3696
|
+
END_CASE(JSOP_THROWING)
|
3697
|
+
|
3698
|
+
BEGIN_CASE(JSOP_THROW)
|
3699
|
+
JS_ASSERT(!cx->throwing);
|
3700
|
+
CHECK_BRANCH();
|
3701
|
+
cx->throwing = JS_TRUE;
|
3702
|
+
cx->exception = POP_OPND();
|
3703
|
+
/* let the code at error try to catch the exception. */
|
3704
|
+
goto error;
|
3705
|
+
|
3706
|
+
BEGIN_CASE(JSOP_SETLOCALPOP)
|
3707
|
+
/*
|
3708
|
+
* The stack must have a block with at least one local slot below
|
3709
|
+
* the exception object.
|
3710
|
+
*/
|
3711
|
+
JS_ASSERT((size_t) (regs.sp - StackBase(fp)) >= 2);
|
3712
|
+
slot = GET_UINT16(regs.pc);
|
3713
|
+
JS_ASSERT(slot + 1 < script->nslots);
|
3714
|
+
fp->slots[slot] = POP_OPND();
|
3715
|
+
END_CASE(JSOP_SETLOCALPOP)
|
3716
|
+
|
3717
|
+
BEGIN_CASE(JSOP_IFPRIMTOP)
|
3718
|
+
/*
|
3719
|
+
* If the top of stack is of primitive type, jump to our target.
|
3720
|
+
* Otherwise advance to the next opcode.
|
3721
|
+
*/
|
3722
|
+
JS_ASSERT(regs.sp > StackBase(fp));
|
3723
|
+
rval = FETCH_OPND(-1);
|
3724
|
+
if (JSVAL_IS_PRIMITIVE(rval)) {
|
3725
|
+
len = GET_JUMP_OFFSET(regs.pc);
|
3726
|
+
BRANCH(len);
|
3727
|
+
}
|
3728
|
+
END_CASE(JSOP_IFPRIMTOP)
|
3729
|
+
|
3730
|
+
BEGIN_CASE(JSOP_PRIMTOP)
|
3731
|
+
JS_ASSERT(regs.sp > StackBase(fp));
|
3732
|
+
lval = FETCH_OPND(-1);
|
3733
|
+
i = GET_INT8(regs.pc);
|
3734
|
+
if (!JSVAL_IS_PRIMITIVE(lval)) {
|
3735
|
+
lval = FETCH_OPND(-2);
|
3736
|
+
js_ReportValueError2(cx, JSMSG_CANT_CONVERT_TO,
|
3737
|
+
-2, lval, NULL,
|
3738
|
+
(i == JSTYPE_VOID)
|
3739
|
+
? "primitive type"
|
3740
|
+
: JS_TYPE_STR(i));
|
3741
|
+
goto error;
|
3742
|
+
}
|
3743
|
+
END_CASE(JSOP_PRIMTOP)
|
3744
|
+
|
3745
|
+
BEGIN_CASE(JSOP_OBJTOP)
|
3746
|
+
lval = FETCH_OPND(-1);
|
3747
|
+
if (JSVAL_IS_PRIMITIVE(lval)) {
|
3748
|
+
js_ReportValueError(cx, GET_UINT16(regs.pc), -1, lval, NULL);
|
3749
|
+
goto error;
|
3750
|
+
}
|
3751
|
+
END_CASE(JSOP_OBJTOP)
|
3752
|
+
|
3753
|
+
BEGIN_CASE(JSOP_INSTANCEOF)
|
3754
|
+
rval = FETCH_OPND(-1);
|
3755
|
+
if (JSVAL_IS_PRIMITIVE(rval) ||
|
3756
|
+
!(obj = JSVAL_TO_OBJECT(rval))->map->ops->hasInstance) {
|
3757
|
+
js_ReportValueError(cx, JSMSG_BAD_INSTANCEOF_RHS,
|
3758
|
+
-1, rval, NULL);
|
3759
|
+
goto error;
|
3760
|
+
}
|
3761
|
+
lval = FETCH_OPND(-2);
|
3762
|
+
cond = JS_FALSE;
|
3763
|
+
if (!obj->map->ops->hasInstance(cx, obj, lval, &cond))
|
3764
|
+
goto error;
|
3765
|
+
regs.sp--;
|
3766
|
+
STORE_OPND(-1, BOOLEAN_TO_JSVAL(cond));
|
3767
|
+
END_CASE(JSOP_INSTANCEOF)
|
3768
|
+
|
3769
|
+
#if JS_HAS_DEBUGGER_KEYWORD
|
3770
|
+
BEGIN_CASE(JSOP_DEBUGGER)
|
3771
|
+
{
|
3772
|
+
JSTrapHandler handler = cx->debugHooks->debuggerHandler;
|
3773
|
+
if (handler) {
|
3774
|
+
switch (handler(cx, script, regs.pc, &rval,
|
3775
|
+
cx->debugHooks->debuggerHandlerData)) {
|
3776
|
+
case JSTRAP_ERROR:
|
3777
|
+
goto error;
|
3778
|
+
case JSTRAP_CONTINUE:
|
3779
|
+
break;
|
3780
|
+
case JSTRAP_RETURN:
|
3781
|
+
fp->rval = rval;
|
3782
|
+
ok = JS_TRUE;
|
3783
|
+
goto forced_return;
|
3784
|
+
case JSTRAP_THROW:
|
3785
|
+
cx->throwing = JS_TRUE;
|
3786
|
+
cx->exception = rval;
|
3787
|
+
goto error;
|
3788
|
+
default:;
|
3789
|
+
}
|
3790
|
+
CHECK_INTERRUPT_HANDLER();
|
3791
|
+
}
|
3792
|
+
}
|
3793
|
+
END_CASE(JSOP_DEBUGGER)
|
3794
|
+
#endif /* JS_HAS_DEBUGGER_KEYWORD */
|
3795
|
+
|
3796
|
+
#if JS_HAS_XML_SUPPORT
|
3797
|
+
BEGIN_CASE(JSOP_DEFXMLNS)
|
3798
|
+
rval = POP();
|
3799
|
+
if (!js_SetDefaultXMLNamespace(cx, rval))
|
3800
|
+
goto error;
|
3801
|
+
END_CASE(JSOP_DEFXMLNS)
|
3802
|
+
|
3803
|
+
BEGIN_CASE(JSOP_ANYNAME)
|
3804
|
+
if (!js_GetAnyName(cx, &rval))
|
3805
|
+
goto error;
|
3806
|
+
PUSH_OPND(rval);
|
3807
|
+
END_CASE(JSOP_ANYNAME)
|
3808
|
+
|
3809
|
+
BEGIN_CASE(JSOP_QNAMEPART)
|
3810
|
+
LOAD_ATOM(0);
|
3811
|
+
PUSH_OPND(ATOM_KEY(atom));
|
3812
|
+
END_CASE(JSOP_QNAMEPART)
|
3813
|
+
|
3814
|
+
BEGIN_CASE(JSOP_QNAMECONST)
|
3815
|
+
LOAD_ATOM(0);
|
3816
|
+
rval = ATOM_KEY(atom);
|
3817
|
+
lval = FETCH_OPND(-1);
|
3818
|
+
obj = js_ConstructXMLQNameObject(cx, lval, rval);
|
3819
|
+
if (!obj)
|
3820
|
+
goto error;
|
3821
|
+
STORE_OPND(-1, OBJECT_TO_JSVAL(obj));
|
3822
|
+
END_CASE(JSOP_QNAMECONST)
|
3823
|
+
|
3824
|
+
BEGIN_CASE(JSOP_QNAME)
|
3825
|
+
rval = FETCH_OPND(-1);
|
3826
|
+
lval = FETCH_OPND(-2);
|
3827
|
+
obj = js_ConstructXMLQNameObject(cx, lval, rval);
|
3828
|
+
if (!obj)
|
3829
|
+
goto error;
|
3830
|
+
regs.sp--;
|
3831
|
+
STORE_OPND(-1, OBJECT_TO_JSVAL(obj));
|
3832
|
+
END_CASE(JSOP_QNAME)
|
3833
|
+
|
3834
|
+
BEGIN_CASE(JSOP_TOATTRNAME)
|
3835
|
+
rval = FETCH_OPND(-1);
|
3836
|
+
if (!js_ToAttributeName(cx, &rval))
|
3837
|
+
goto error;
|
3838
|
+
STORE_OPND(-1, rval);
|
3839
|
+
END_CASE(JSOP_TOATTRNAME)
|
3840
|
+
|
3841
|
+
BEGIN_CASE(JSOP_TOATTRVAL)
|
3842
|
+
rval = FETCH_OPND(-1);
|
3843
|
+
JS_ASSERT(JSVAL_IS_STRING(rval));
|
3844
|
+
str = js_EscapeAttributeValue(cx, JSVAL_TO_STRING(rval), JS_FALSE);
|
3845
|
+
if (!str)
|
3846
|
+
goto error;
|
3847
|
+
STORE_OPND(-1, STRING_TO_JSVAL(str));
|
3848
|
+
END_CASE(JSOP_TOATTRVAL)
|
3849
|
+
|
3850
|
+
BEGIN_CASE(JSOP_ADDATTRNAME)
|
3851
|
+
BEGIN_CASE(JSOP_ADDATTRVAL)
|
3852
|
+
rval = FETCH_OPND(-1);
|
3853
|
+
lval = FETCH_OPND(-2);
|
3854
|
+
str = JSVAL_TO_STRING(lval);
|
3855
|
+
str2 = JSVAL_TO_STRING(rval);
|
3856
|
+
str = js_AddAttributePart(cx, op == JSOP_ADDATTRNAME, str, str2);
|
3857
|
+
if (!str)
|
3858
|
+
goto error;
|
3859
|
+
regs.sp--;
|
3860
|
+
STORE_OPND(-1, STRING_TO_JSVAL(str));
|
3861
|
+
END_CASE(JSOP_ADDATTRNAME)
|
3862
|
+
|
3863
|
+
BEGIN_CASE(JSOP_BINDXMLNAME)
|
3864
|
+
lval = FETCH_OPND(-1);
|
3865
|
+
if (!js_FindXMLProperty(cx, lval, &obj, &id))
|
3866
|
+
goto error;
|
3867
|
+
STORE_OPND(-1, OBJECT_TO_JSVAL(obj));
|
3868
|
+
PUSH_OPND(ID_TO_VALUE(id));
|
3869
|
+
END_CASE(JSOP_BINDXMLNAME)
|
3870
|
+
|
3871
|
+
BEGIN_CASE(JSOP_SETXMLNAME)
|
3872
|
+
obj = JSVAL_TO_OBJECT(FETCH_OPND(-3));
|
3873
|
+
rval = FETCH_OPND(-1);
|
3874
|
+
FETCH_ELEMENT_ID(obj, -2, id);
|
3875
|
+
if (!obj->setProperty(cx, id, &rval))
|
3876
|
+
goto error;
|
3877
|
+
rval = FETCH_OPND(-1);
|
3878
|
+
regs.sp -= 2;
|
3879
|
+
STORE_OPND(-1, rval);
|
3880
|
+
END_CASE(JSOP_SETXMLNAME)
|
3881
|
+
|
3882
|
+
BEGIN_CASE(JSOP_CALLXMLNAME)
|
3883
|
+
BEGIN_CASE(JSOP_XMLNAME)
|
3884
|
+
lval = FETCH_OPND(-1);
|
3885
|
+
if (!js_FindXMLProperty(cx, lval, &obj, &id))
|
3886
|
+
goto error;
|
3887
|
+
if (!obj->getProperty(cx, id, &rval))
|
3888
|
+
goto error;
|
3889
|
+
STORE_OPND(-1, rval);
|
3890
|
+
if (op == JSOP_CALLXMLNAME)
|
3891
|
+
PUSH_OPND(OBJECT_TO_JSVAL(obj));
|
3892
|
+
END_CASE(JSOP_XMLNAME)
|
3893
|
+
|
3894
|
+
BEGIN_CASE(JSOP_DESCENDANTS)
|
3895
|
+
BEGIN_CASE(JSOP_DELDESC)
|
3896
|
+
FETCH_OBJECT(cx, -2, lval, obj);
|
3897
|
+
rval = FETCH_OPND(-1);
|
3898
|
+
if (!js_GetXMLDescendants(cx, obj, rval, &rval))
|
3899
|
+
goto error;
|
3900
|
+
|
3901
|
+
if (op == JSOP_DELDESC) {
|
3902
|
+
regs.sp[-1] = rval; /* set local root */
|
3903
|
+
if (!js_DeleteXMLListElements(cx, JSVAL_TO_OBJECT(rval)))
|
3904
|
+
goto error;
|
3905
|
+
rval = JSVAL_TRUE; /* always succeed */
|
3906
|
+
}
|
3907
|
+
|
3908
|
+
regs.sp--;
|
3909
|
+
STORE_OPND(-1, rval);
|
3910
|
+
END_CASE(JSOP_DESCENDANTS)
|
3911
|
+
|
3912
|
+
BEGIN_CASE(JSOP_FILTER)
|
3913
|
+
/*
|
3914
|
+
* We push the hole value before jumping to [enditer] so we can
|
3915
|
+
* detect the first iteration and direct js_StepXMLListFilter to
|
3916
|
+
* initialize filter's state.
|
3917
|
+
*/
|
3918
|
+
PUSH_OPND(JSVAL_HOLE);
|
3919
|
+
len = GET_JUMP_OFFSET(regs.pc);
|
3920
|
+
JS_ASSERT(len > 0);
|
3921
|
+
END_VARLEN_CASE
|
3922
|
+
|
3923
|
+
BEGIN_CASE(JSOP_ENDFILTER)
|
3924
|
+
cond = (regs.sp[-1] != JSVAL_HOLE);
|
3925
|
+
if (cond) {
|
3926
|
+
/* Exit the "with" block left from the previous iteration. */
|
3927
|
+
js_LeaveWith(cx);
|
3928
|
+
}
|
3929
|
+
if (!js_StepXMLListFilter(cx, cond))
|
3930
|
+
goto error;
|
3931
|
+
if (regs.sp[-1] != JSVAL_NULL) {
|
3932
|
+
/*
|
3933
|
+
* Decrease sp after EnterWith returns as we use sp[-1] there
|
3934
|
+
* to root temporaries.
|
3935
|
+
*/
|
3936
|
+
JS_ASSERT(VALUE_IS_XML(cx, regs.sp[-1]));
|
3937
|
+
if (!js_EnterWith(cx, -2))
|
3938
|
+
goto error;
|
3939
|
+
regs.sp--;
|
3940
|
+
len = GET_JUMP_OFFSET(regs.pc);
|
3941
|
+
JS_ASSERT(len < 0);
|
3942
|
+
BRANCH(len);
|
3943
|
+
}
|
3944
|
+
regs.sp--;
|
3945
|
+
END_CASE(JSOP_ENDFILTER);
|
3946
|
+
|
3947
|
+
BEGIN_CASE(JSOP_TOXML)
|
3948
|
+
rval = FETCH_OPND(-1);
|
3949
|
+
obj = js_ValueToXMLObject(cx, rval);
|
3950
|
+
if (!obj)
|
3951
|
+
goto error;
|
3952
|
+
STORE_OPND(-1, OBJECT_TO_JSVAL(obj));
|
3953
|
+
END_CASE(JSOP_TOXML)
|
3954
|
+
|
3955
|
+
BEGIN_CASE(JSOP_TOXMLLIST)
|
3956
|
+
rval = FETCH_OPND(-1);
|
3957
|
+
obj = js_ValueToXMLListObject(cx, rval);
|
3958
|
+
if (!obj)
|
3959
|
+
goto error;
|
3960
|
+
STORE_OPND(-1, OBJECT_TO_JSVAL(obj));
|
3961
|
+
END_CASE(JSOP_TOXMLLIST)
|
3962
|
+
|
3963
|
+
BEGIN_CASE(JSOP_XMLTAGEXPR)
|
3964
|
+
rval = FETCH_OPND(-1);
|
3965
|
+
str = js_ValueToString(cx, rval);
|
3966
|
+
if (!str)
|
3967
|
+
goto error;
|
3968
|
+
STORE_OPND(-1, STRING_TO_JSVAL(str));
|
3969
|
+
END_CASE(JSOP_XMLTAGEXPR)
|
3970
|
+
|
3971
|
+
BEGIN_CASE(JSOP_XMLELTEXPR)
|
3972
|
+
rval = FETCH_OPND(-1);
|
3973
|
+
if (VALUE_IS_XML(cx, rval)) {
|
3974
|
+
str = js_ValueToXMLString(cx, rval);
|
3975
|
+
} else {
|
3976
|
+
str = js_ValueToString(cx, rval);
|
3977
|
+
if (str)
|
3978
|
+
str = js_EscapeElementValue(cx, str);
|
3979
|
+
}
|
3980
|
+
if (!str)
|
3981
|
+
goto error;
|
3982
|
+
STORE_OPND(-1, STRING_TO_JSVAL(str));
|
3983
|
+
END_CASE(JSOP_XMLELTEXPR)
|
3984
|
+
|
3985
|
+
BEGIN_CASE(JSOP_XMLOBJECT)
|
3986
|
+
LOAD_OBJECT(0);
|
3987
|
+
obj = js_CloneXMLObject(cx, obj);
|
3988
|
+
if (!obj)
|
3989
|
+
goto error;
|
3990
|
+
PUSH_OPND(OBJECT_TO_JSVAL(obj));
|
3991
|
+
END_CASE(JSOP_XMLOBJECT)
|
3992
|
+
|
3993
|
+
BEGIN_CASE(JSOP_XMLCDATA)
|
3994
|
+
LOAD_ATOM(0);
|
3995
|
+
str = ATOM_TO_STRING(atom);
|
3996
|
+
obj = js_NewXMLSpecialObject(cx, JSXML_CLASS_TEXT, NULL, str);
|
3997
|
+
if (!obj)
|
3998
|
+
goto error;
|
3999
|
+
PUSH_OPND(OBJECT_TO_JSVAL(obj));
|
4000
|
+
END_CASE(JSOP_XMLCDATA)
|
4001
|
+
|
4002
|
+
BEGIN_CASE(JSOP_XMLCOMMENT)
|
4003
|
+
LOAD_ATOM(0);
|
4004
|
+
str = ATOM_TO_STRING(atom);
|
4005
|
+
obj = js_NewXMLSpecialObject(cx, JSXML_CLASS_COMMENT, NULL, str);
|
4006
|
+
if (!obj)
|
4007
|
+
goto error;
|
4008
|
+
PUSH_OPND(OBJECT_TO_JSVAL(obj));
|
4009
|
+
END_CASE(JSOP_XMLCOMMENT)
|
4010
|
+
|
4011
|
+
BEGIN_CASE(JSOP_XMLPI)
|
4012
|
+
LOAD_ATOM(0);
|
4013
|
+
str = ATOM_TO_STRING(atom);
|
4014
|
+
rval = FETCH_OPND(-1);
|
4015
|
+
str2 = JSVAL_TO_STRING(rval);
|
4016
|
+
obj = js_NewXMLSpecialObject(cx,
|
4017
|
+
JSXML_CLASS_PROCESSING_INSTRUCTION,
|
4018
|
+
str, str2);
|
4019
|
+
if (!obj)
|
4020
|
+
goto error;
|
4021
|
+
STORE_OPND(-1, OBJECT_TO_JSVAL(obj));
|
4022
|
+
END_CASE(JSOP_XMLPI)
|
4023
|
+
|
4024
|
+
BEGIN_CASE(JSOP_GETFUNNS)
|
4025
|
+
if (!js_GetFunctionNamespace(cx, &rval))
|
4026
|
+
goto error;
|
4027
|
+
PUSH_OPND(rval);
|
4028
|
+
END_CASE(JSOP_GETFUNNS)
|
4029
|
+
#endif /* JS_HAS_XML_SUPPORT */
|
4030
|
+
|
4031
|
+
BEGIN_CASE(JSOP_ENTERBLOCK)
|
4032
|
+
LOAD_OBJECT(0);
|
4033
|
+
JS_ASSERT(!OBJ_IS_CLONED_BLOCK(obj));
|
4034
|
+
JS_ASSERT(StackBase(fp) + OBJ_BLOCK_DEPTH(cx, obj) == regs.sp);
|
4035
|
+
vp = regs.sp + OBJ_BLOCK_COUNT(cx, obj);
|
4036
|
+
JS_ASSERT(regs.sp < vp);
|
4037
|
+
JS_ASSERT(vp <= fp->slots + script->nslots);
|
4038
|
+
while (regs.sp < vp) {
|
4039
|
+
STORE_OPND(0, JSVAL_VOID);
|
4040
|
+
regs.sp++;
|
4041
|
+
}
|
4042
|
+
|
4043
|
+
#ifdef DEBUG
|
4044
|
+
JS_ASSERT(fp->blockChain == OBJ_GET_PARENT(cx, obj));
|
4045
|
+
|
4046
|
+
/*
|
4047
|
+
* The young end of fp->scopeChain may omit blocks if we
|
4048
|
+
* haven't closed over them, but if there are any closure
|
4049
|
+
* blocks on fp->scopeChain, they'd better be (clones of)
|
4050
|
+
* ancestors of the block we're entering now; anything
|
4051
|
+
* else we should have popped off fp->scopeChain when we
|
4052
|
+
* left its static scope.
|
4053
|
+
*/
|
4054
|
+
obj2 = fp->scopeChain;
|
4055
|
+
while ((clasp = OBJ_GET_CLASS(cx, obj2)) == &js_WithClass)
|
4056
|
+
obj2 = OBJ_GET_PARENT(cx, obj2);
|
4057
|
+
if (clasp == &js_BlockClass &&
|
4058
|
+
obj2->getPrivate() == fp) {
|
4059
|
+
JSObject *youngestProto = OBJ_GET_PROTO(cx, obj2);
|
4060
|
+
JS_ASSERT(!OBJ_IS_CLONED_BLOCK(youngestProto));
|
4061
|
+
parent = obj;
|
4062
|
+
while ((parent = OBJ_GET_PARENT(cx, parent)) != youngestProto)
|
4063
|
+
JS_ASSERT(parent);
|
4064
|
+
}
|
4065
|
+
#endif
|
4066
|
+
|
4067
|
+
fp->blockChain = obj;
|
4068
|
+
END_CASE(JSOP_ENTERBLOCK)
|
4069
|
+
|
4070
|
+
BEGIN_CASE(JSOP_LEAVEBLOCKEXPR)
|
4071
|
+
BEGIN_CASE(JSOP_LEAVEBLOCK)
|
4072
|
+
{
|
4073
|
+
#ifdef DEBUG
|
4074
|
+
JS_ASSERT(OBJ_GET_CLASS(cx, fp->blockChain) == &js_BlockClass);
|
4075
|
+
uintN blockDepth = OBJ_BLOCK_DEPTH(cx, fp->blockChain);
|
4076
|
+
|
4077
|
+
JS_ASSERT(blockDepth <= StackDepth(script));
|
4078
|
+
#endif
|
4079
|
+
/*
|
4080
|
+
* If we're about to leave the dynamic scope of a block that has
|
4081
|
+
* been cloned onto fp->scopeChain, clear its private data, move
|
4082
|
+
* its locals from the stack into the clone, and pop it off the
|
4083
|
+
* chain.
|
4084
|
+
*/
|
4085
|
+
obj = fp->scopeChain;
|
4086
|
+
if (OBJ_GET_PROTO(cx, obj) == fp->blockChain) {
|
4087
|
+
JS_ASSERT (OBJ_GET_CLASS(cx, obj) == &js_BlockClass);
|
4088
|
+
if (!js_PutBlockObject(cx, JS_TRUE))
|
4089
|
+
goto error;
|
4090
|
+
}
|
4091
|
+
|
4092
|
+
/* Pop the block chain, too. */
|
4093
|
+
fp->blockChain = OBJ_GET_PARENT(cx, fp->blockChain);
|
4094
|
+
|
4095
|
+
/*
|
4096
|
+
* We will move the result of the expression to the new topmost
|
4097
|
+
* stack slot.
|
4098
|
+
*/
|
4099
|
+
if (op == JSOP_LEAVEBLOCKEXPR)
|
4100
|
+
rval = FETCH_OPND(-1);
|
4101
|
+
regs.sp -= GET_UINT16(regs.pc);
|
4102
|
+
if (op == JSOP_LEAVEBLOCKEXPR) {
|
4103
|
+
JS_ASSERT(StackBase(fp) + blockDepth == regs.sp - 1);
|
4104
|
+
STORE_OPND(-1, rval);
|
4105
|
+
} else {
|
4106
|
+
JS_ASSERT(StackBase(fp) + blockDepth == regs.sp);
|
4107
|
+
}
|
4108
|
+
}
|
4109
|
+
END_CASE(JSOP_LEAVEBLOCK)
|
4110
|
+
|
4111
|
+
BEGIN_CASE(JSOP_CALLBUILTIN)
|
4112
|
+
#ifdef JS_TRACER
|
4113
|
+
obj = js_GetBuiltinFunction(cx, GET_INDEX(regs.pc));
|
4114
|
+
if (!obj)
|
4115
|
+
goto error;
|
4116
|
+
rval = FETCH_OPND(-1);
|
4117
|
+
PUSH_OPND(rval);
|
4118
|
+
STORE_OPND(-2, OBJECT_TO_JSVAL(obj));
|
4119
|
+
#else
|
4120
|
+
goto bad_opcode; /* This is an imacro-only opcode. */
|
4121
|
+
#endif
|
4122
|
+
END_CASE(JSOP_CALLBUILTIN)
|
4123
|
+
|
4124
|
+
#if JS_HAS_GENERATORS
|
4125
|
+
BEGIN_CASE(JSOP_GENERATOR)
|
4126
|
+
ASSERT_NOT_THROWING(cx);
|
4127
|
+
regs.pc += JSOP_GENERATOR_LENGTH;
|
4128
|
+
obj = js_NewGenerator(cx, fp);
|
4129
|
+
if (!obj)
|
4130
|
+
goto error;
|
4131
|
+
JS_ASSERT(!fp->callobj && !fp->argsobj);
|
4132
|
+
fp->rval = OBJECT_TO_JSVAL(obj);
|
4133
|
+
ok = JS_TRUE;
|
4134
|
+
if (inlineCallCount != 0)
|
4135
|
+
goto inline_return;
|
4136
|
+
goto exit;
|
4137
|
+
|
4138
|
+
BEGIN_CASE(JSOP_YIELD)
|
4139
|
+
ASSERT_NOT_THROWING(cx);
|
4140
|
+
if (FRAME_TO_GENERATOR(fp)->state == JSGEN_CLOSING) {
|
4141
|
+
js_ReportValueError(cx, JSMSG_BAD_GENERATOR_YIELD,
|
4142
|
+
JSDVG_SEARCH_STACK, fp->argv[-2], NULL);
|
4143
|
+
goto error;
|
4144
|
+
}
|
4145
|
+
fp->rval = FETCH_OPND(-1);
|
4146
|
+
fp->flags |= JSFRAME_YIELDING;
|
4147
|
+
regs.pc += JSOP_YIELD_LENGTH;
|
4148
|
+
ok = JS_TRUE;
|
4149
|
+
goto exit;
|
4150
|
+
|
4151
|
+
BEGIN_CASE(JSOP_ARRAYPUSH)
|
4152
|
+
slot = GET_UINT16(regs.pc);
|
4153
|
+
JS_ASSERT(script->nfixed <= slot);
|
4154
|
+
JS_ASSERT(slot < script->nslots);
|
4155
|
+
lval = fp->slots[slot];
|
4156
|
+
obj = JSVAL_TO_OBJECT(lval);
|
4157
|
+
rval = FETCH_OPND(-1);
|
4158
|
+
if (!js_ArrayCompPush(cx, obj, rval))
|
4159
|
+
goto error;
|
4160
|
+
regs.sp--;
|
4161
|
+
END_CASE(JSOP_ARRAYPUSH)
|
4162
|
+
#endif /* JS_HAS_GENERATORS */
|
4163
|
+
|
4164
|
+
#if JS_THREADED_INTERP
|
4165
|
+
L_JSOP_BACKPATCH:
|
4166
|
+
L_JSOP_BACKPATCH_POP:
|
4167
|
+
|
4168
|
+
# if !JS_HAS_GENERATORS
|
4169
|
+
L_JSOP_GENERATOR:
|
4170
|
+
L_JSOP_YIELD:
|
4171
|
+
L_JSOP_ARRAYPUSH:
|
4172
|
+
# endif
|
4173
|
+
|
4174
|
+
# if !JS_HAS_SHARP_VARS
|
4175
|
+
L_JSOP_DEFSHARP:
|
4176
|
+
L_JSOP_USESHARP:
|
4177
|
+
# endif
|
4178
|
+
|
4179
|
+
# if !JS_HAS_DESTRUCTURING
|
4180
|
+
L_JSOP_ENUMCONSTELEM:
|
4181
|
+
# endif
|
4182
|
+
|
4183
|
+
# if !JS_HAS_XML_SUPPORT
|
4184
|
+
L_JSOP_CALLXMLNAME:
|
4185
|
+
L_JSOP_STARTXMLEXPR:
|
4186
|
+
L_JSOP_STARTXML:
|
4187
|
+
L_JSOP_DELDESC:
|
4188
|
+
L_JSOP_GETFUNNS:
|
4189
|
+
L_JSOP_XMLPI:
|
4190
|
+
L_JSOP_XMLCOMMENT:
|
4191
|
+
L_JSOP_XMLCDATA:
|
4192
|
+
L_JSOP_XMLOBJECT:
|
4193
|
+
L_JSOP_XMLELTEXPR:
|
4194
|
+
L_JSOP_XMLTAGEXPR:
|
4195
|
+
L_JSOP_TOXMLLIST:
|
4196
|
+
L_JSOP_TOXML:
|
4197
|
+
L_JSOP_ENDFILTER:
|
4198
|
+
L_JSOP_FILTER:
|
4199
|
+
L_JSOP_DESCENDANTS:
|
4200
|
+
L_JSOP_XMLNAME:
|
4201
|
+
L_JSOP_SETXMLNAME:
|
4202
|
+
L_JSOP_BINDXMLNAME:
|
4203
|
+
L_JSOP_ADDATTRVAL:
|
4204
|
+
L_JSOP_ADDATTRNAME:
|
4205
|
+
L_JSOP_TOATTRVAL:
|
4206
|
+
L_JSOP_TOATTRNAME:
|
4207
|
+
L_JSOP_QNAME:
|
4208
|
+
L_JSOP_QNAMECONST:
|
4209
|
+
L_JSOP_QNAMEPART:
|
4210
|
+
L_JSOP_ANYNAME:
|
4211
|
+
L_JSOP_DEFXMLNS:
|
4212
|
+
# endif
|
4213
|
+
#endif /* !JS_THREADED_INTERP */
|