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
@@ -1,4 +1,5 @@
|
|
1
|
-
/* -*- Mode: C++; c-basic-offset: 4; indent-tabs-mode:
|
1
|
+
/* -*- Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4 -*- */
|
2
|
+
/* vi: set ts=4 sw=4 expandtab: (add to ~/.vimrc: set modeline modelines=5) */
|
2
3
|
/* ***** BEGIN LICENSE BLOCK *****
|
3
4
|
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
4
5
|
*
|
@@ -42,196 +43,96 @@
|
|
42
43
|
#ifndef __nanojit_Fragmento__
|
43
44
|
#define __nanojit_Fragmento__
|
44
45
|
|
45
|
-
#ifdef AVMPLUS_VERBOSE
|
46
|
-
extern void drawTraceTrees(Fragmento *frago, FragmentMap * _frags, avmplus::AvmCore *core, char *fileName);
|
47
|
-
#endif
|
48
|
-
|
49
46
|
namespace nanojit
|
50
47
|
{
|
51
|
-
|
52
|
-
class Assembler;
|
53
|
-
|
54
|
-
struct PageHeader
|
55
|
-
{
|
56
|
-
struct Page *next;
|
57
|
-
};
|
58
|
-
struct Page: public PageHeader
|
59
|
-
{
|
60
|
-
union {
|
61
|
-
LIns lir[(NJ_PAGE_SIZE-sizeof(PageHeader))/sizeof(LIns)];
|
62
|
-
NIns code[(NJ_PAGE_SIZE-sizeof(PageHeader))/sizeof(NIns)];
|
63
|
-
};
|
64
|
-
};
|
65
|
-
struct AllocEntry : public avmplus::GCObject
|
66
|
-
{
|
67
|
-
Page *page;
|
68
|
-
uint32_t allocSize;
|
69
|
-
};
|
70
|
-
typedef avmplus::List<AllocEntry*,avmplus::LIST_NonGCObjects> AllocList;
|
48
|
+
struct GuardRecord;
|
71
49
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
};
|
85
|
-
|
86
|
-
struct fragstats;
|
87
|
-
/*
|
88
|
-
*
|
89
|
-
* This is the main control center for creating and managing fragments.
|
90
|
-
*/
|
91
|
-
class Fragmento : public avmplus::GCFinalizedObject
|
92
|
-
{
|
93
|
-
public:
|
94
|
-
Fragmento(AvmCore* core, uint32_t cacheSizeLog2);
|
95
|
-
~Fragmento();
|
96
|
-
|
97
|
-
void addMemory(void* firstPage, uint32_t pageCount); // gives memory to the Assembler
|
98
|
-
Assembler* assm();
|
99
|
-
AvmCore* core();
|
100
|
-
Page* pageAlloc();
|
101
|
-
void pageFree(Page* page);
|
102
|
-
void pagesRelease(PageList& list);
|
103
|
-
|
104
|
-
Fragment* getLoop(const void* ip);
|
105
|
-
Fragment* getAnchor(const void* ip);
|
106
|
-
// Remove one fragment. The caller is responsible for making sure
|
107
|
-
// that this does not destroy any resources shared with other
|
108
|
-
// fragments (such as a LirBuffer or this fragment itself as a
|
109
|
-
// jump target).
|
110
|
-
void clearFrag(const void* ip);
|
111
|
-
void clearFrags(); // clear all fragments from the cache
|
112
|
-
Fragment* getMerge(GuardRecord *lr, const void* ip);
|
113
|
-
Fragment* createBranch(SideExit *exit, const void* ip);
|
114
|
-
Fragment* newFrag(const void* ip);
|
115
|
-
Fragment* newBranch(Fragment *from, const void* ip);
|
116
|
-
|
117
|
-
verbose_only ( uint32_t pageCount(); )
|
118
|
-
verbose_only ( void dumpStats(); )
|
119
|
-
verbose_only ( void dumpRatio(const char*, BlockHist*);)
|
120
|
-
verbose_only ( void dumpFragStats(Fragment*, int level, fragstats&); )
|
121
|
-
verbose_only ( void countBlock(BlockHist*, const void* pc); )
|
122
|
-
verbose_only ( void countIL(uint32_t il, uint32_t abc); )
|
123
|
-
verbose_only( void addLabel(Fragment* f, const char *prefix, int id); )
|
124
|
-
|
125
|
-
// stats
|
126
|
-
struct
|
127
|
-
{
|
128
|
-
uint32_t pages; // pages consumed
|
129
|
-
uint32_t maxPageUse; // highwater mark of (pages-freePages)
|
130
|
-
uint32_t flushes, ilsize, abcsize, compiles, totalCompiles;
|
131
|
-
}
|
132
|
-
_stats;
|
50
|
+
/**
|
51
|
+
* Fragments are linear sequences of native code that have a single entry
|
52
|
+
* point at the start of the fragment and may have one or more exit points
|
53
|
+
*
|
54
|
+
* It may turn out that that this arrangement causes too much traffic
|
55
|
+
* between d and i-caches and that we need to carve up the structure differently.
|
56
|
+
*/
|
57
|
+
class Fragment
|
58
|
+
{
|
59
|
+
public:
|
60
|
+
Fragment(const void*
|
61
|
+
verbose_only(, uint32_t profFragID));
|
133
62
|
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
#ifdef AVMPLUS_VERBOSE
|
139
|
-
void drawTrees(char *fileName);
|
140
|
-
#endif
|
141
|
-
|
142
|
-
uint32_t cacheUsed() const { return (_stats.pages-_freePages.size())<<NJ_LOG2_PAGE_SIZE; }
|
143
|
-
uint32_t cacheUsedMax() const { return (_stats.maxPageUse)<<NJ_LOG2_PAGE_SIZE; }
|
144
|
-
void clearFragment(Fragment *f);
|
145
|
-
private:
|
146
|
-
void pagesGrow(int32_t count);
|
147
|
-
void trackPages();
|
63
|
+
NIns* code() { return _code; }
|
64
|
+
void setCode(NIns* codee) { _code = codee; }
|
65
|
+
int32_t& hits() { return _hits; }
|
66
|
+
bool isRoot() { return root == this; }
|
148
67
|
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
PageList _freePages;
|
68
|
+
Fragment* root;
|
69
|
+
LirBuffer* lirbuf;
|
70
|
+
LIns* lastIns;
|
153
71
|
|
154
|
-
|
155
|
-
|
156
|
-
|
72
|
+
const void* ip;
|
73
|
+
uint32_t recordAttempts;
|
74
|
+
NIns* fragEntry;
|
75
|
+
void* vmprivate;
|
157
76
|
|
158
|
-
|
159
|
-
|
160
|
-
|
77
|
+
// for fragment entry and exit profiling. See detailed
|
78
|
+
// how-to-use comment below.
|
79
|
+
verbose_only( LIns* loopLabel; ) // where's the loop top?
|
80
|
+
verbose_only( uint32_t profFragID; )
|
81
|
+
verbose_only( uint32_t profCount; )
|
82
|
+
verbose_only( uint32_t nStaticExits; )
|
83
|
+
verbose_only( size_t nCodeBytes; )
|
84
|
+
verbose_only( size_t nExitBytes; )
|
85
|
+
verbose_only( uint32_t guardNumberer; )
|
86
|
+
verbose_only( GuardRecord* guardsForFrag; )
|
161
87
|
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
/**
|
169
|
-
* Fragments are linear sequences of native code that have a single entry
|
170
|
-
* point at the start of the fragment and may have one or more exit points
|
171
|
-
*
|
172
|
-
* It may turn out that that this arrangement causes too much traffic
|
173
|
-
* between d and i-caches and that we need to carve up the structure differently.
|
174
|
-
*/
|
175
|
-
class Fragment : public avmplus::GCFinalizedObject
|
176
|
-
{
|
177
|
-
public:
|
178
|
-
Fragment(const void*);
|
179
|
-
~Fragment();
|
88
|
+
private:
|
89
|
+
NIns* _code; // ptr to start of code
|
90
|
+
int32_t _hits;
|
91
|
+
};
|
92
|
+
}
|
180
93
|
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
94
|
+
/*
|
95
|
+
* How to use fragment profiling
|
96
|
+
*
|
97
|
+
* Fragprofiling adds code to count how many times each fragment is
|
98
|
+
* entered, and how many times each guard (exit) is taken. Using this
|
99
|
+
* it's possible to easily find which fragments are hot, which ones
|
100
|
+
* typically exit early, etc. The fragprofiler also gathers some
|
101
|
+
* simple static info: for each fragment, the number of code bytes,
|
102
|
+
* number of exit-block bytes, and number of guards (exits).
|
103
|
+
*
|
104
|
+
* Fragments and guards are given unique IDs (FragID, GuardID) which
|
105
|
+
* are shown in debug printouts, so as to facilitate navigating from
|
106
|
+
* the accumulated statistics to the associated bits of code.
|
107
|
+
* GuardIDs are issued automatically, but FragIDs you must supply when
|
108
|
+
* calling Fragment::Fragment. Supply values >= 1, and supply a
|
109
|
+
* different value for each new fragment (doesn't matter what, they
|
110
|
+
* just have to be unique and >= 1); else
|
111
|
+
* js_FragProfiling_FragFinalizer will assert.
|
112
|
+
*
|
113
|
+
* How to use/embed:
|
114
|
+
*
|
115
|
+
* - use a debug build (one with NJ_VERBOSE). Without it, none of
|
116
|
+
* this code is compiled in.
|
117
|
+
*
|
118
|
+
* - set LC_FragProfile in the lcbits of the LogControl* object handed
|
119
|
+
* to Nanojit
|
120
|
+
*
|
121
|
+
* When enabled, Fragment::profCount is incremented every time the
|
122
|
+
* fragment is entered, and GuardRecord::profCount is incremented
|
123
|
+
* every time that guard exits. However, NJ has no way to know where
|
124
|
+
* the fragment entry/loopback point is. So you must set
|
125
|
+
* Fragment::loopLabel before running the assembler, so as to indicate
|
126
|
+
* where the fragment-entry counter increment should be placed. If
|
127
|
+
* the fragment does not naturally have a loop label then you will
|
128
|
+
* need to artificially add one.
|
129
|
+
*
|
130
|
+
* It is the embedder's problem to fish out, collate and present the
|
131
|
+
* accumulated stats at the end of the Fragment's lifetime. A
|
132
|
+
* Fragment contains stats indicating its entry count and static code
|
133
|
+
* sizes. It also has a ::guardsForFrag field, which is a linked list
|
134
|
+
* of GuardRecords, and by traversing them you can get hold of the
|
135
|
+
* exit counts.
|
136
|
+
*/
|
207
137
|
|
208
|
-
DWB(Fragment*) treeBranches;
|
209
|
-
DWB(Fragment*) branches;
|
210
|
-
DWB(Fragment*) nextbranch;
|
211
|
-
DWB(Fragment*) anchor;
|
212
|
-
DWB(Fragment*) root;
|
213
|
-
DWB(Fragment*) parent;
|
214
|
-
DWB(Fragment*) first;
|
215
|
-
DWB(Fragment*) peer;
|
216
|
-
DWB(LirBuffer*) lirbuf;
|
217
|
-
LIns* lastIns;
|
218
|
-
SideExit* spawnedFrom;
|
219
|
-
|
220
|
-
TraceKind kind;
|
221
|
-
const void* ip;
|
222
|
-
uint32_t guardCount;
|
223
|
-
uint32_t xjumpCount;
|
224
|
-
uint32_t recordAttempts;
|
225
|
-
int32_t blacklistLevel;
|
226
|
-
NIns* fragEntry;
|
227
|
-
NIns* loopEntry;
|
228
|
-
void* vmprivate;
|
229
|
-
|
230
|
-
private:
|
231
|
-
NIns* _code; // ptr to start of code
|
232
|
-
GuardRecord* _links; // code which is linked (or pending to be) to this fragment
|
233
|
-
int32_t _hits;
|
234
|
-
Page* _pages; // native code pages
|
235
|
-
};
|
236
|
-
}
|
237
138
|
#endif // __nanojit_Fragmento__
|
@@ -1,4 +1,5 @@
|
|
1
|
-
/* -*- Mode: C++; c-basic-offset: 4; indent-tabs-mode:
|
1
|
+
/* -*- Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4 -*- */
|
2
|
+
/* vi: set ts=4 sw=4 expandtab: (add to ~/.vimrc: set modeline modelines=5) */
|
2
3
|
/* ***** BEGIN LICENSE BLOCK *****
|
3
4
|
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
4
5
|
*
|
@@ -37,487 +38,403 @@
|
|
37
38
|
* ***** END LICENSE BLOCK ***** */
|
38
39
|
|
39
40
|
#include "nanojit.h"
|
40
|
-
#include <stdio.h>
|
41
|
-
#include <ctype.h>
|
42
|
-
|
43
|
-
#ifdef PERFM
|
44
|
-
#include "../vprof/vprof.h"
|
45
|
-
#endif /* PERFM */
|
46
41
|
|
47
42
|
namespace nanojit
|
48
43
|
{
|
49
44
|
using namespace avmplus;
|
50
|
-
|
45
|
+
#ifdef FEATURE_NANOJIT
|
51
46
|
|
52
|
-
|
53
|
-
#define OPDEF(op, number, operands) \
|
47
|
+
const int8_t operandCount[] = {
|
48
|
+
#define OPDEF(op, number, operands, repkind) \
|
54
49
|
operands,
|
55
|
-
#define OPDEF64(op, number, operands) \
|
50
|
+
#define OPDEF64(op, number, operands, repkind) \
|
56
51
|
operands,
|
57
52
|
#include "LIRopcode.tbl"
|
58
53
|
#undef OPDEF
|
59
54
|
#undef OPDEF64
|
60
55
|
0
|
61
|
-
|
56
|
+
};
|
62
57
|
|
63
|
-
|
64
|
-
|
58
|
+
const uint8_t repKinds[] = {
|
59
|
+
#define OPDEF(op, number, operands, repkind) \
|
60
|
+
LRK_##repkind,
|
61
|
+
#define OPDEF64(op, number, operands, repkind) \
|
62
|
+
OPDEF(op, number, operands, repkind)
|
63
|
+
#include "LIRopcode.tbl"
|
64
|
+
#undef OPDEF
|
65
|
+
#undef OPDEF64
|
66
|
+
0
|
67
|
+
};
|
65
68
|
|
66
|
-
|
67
|
-
#define OPDEF(op, number, operands) \
|
69
|
+
extern const uint8_t insSizes[] = {
|
70
|
+
#define OPDEF(op, number, operands, repkind) \
|
71
|
+
sizeof(LIns##repkind),
|
72
|
+
#define OPDEF64(op, number, operands, repkind) \
|
73
|
+
OPDEF(op, number, operands, repkind)
|
74
|
+
#include "LIRopcode.tbl"
|
75
|
+
#undef OPDEF
|
76
|
+
#undef OPDEF64
|
77
|
+
0
|
78
|
+
};
|
79
|
+
|
80
|
+
// LIR verbose specific
|
81
|
+
#ifdef NJ_VERBOSE
|
82
|
+
|
83
|
+
const char* lirNames[] = {
|
84
|
+
#define OPDEF(op, number, operands, repkind) \
|
68
85
|
#op,
|
69
|
-
#define OPDEF64(op, number, operands) \
|
86
|
+
#define OPDEF64(op, number, operands, repkind) \
|
70
87
|
#op,
|
71
88
|
#include "LIRopcode.tbl"
|
72
89
|
#undef OPDEF
|
73
90
|
#undef OPDEF64
|
74
91
|
NULL
|
75
|
-
|
92
|
+
};
|
76
93
|
|
77
|
-
|
78
|
-
|
79
|
-
|
94
|
+
#endif /* NANOJIT_VEBROSE */
|
95
|
+
|
96
|
+
// implementation
|
80
97
|
|
81
98
|
#ifdef NJ_PROFILE
|
82
|
-
|
83
|
-
|
84
|
-
|
99
|
+
// @todo fixup move to nanojit.h
|
100
|
+
#undef counter_value
|
101
|
+
#define counter_value(x) x
|
85
102
|
#endif /* NJ_PROFILE */
|
86
103
|
|
87
|
-
|
88
|
-
|
89
|
-
// LCompressedBuffer
|
90
|
-
LirBuffer::LirBuffer(Fragmento* frago, const CallInfo* functions)
|
91
|
-
: _frago(frago),
|
104
|
+
// LCompressedBuffer
|
105
|
+
LirBuffer::LirBuffer(Allocator& alloc) :
|
92
106
|
#ifdef NJ_VERBOSE
|
93
|
-
|
107
|
+
names(NULL),
|
94
108
|
#endif
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
void LirBufWriter::ensureRoom(uint32_t count)
|
161
|
-
{
|
162
|
-
NanoAssert(count * sizeof(LIns) <= MAX_SKIP_BYTES);
|
163
|
-
LInsp before = _buf->next();
|
164
|
-
LInsp after = before+count+LIR_FAR_SLOTS;
|
165
|
-
// transition to the next page?
|
166
|
-
if (!samepage(before,after))
|
167
|
-
{
|
168
|
-
// we don't want this to fail, so we always have a page in reserve
|
169
|
-
NanoAssert(_buf->_nextPage);
|
170
|
-
_buf->_unused = &_buf->_nextPage->lir[0];
|
171
|
-
// link LIR stream back to prior instruction (careful insLink relies on _unused...)
|
172
|
-
insLinkTo(LIR_skip, before-1);
|
173
|
-
_buf->_nextPage = _buf->pageAlloc();
|
174
|
-
NanoAssert(_buf->_nextPage || _buf->_noMem);
|
175
|
-
}
|
176
|
-
}
|
177
|
-
|
178
|
-
LInsp LirBufWriter::insLinkTo(LOpcode op, LInsp to)
|
179
|
-
{
|
180
|
-
LInsp l = _buf->next();
|
181
|
-
NanoAssert(samepage(l,l+LIR_FAR_SLOTS)); // must have called ensureRoom()
|
182
|
-
if (can24bReach(l,to))
|
183
|
-
{
|
184
|
-
NanoStaticAssert(LIR_nearskip == LIR_skip - 1);
|
185
|
-
NanoStaticAssert(LIR_neartramp == LIR_tramp - 1);
|
186
|
-
l->initOpcode(LOpcode(op-1)); // nearskip or neartramp
|
187
|
-
l->setimm24(to-l);
|
188
|
-
_buf->commit(1);
|
189
|
-
_buf->_stats.lir++;
|
190
|
-
}
|
191
|
-
else
|
192
|
-
{
|
193
|
-
l = insLinkToFar(op,to);
|
194
|
-
}
|
195
|
-
return l;
|
196
|
-
}
|
197
|
-
|
198
|
-
LInsp LirBufWriter::insLinkToFar(LOpcode op, LInsp to)
|
199
|
-
{
|
200
|
-
LirFarIns* ov = (LirFarIns*) _buf->next();
|
201
|
-
ov->v = to;
|
202
|
-
ov->i.initOpcode(op);
|
203
|
-
_buf->commit(LIR_FAR_SLOTS);
|
204
|
-
_buf->_stats.lir++;
|
205
|
-
|
206
|
-
NanoAssert( (LInsp)(ov+1) == _buf->next() );
|
207
|
-
return &(ov->i);
|
208
|
-
}
|
209
|
-
|
210
|
-
void LirBufWriter::makeReachable(LInsp& o, LInsp from)
|
211
|
-
{
|
212
|
-
if (o && !can8bReach(from,o))
|
213
|
-
{
|
214
|
-
if (o == _buf->sp && spref && can8bReach(from, spref)) {
|
215
|
-
o = spref;
|
216
|
-
return;
|
217
|
-
}
|
218
|
-
if (o == _buf->rp && rpref && can8bReach(from, rpref)) {
|
219
|
-
o = rpref;
|
220
|
-
return;
|
221
|
-
}
|
222
|
-
|
223
|
-
// need a trampoline to get to from
|
224
|
-
LInsp tramp = insLinkTo(LIR_tramp, o); // will produce neartramp if possible
|
225
|
-
NanoAssert( tramp->ref() == o && samepage(from,tramp) );
|
226
|
-
if (o == _buf->sp)
|
227
|
-
spref = tramp;
|
228
|
-
else if (o == _buf->rp)
|
229
|
-
rpref = tramp;
|
230
|
-
o = tramp;
|
231
|
-
}
|
232
|
-
}
|
233
|
-
|
234
|
-
void LirBufWriter::prepFor(LInsp& i1, LInsp& i2, LInsp& i3)
|
235
|
-
{
|
236
|
-
uint32_t i = 0; // count of operands
|
237
|
-
i += (i1) ? 1 : 0;
|
238
|
-
i += (i2) ? 1 : 0;
|
239
|
-
i += (i3) ? 1 : 0;
|
240
|
-
|
241
|
-
uint32_t count = (LIR_FAR_SLOTS*i)+1; // count of LIns if all operands require tramp
|
242
|
-
ensureRoom(count);
|
243
|
-
NanoAssert( samepage(_buf->next()+count,_buf->next()) );
|
244
|
-
|
245
|
-
// guaranteed space for far tramps if necc.
|
246
|
-
LInsp from = _buf->next()+count;
|
247
|
-
makeReachable(i1, from);
|
248
|
-
makeReachable(i2, from);
|
249
|
-
makeReachable(i3, from);
|
250
|
-
NanoAssert(from>i1 && from>i2 && from>i3);
|
251
|
-
}
|
252
|
-
|
253
|
-
LInsp LirBuffer::commit(uint32_t count)
|
254
|
-
{
|
255
|
-
NanoAssertMsg( samepage(_unused, _unused+count), "You need to call ensureRoom first!" );
|
256
|
-
return _unused += count;
|
257
|
-
}
|
258
|
-
|
259
|
-
uint32_t LIns::reference(LIns *r) const
|
260
|
-
{
|
261
|
-
int delta = this-r-1;
|
262
|
-
NanoAssert(isU8(delta));
|
263
|
-
return delta;
|
264
|
-
}
|
265
|
-
|
266
|
-
LIns* LIns::deref(int32_t off) const
|
267
|
-
{
|
268
|
-
LInsp i = (LInsp) this-1 - off;
|
269
|
-
while (i && i->isTramp()) {
|
270
|
-
i = i->ref();
|
109
|
+
abi(ABI_FASTCALL), state(NULL), param1(NULL), sp(NULL), rp(NULL),
|
110
|
+
_allocator(alloc)
|
111
|
+
{
|
112
|
+
clear();
|
113
|
+
}
|
114
|
+
|
115
|
+
void LirBuffer::clear()
|
116
|
+
{
|
117
|
+
// clear the stats, etc
|
118
|
+
_unused = 0;
|
119
|
+
_limit = 0;
|
120
|
+
_bytesAllocated = 0;
|
121
|
+
_stats.lir = 0;
|
122
|
+
for (int i = 0; i < NumSavedRegs; ++i)
|
123
|
+
savedRegs[i] = NULL;
|
124
|
+
chunkAlloc();
|
125
|
+
}
|
126
|
+
|
127
|
+
void LirBuffer::chunkAlloc()
|
128
|
+
{
|
129
|
+
_unused = (uintptr_t) _allocator.alloc(CHUNK_SZB);
|
130
|
+
NanoAssert(_unused != 0); // Allocator.alloc() never returns null. See Allocator.h
|
131
|
+
_limit = _unused + CHUNK_SZB;
|
132
|
+
}
|
133
|
+
|
134
|
+
int32_t LirBuffer::insCount()
|
135
|
+
{
|
136
|
+
// A LIR_skip payload is considered part of the LIR_skip, and LIR_call
|
137
|
+
// arg slots are considered part of the LIR_call.
|
138
|
+
return _stats.lir;
|
139
|
+
}
|
140
|
+
|
141
|
+
size_t LirBuffer::byteCount()
|
142
|
+
{
|
143
|
+
return _bytesAllocated - (_limit - _unused);
|
144
|
+
}
|
145
|
+
|
146
|
+
// Allocate a new page, and write the first instruction to it -- a skip
|
147
|
+
// linking to last instruction of the previous page.
|
148
|
+
void LirBuffer::moveToNewChunk(uintptr_t addrOfLastLInsOnCurrentChunk)
|
149
|
+
{
|
150
|
+
chunkAlloc();
|
151
|
+
// Link LIR stream back to prior instruction.
|
152
|
+
// Unlike all the ins*() functions, we don't call makeRoom() here
|
153
|
+
// because we know we have enough space, having just started a new
|
154
|
+
// page.
|
155
|
+
LInsSk* insSk = (LInsSk*)_unused;
|
156
|
+
LIns* ins = insSk->getLIns();
|
157
|
+
ins->initLInsSk((LInsp)addrOfLastLInsOnCurrentChunk);
|
158
|
+
_unused += sizeof(LInsSk);
|
159
|
+
verbose_only(_stats.lir++);
|
160
|
+
}
|
161
|
+
|
162
|
+
// Make room for a single instruction.
|
163
|
+
uintptr_t LirBuffer::makeRoom(size_t szB)
|
164
|
+
{
|
165
|
+
// Make sure the size is ok
|
166
|
+
NanoAssert(0 == szB % sizeof(void*));
|
167
|
+
NanoAssert(sizeof(LIns) <= szB && szB <= MAX_LINS_SZB);
|
168
|
+
NanoAssert(_unused < _limit);
|
169
|
+
|
170
|
+
// If the instruction won't fit on the current chunk, get a new chunk
|
171
|
+
if (_unused + szB > _limit) {
|
172
|
+
uintptr_t addrOfLastLInsOnChunk = _unused - sizeof(LIns);
|
173
|
+
moveToNewChunk(addrOfLastLInsOnChunk);
|
271
174
|
}
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
LInsp LirBufWriter::insStorei(LInsp val, LInsp base, int32_t d)
|
291
|
-
{
|
292
|
-
if (!isS8(d)) {
|
293
|
-
return insStore(val, base, insImm(d));
|
294
|
-
}
|
295
|
-
|
296
|
-
LOpcode op = val->isQuad() ? LIR_stqi : LIR_sti;
|
297
|
-
NanoAssert(val && base && isS8(d));
|
298
|
-
LInsp u3=0;
|
299
|
-
prepFor(val, base, u3);
|
300
|
-
LInsp l = _buf->next();
|
301
|
-
l->initOpcode(op);
|
302
|
-
l->setOprnd1(val);
|
303
|
-
l->setOprnd2(base);
|
304
|
-
l->setDisp(int8_t(d));
|
305
|
-
_buf->commit(1);
|
306
|
-
_buf->_stats.lir++;
|
307
|
-
return l;
|
308
|
-
}
|
309
|
-
|
310
|
-
LInsp LirBufWriter::ins0(LOpcode op)
|
311
|
-
{
|
312
|
-
ensureRoom(1);
|
313
|
-
LirBuffer *b = this->_buf;
|
314
|
-
LInsp l = b->next();
|
315
|
-
l->initOpcode(op);
|
316
|
-
b->commit(1);
|
317
|
-
b->_stats.lir++;
|
318
|
-
return l;
|
319
|
-
}
|
320
|
-
|
321
|
-
LInsp LirBufWriter::ins1(LOpcode op, LInsp o1)
|
322
|
-
{
|
323
|
-
LInsp u2=0,u3=0;
|
324
|
-
prepFor(o1,u2,u3);
|
325
|
-
LInsp l = _buf->next();
|
326
|
-
l->initOpcode(op);
|
327
|
-
l->setOprnd1(o1);
|
328
|
-
_buf->commit(1);
|
329
|
-
_buf->_stats.lir++;
|
330
|
-
return l;
|
331
|
-
}
|
332
|
-
|
333
|
-
LInsp LirBufWriter::ins2(LOpcode op, LInsp o1, LInsp o2)
|
334
|
-
{
|
335
|
-
LInsp u3=0;
|
336
|
-
prepFor(o1,o2,u3);
|
337
|
-
LInsp l = _buf->next();
|
338
|
-
l->initOpcode(op);
|
339
|
-
l->setOprnd1(o1);
|
340
|
-
l->setOprnd2(o2);
|
341
|
-
_buf->commit(1);
|
342
|
-
_buf->_stats.lir++;
|
343
|
-
return l;
|
344
|
-
}
|
345
|
-
|
346
|
-
LInsp LirBufWriter::insLoad(LOpcode op, LInsp base, LInsp d)
|
347
|
-
{
|
348
|
-
return ins2(op,base,d);
|
349
|
-
}
|
350
|
-
|
351
|
-
LInsp LirBufWriter::insGuard(LOpcode op, LInsp c, LInsp data)
|
352
|
-
{
|
353
|
-
return ins2(op, c, data);
|
354
|
-
}
|
355
|
-
|
356
|
-
LInsp LirBufWriter::insBranch(LOpcode op, LInsp condition, LInsp toLabel)
|
357
|
-
{
|
358
|
-
if (!toLabel)
|
359
|
-
toLabel = insFar(LIR_tramp,0); //empty tramp
|
360
|
-
if (!condition) {
|
361
|
-
// unconditional, just point to something
|
362
|
-
condition = toLabel;
|
175
|
+
|
176
|
+
// We now know that we are on a chunk that has the requested amount of
|
177
|
+
// room: record the starting address of the requested space and bump
|
178
|
+
// the pointer.
|
179
|
+
uintptr_t startOfRoom = _unused;
|
180
|
+
_unused += szB;
|
181
|
+
verbose_only(_stats.lir++); // count the instruction
|
182
|
+
|
183
|
+
// If there's no more space on this chunk, move to a new one.
|
184
|
+
// (This will only occur if the asked-for size filled up exactly to
|
185
|
+
// the end of the chunk.) This ensures that next time we enter this
|
186
|
+
// function, _unused won't be pointing one byte past the end of
|
187
|
+
// the chunk, which would break everything.
|
188
|
+
if (_unused >= _limit) {
|
189
|
+
// Check we used exactly the remaining space
|
190
|
+
NanoAssert(_unused == _limit);
|
191
|
+
uintptr_t addrOfLastLInsOnChunk = _unused - sizeof(LIns);
|
192
|
+
moveToNewChunk(addrOfLastLInsOnChunk);
|
363
193
|
}
|
364
|
-
|
365
|
-
|
194
|
+
|
195
|
+
// Make sure it's word-aligned.
|
196
|
+
NanoAssert(0 == startOfRoom % sizeof(void*));
|
197
|
+
return startOfRoom;
|
198
|
+
}
|
199
|
+
|
200
|
+
LInsp LirBufWriter::insStorei(LInsp val, LInsp base, int32_t d)
|
201
|
+
{
|
202
|
+
LOpcode op = val->isQuad() ? LIR_stqi : LIR_sti;
|
203
|
+
LInsSti* insSti = (LInsSti*)_buf->makeRoom(sizeof(LInsSti));
|
204
|
+
LIns* ins = insSti->getLIns();
|
205
|
+
ins->initLInsSti(op, val, base, d);
|
206
|
+
return ins;
|
207
|
+
}
|
208
|
+
|
209
|
+
LInsp LirBufWriter::ins0(LOpcode op)
|
210
|
+
{
|
211
|
+
LInsOp0* insOp0 = (LInsOp0*)_buf->makeRoom(sizeof(LInsOp0));
|
212
|
+
LIns* ins = insOp0->getLIns();
|
213
|
+
ins->initLInsOp0(op);
|
214
|
+
return ins;
|
215
|
+
}
|
216
|
+
|
217
|
+
LInsp LirBufWriter::ins1(LOpcode op, LInsp o1)
|
218
|
+
{
|
219
|
+
LInsOp1* insOp1 = (LInsOp1*)_buf->makeRoom(sizeof(LInsOp1));
|
220
|
+
LIns* ins = insOp1->getLIns();
|
221
|
+
ins->initLInsOp1(op, o1);
|
222
|
+
return ins;
|
223
|
+
}
|
224
|
+
|
225
|
+
LInsp LirBufWriter::ins2(LOpcode op, LInsp o1, LInsp o2)
|
226
|
+
{
|
227
|
+
LInsOp2* insOp2 = (LInsOp2*)_buf->makeRoom(sizeof(LInsOp2));
|
228
|
+
LIns* ins = insOp2->getLIns();
|
229
|
+
ins->initLInsOp2(op, o1, o2);
|
230
|
+
return ins;
|
231
|
+
}
|
232
|
+
|
233
|
+
LInsp LirBufWriter::ins3(LOpcode op, LInsp o1, LInsp o2, LInsp o3)
|
234
|
+
{
|
235
|
+
LInsOp3* insOp3 = (LInsOp3*)_buf->makeRoom(sizeof(LInsOp3));
|
236
|
+
LIns* ins = insOp3->getLIns();
|
237
|
+
ins->initLInsOp3(op, o1, o2, o3);
|
238
|
+
return ins;
|
239
|
+
}
|
240
|
+
|
241
|
+
LInsp LirBufWriter::insLoad(LOpcode op, LInsp base, int32_t d)
|
242
|
+
{
|
243
|
+
LInsLd* insLd = (LInsLd*)_buf->makeRoom(sizeof(LInsLd));
|
244
|
+
LIns* ins = insLd->getLIns();
|
245
|
+
ins->initLInsLd(op, base, d);
|
246
|
+
return ins;
|
247
|
+
}
|
248
|
+
|
249
|
+
LInsp LirBufWriter::insGuard(LOpcode op, LInsp c, GuardRecord *gr)
|
250
|
+
{
|
251
|
+
debug_only( if (LIR_x == op || LIR_xbarrier == op) NanoAssert(!c); )
|
252
|
+
return ins2(op, c, (LIns*)gr);
|
253
|
+
}
|
254
|
+
|
255
|
+
LInsp LirBufWriter::insBranch(LOpcode op, LInsp condition, LInsp toLabel)
|
256
|
+
{
|
257
|
+
NanoAssert((op == LIR_j && !condition) ||
|
258
|
+
((op == LIR_jf || op == LIR_jt) && condition));
|
259
|
+
return ins2(op, condition, toLabel);
|
260
|
+
}
|
366
261
|
|
367
262
|
LInsp LirBufWriter::insAlloc(int32_t size)
|
368
263
|
{
|
369
264
|
size = (size+3)>>2; // # of required 32bit words
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
l->i.imm16 = uint16_t(size);
|
375
|
-
_buf->commit(1);
|
376
|
-
_buf->_stats.lir++;
|
377
|
-
return l;
|
265
|
+
LInsI* insI = (LInsI*)_buf->makeRoom(sizeof(LInsI));
|
266
|
+
LIns* ins = insI->getLIns();
|
267
|
+
ins->initLInsI(LIR_alloc, size);
|
268
|
+
return ins;
|
378
269
|
}
|
379
270
|
|
380
271
|
LInsp LirBufWriter::insParam(int32_t arg, int32_t kind)
|
381
272
|
{
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
l->initOpcode(LIR_param);
|
386
|
-
NanoAssert(isU8(arg) && isU8(kind));
|
387
|
-
l->c.imm8a = arg;
|
388
|
-
l->c.imm8b = kind;
|
273
|
+
LInsP* insP = (LInsP*)_buf->makeRoom(sizeof(LInsP));
|
274
|
+
LIns* ins = insP->getLIns();
|
275
|
+
ins->initLInsP(arg, kind);
|
389
276
|
if (kind) {
|
390
277
|
NanoAssert(arg < NumSavedRegs);
|
391
|
-
|
392
|
-
b->explicitSavedRegs = true;
|
278
|
+
_buf->savedRegs[arg] = ins;
|
393
279
|
}
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
280
|
+
return ins;
|
281
|
+
}
|
282
|
+
|
283
|
+
LInsp LirBufWriter::insImm(int32_t imm)
|
284
|
+
{
|
285
|
+
LInsI* insI = (LInsI*)_buf->makeRoom(sizeof(LInsI));
|
286
|
+
LIns* ins = insI->getLIns();
|
287
|
+
ins->initLInsI(LIR_int, imm);
|
288
|
+
return ins;
|
289
|
+
}
|
290
|
+
|
291
|
+
LInsp LirBufWriter::insImmq(uint64_t imm)
|
292
|
+
{
|
293
|
+
LInsI64* insI64 = (LInsI64*)_buf->makeRoom(sizeof(LInsI64));
|
294
|
+
LIns* ins = insI64->getLIns();
|
295
|
+
ins->initLInsI64(LIR_quad, imm);
|
296
|
+
return ins;
|
297
|
+
}
|
298
|
+
|
299
|
+
LInsp LirBufWriter::insImmf(double d)
|
300
|
+
{
|
301
|
+
LInsI64* insI64 = (LInsI64*)_buf->makeRoom(sizeof(LInsI64));
|
302
|
+
LIns* ins = insI64->getLIns();
|
303
|
+
union {
|
304
|
+
double d;
|
305
|
+
uint64_t q;
|
306
|
+
} u;
|
307
|
+
u.d = d;
|
308
|
+
ins->initLInsI64(LIR_float, u.q);
|
309
|
+
return ins;
|
310
|
+
}
|
311
|
+
|
312
|
+
LInsp LirBufWriter::insSkip(size_t payload_szB)
|
313
|
+
{
|
314
|
+
// First, round up payload_szB to a multiple of the word size. To
|
315
|
+
// ensure that the rounding up won't cause it to exceed
|
316
|
+
// NJ_MAX_SKIP_PAYLOAD_SZB, NJ_MAX_SKIP_PAYLOAD_SZB must also be a
|
317
|
+
// multiple of the word size, which we check.
|
318
|
+
payload_szB = alignUp(payload_szB, sizeof(void*));
|
319
|
+
NanoAssert(0 == LirBuffer::MAX_SKIP_PAYLOAD_SZB % sizeof(void*));
|
320
|
+
NanoAssert(sizeof(void*) <= payload_szB && payload_szB <= LirBuffer::MAX_SKIP_PAYLOAD_SZB);
|
321
|
+
|
322
|
+
uintptr_t payload = _buf->makeRoom(payload_szB + sizeof(LInsSk));
|
323
|
+
uintptr_t prevLInsAddr = payload - sizeof(LIns);
|
324
|
+
LInsSk* insSk = (LInsSk*)(payload + payload_szB);
|
325
|
+
LIns* ins = insSk->getLIns();
|
326
|
+
// not sure what we want to assert here since chunks aren't pages anymore
|
327
|
+
//NanoAssert(prevLInsAddr >= pageDataStart(prevLInsAddr));
|
328
|
+
//NanoAssert(samepage(prevLInsAddr, insSk));
|
329
|
+
ins->initLInsSk((LInsp)prevLInsAddr);
|
330
|
+
return ins;
|
331
|
+
}
|
332
|
+
|
333
|
+
// Reads the next non-skip instruction.
|
334
|
+
LInsp LirReader::read()
|
335
|
+
{
|
336
|
+
NanoAssert(_i);
|
337
|
+
LInsp cur = _i;
|
338
|
+
uintptr_t i = uintptr_t(cur);
|
339
|
+
LOpcode iop = ((LInsp)i)->opcode();
|
340
|
+
|
341
|
+
// We pass over skip instructions below. Also, the last instruction
|
342
|
+
// for a fragment shouldn't be a skip(*). Therefore we shouldn't see
|
343
|
+
// a skip here.
|
344
|
+
//
|
345
|
+
// (*) Actually, if the last *inserted* instruction exactly fills up a
|
346
|
+
// page, a new page will be created, and thus the last *written*
|
347
|
+
// instruction will be a skip -- the one needed for the cross-page
|
348
|
+
// link. But the last *inserted* instruction is what is recorded and
|
349
|
+
// used to initialise each LirReader, and that is what is seen here,
|
350
|
+
// and therefore this assertion holds.
|
351
|
+
NanoAssert(iop != LIR_skip);
|
352
|
+
|
353
|
+
do
|
354
|
+
{
|
355
|
+
// Nb: this switch is table-driven (because sizeof_LInsXYZ() is
|
356
|
+
// table-driven) in most cases to avoid branch mispredictions --
|
357
|
+
// if we do a vanilla switch on the iop or LInsRepKind the extra
|
358
|
+
// branch mispredictions cause a small but noticeable slowdown.
|
359
|
+
switch (iop)
|
360
|
+
{
|
361
|
+
default:
|
362
|
+
i -= insSizes[((LInsp)i)->opcode()];
|
363
|
+
break;
|
364
|
+
|
365
|
+
case LIR_icall:
|
366
|
+
case LIR_fcall:
|
367
|
+
case LIR_qcall: {
|
368
|
+
int argc = ((LInsp)i)->argc();
|
369
|
+
i -= sizeof(LInsC); // step over the instruction
|
370
|
+
i -= argc*sizeof(LInsp); // step over the arguments
|
371
|
+
break;
|
372
|
+
}
|
373
|
+
|
374
|
+
case LIR_skip:
|
375
|
+
// Ignore the skip, move onto its predecessor.
|
376
|
+
NanoAssert(((LInsp)i)->prevLIns() != (LInsp)i);
|
377
|
+
i = uintptr_t(((LInsp)i)->prevLIns());
|
488
378
|
break;
|
489
379
|
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
380
|
+
case LIR_start:
|
381
|
+
// Once we hit here, this method shouldn't be called again.
|
382
|
+
// The assertion at the top of this method checks this.
|
383
|
+
_i = 0;
|
384
|
+
return cur;
|
385
|
+
}
|
386
|
+
iop = ((LInsp)i)->opcode();
|
387
|
+
}
|
388
|
+
while (LIR_skip == iop);
|
389
|
+
_i = (LInsp)i;
|
390
|
+
return cur;
|
391
|
+
}
|
392
|
+
|
393
|
+
// This is never called, but that's ok because it contains only static
|
394
|
+
// assertions.
|
395
|
+
void LIns::staticSanityCheck()
|
396
|
+
{
|
397
|
+
// LIns must be word-sized.
|
398
|
+
NanoStaticAssert(sizeof(LIns) == 1*sizeof(void*));
|
399
|
+
|
400
|
+
// LInsXYZ have expected sizes too.
|
401
|
+
NanoStaticAssert(sizeof(LInsOp0) == 1*sizeof(void*));
|
402
|
+
NanoStaticAssert(sizeof(LInsOp1) == 2*sizeof(void*));
|
403
|
+
NanoStaticAssert(sizeof(LInsOp2) == 3*sizeof(void*));
|
404
|
+
NanoStaticAssert(sizeof(LInsOp3) == 4*sizeof(void*));
|
405
|
+
NanoStaticAssert(sizeof(LInsLd) == 3*sizeof(void*));
|
406
|
+
NanoStaticAssert(sizeof(LInsSti) == 4*sizeof(void*));
|
407
|
+
NanoStaticAssert(sizeof(LInsSk) == 2*sizeof(void*));
|
408
|
+
NanoStaticAssert(sizeof(LInsC) == 3*sizeof(void*));
|
409
|
+
NanoStaticAssert(sizeof(LInsP) == 2*sizeof(void*));
|
410
|
+
NanoStaticAssert(sizeof(LInsI) == 2*sizeof(void*));
|
411
|
+
#if defined NANOJIT_64BIT
|
412
|
+
NanoStaticAssert(sizeof(LInsI64) == 2*sizeof(void*));
|
413
|
+
#else
|
414
|
+
NanoStaticAssert(sizeof(LInsI64) == 3*sizeof(void*));
|
415
|
+
#endif
|
416
|
+
|
417
|
+
// oprnd_1 must be in the same position in LIns{Op1,Op2,Op3,Ld,Sti}
|
418
|
+
// because oprnd1() is used for all of them.
|
419
|
+
NanoStaticAssert( (offsetof(LInsOp1, ins) - offsetof(LInsOp1, oprnd_1)) ==
|
420
|
+
(offsetof(LInsOp2, ins) - offsetof(LInsOp2, oprnd_1)) );
|
421
|
+
NanoStaticAssert( (offsetof(LInsOp2, ins) - offsetof(LInsOp2, oprnd_1)) ==
|
422
|
+
(offsetof(LInsOp3, ins) - offsetof(LInsOp3, oprnd_1)) );
|
423
|
+
NanoStaticAssert( (offsetof(LInsOp3, ins) - offsetof(LInsOp3, oprnd_1)) ==
|
424
|
+
(offsetof(LInsLd, ins) - offsetof(LInsLd, oprnd_1)) );
|
425
|
+
NanoStaticAssert( (offsetof(LInsLd, ins) - offsetof(LInsLd, oprnd_1)) ==
|
426
|
+
(offsetof(LInsSti, ins) - offsetof(LInsSti, oprnd_1)) );
|
427
|
+
|
428
|
+
// oprnd_2 must be in the same position in LIns{Op2,Op3,Sti}
|
429
|
+
// because oprnd2() is used for both of them.
|
430
|
+
NanoStaticAssert( (offsetof(LInsOp2, ins) - offsetof(LInsOp2, oprnd_2)) ==
|
431
|
+
(offsetof(LInsOp3, ins) - offsetof(LInsOp3, oprnd_2)) );
|
432
|
+
NanoStaticAssert( (offsetof(LInsOp3, ins) - offsetof(LInsOp3, oprnd_2)) ==
|
433
|
+
(offsetof(LInsSti, ins) - offsetof(LInsSti, oprnd_2)) );
|
434
|
+
}
|
435
|
+
|
436
|
+
bool LIns::isFloat() const {
|
437
|
+
switch (opcode()) {
|
521
438
|
default:
|
522
439
|
return false;
|
523
440
|
case LIR_fadd:
|
@@ -526,226 +443,11 @@ namespace nanojit
|
|
526
443
|
case LIR_fdiv:
|
527
444
|
case LIR_fneg:
|
528
445
|
case LIR_fcall:
|
529
|
-
case LIR_fcalli:
|
530
446
|
case LIR_i2f:
|
531
447
|
case LIR_u2f:
|
532
448
|
return true;
|
533
449
|
}
|
534
450
|
}
|
535
|
-
|
536
|
-
bool LIns::isCmp() const {
|
537
|
-
return nanojit::isCmp(u.code);
|
538
|
-
}
|
539
|
-
|
540
|
-
bool LIns::isCond() const {
|
541
|
-
return nanojit::isCond(u.code);
|
542
|
-
}
|
543
|
-
|
544
|
-
bool LIns::isQuad() const {
|
545
|
-
#ifdef AVMPLUS_64BIT
|
546
|
-
// callh in 64bit cpu's means a call that returns an int64 in a single register
|
547
|
-
return (u.code & LIR64) != 0 || u.code == LIR_callh;
|
548
|
-
#else
|
549
|
-
// callh in 32bit cpu's means the 32bit MSW of an int64 result in 2 registers
|
550
|
-
return (u.code & LIR64) != 0;
|
551
|
-
#endif
|
552
|
-
}
|
553
|
-
|
554
|
-
bool LIns::isconstval(int32_t val) const
|
555
|
-
{
|
556
|
-
return isconst() && constval()==val;
|
557
|
-
}
|
558
|
-
|
559
|
-
bool LIns::isconstq() const
|
560
|
-
{
|
561
|
-
return isop(LIR_quad);
|
562
|
-
}
|
563
|
-
|
564
|
-
bool LIns::isconstp() const
|
565
|
-
{
|
566
|
-
#ifdef AVMPLUS_64BIT
|
567
|
-
return isconstq();
|
568
|
-
#else
|
569
|
-
return isconst();
|
570
|
-
#endif
|
571
|
-
}
|
572
|
-
|
573
|
-
bool FASTCALL isCse(LOpcode op) {
|
574
|
-
op = LOpcode(op & ~LIR64);
|
575
|
-
return op >= LIR_ldcs && op <= LIR_uge;
|
576
|
-
}
|
577
|
-
|
578
|
-
bool LIns::isCse(const CallInfo *functions) const
|
579
|
-
{
|
580
|
-
return nanojit::isCse(u.code) || (isCall() && callInfo()->_cse);
|
581
|
-
}
|
582
|
-
|
583
|
-
void LIns::setimm16(int32_t x)
|
584
|
-
{
|
585
|
-
NanoAssert(isS16(x));
|
586
|
-
i.imm16 = int16_t(x);
|
587
|
-
}
|
588
|
-
|
589
|
-
void LIns::setimm24(int32_t x)
|
590
|
-
{
|
591
|
-
NanoAssert(isS24(x));
|
592
|
-
t.imm24 = x;
|
593
|
-
}
|
594
|
-
|
595
|
-
void LIns::setresv(uint32_t resv)
|
596
|
-
{
|
597
|
-
NanoAssert(isU8(resv));
|
598
|
-
g.resv = resv;
|
599
|
-
}
|
600
|
-
|
601
|
-
void LIns::initOpcode(LOpcode op)
|
602
|
-
{
|
603
|
-
i.code = op;
|
604
|
-
i.imm16 = 0;
|
605
|
-
i.resv = 0;
|
606
|
-
}
|
607
|
-
|
608
|
-
void LIns::setOprnd1(LInsp r)
|
609
|
-
{
|
610
|
-
u.oprnd_1 = reference(r);
|
611
|
-
}
|
612
|
-
|
613
|
-
void LIns::setOprnd2(LInsp r)
|
614
|
-
{
|
615
|
-
u.oprnd_2 = reference(r);
|
616
|
-
}
|
617
|
-
|
618
|
-
void LIns::setOprnd3(LInsp r)
|
619
|
-
{
|
620
|
-
u.oprnd_3 = reference(r);
|
621
|
-
}
|
622
|
-
|
623
|
-
void LIns::setDisp(int8_t d)
|
624
|
-
{
|
625
|
-
sti.disp = d;
|
626
|
-
}
|
627
|
-
|
628
|
-
LIns **LIns::targetAddr() {
|
629
|
-
NanoAssert(isBranch());
|
630
|
-
LInsp i = (LInsp) this-1 - u.oprnd_2;
|
631
|
-
NanoAssert(i->isTramp());
|
632
|
-
LInsp ref;
|
633
|
-
while ((ref=i->ref()) != 0 && ref->isTramp())
|
634
|
-
i = ref;
|
635
|
-
NanoAssert(i->isop(LIR_tramp));
|
636
|
-
LirFarIns* ov = (LirFarIns*)(i-LIR_FAR_SLOTS+1);
|
637
|
-
return &(ov->v);
|
638
|
-
}
|
639
|
-
|
640
|
-
void LIns::target(LInsp label) {
|
641
|
-
NanoAssert(label && label->isop(LIR_label));
|
642
|
-
*(targetAddr()) = label;
|
643
|
-
}
|
644
|
-
|
645
|
-
LInsp LIns::getTarget()
|
646
|
-
{
|
647
|
-
NanoAssert(isBranch());
|
648
|
-
return oprnd2();
|
649
|
-
}
|
650
|
-
|
651
|
-
LInsp LIns::oprnd1() const
|
652
|
-
{
|
653
|
-
return deref(u.oprnd_1);
|
654
|
-
}
|
655
|
-
|
656
|
-
LInsp LIns::oprnd2() const
|
657
|
-
{
|
658
|
-
return deref(u.oprnd_2);
|
659
|
-
}
|
660
|
-
|
661
|
-
LInsp LIns::oprnd3() const
|
662
|
-
{
|
663
|
-
return deref(u.oprnd_3);
|
664
|
-
}
|
665
|
-
|
666
|
-
void *LIns::payload() const
|
667
|
-
{
|
668
|
-
NanoAssert(opcode()==LIR_skip || opcode()==LIR_nearskip);
|
669
|
-
return (void*) (ref()+1);
|
670
|
-
}
|
671
|
-
|
672
|
-
LIns* LIns::ref() const
|
673
|
-
{
|
674
|
-
LIns const *r = 0;
|
675
|
-
if (t.code&1)
|
676
|
-
r = this + t.imm24;
|
677
|
-
else
|
678
|
-
{
|
679
|
-
LirFarIns* l = (LirFarIns*)(this-LIR_FAR_SLOTS+1);
|
680
|
-
r = l->v;
|
681
|
-
}
|
682
|
-
return (const LInsp)r;
|
683
|
-
}
|
684
|
-
|
685
|
-
int32_t LIns::imm32() const
|
686
|
-
{
|
687
|
-
LirImm32Ins* l = (LirImm32Ins*)(this-LIR_IMM32_SLOTS+1);
|
688
|
-
return l->v;
|
689
|
-
}
|
690
|
-
|
691
|
-
uint64_t LIns::constvalq() const
|
692
|
-
{
|
693
|
-
LirImm64Ins* l = (LirImm64Ins*)(this-LIR_IMM64_SLOTS+1);
|
694
|
-
#ifdef AVMPLUS_UNALIGNED_ACCESS
|
695
|
-
int* ptr = (int*)l->v;
|
696
|
-
return *(const uint64_t*)ptr;
|
697
|
-
#else
|
698
|
-
union { uint64_t tmp; int32_t dst[2]; } u;
|
699
|
-
#ifdef AVMPLUS_BIG_ENDIAN
|
700
|
-
u.dst[0] = l->v[1];
|
701
|
-
u.dst[1] = l->v[0];
|
702
|
-
#else
|
703
|
-
u.dst[0] = l->v[0];
|
704
|
-
u.dst[1] = l->v[1];
|
705
|
-
#endif
|
706
|
-
return u.tmp;
|
707
|
-
#endif
|
708
|
-
}
|
709
|
-
|
710
|
-
double LIns::constvalf() const
|
711
|
-
{
|
712
|
-
LirImm64Ins* l = (LirImm64Ins*)(this-LIR_IMM64_SLOTS+1);
|
713
|
-
NanoAssert(isconstq());
|
714
|
-
#ifdef AVMPLUS_UNALIGNED_ACCESS
|
715
|
-
int* ptr = (int*)l->v;
|
716
|
-
return *(const double*)ptr;
|
717
|
-
#else
|
718
|
-
union { uint32_t dst[2]; double tmpf; } u;
|
719
|
-
#ifdef AVMPLUS_BIG_ENDIAN
|
720
|
-
u.dst[0] = l->v[1];
|
721
|
-
u.dst[1] = l->v[0];
|
722
|
-
#else
|
723
|
-
u.dst[0] = l->v[0];
|
724
|
-
u.dst[1] = l->v[1];
|
725
|
-
#endif
|
726
|
-
return u.tmpf;
|
727
|
-
#endif
|
728
|
-
}
|
729
|
-
|
730
|
-
size_t LIns::callInsWords() const
|
731
|
-
{
|
732
|
-
return LIR_CALL_SLOTS + argwords(argc());
|
733
|
-
}
|
734
|
-
|
735
|
-
const CallInfo* LIns::callInfo() const
|
736
|
-
{
|
737
|
-
LirCallIns* l = (LirCallIns*)(this-LIR_CALL_SLOTS+1);
|
738
|
-
return l->ci;
|
739
|
-
}
|
740
|
-
|
741
|
-
// index args in r-l order. arg(0) is rightmost arg
|
742
|
-
LIns* LIns::arg(uint32_t i)
|
743
|
-
{
|
744
|
-
NanoAssert(i < argc());
|
745
|
-
LirCallIns* l = (LirCallIns*)(this-LIR_CALL_SLOTS+1);
|
746
|
-
uint8_t* offs = (uint8_t*)l - (i+1);
|
747
|
-
return deref(*offs);
|
748
|
-
}
|
749
451
|
|
750
452
|
LIns* LirWriter::ins2i(LOpcode v, LIns* oprnd1, int32_t imm)
|
751
453
|
{
|
@@ -755,12 +457,11 @@ namespace nanojit
|
|
755
457
|
bool insIsS16(LInsp i)
|
756
458
|
{
|
757
459
|
if (i->isconst()) {
|
758
|
-
int c = i->
|
460
|
+
int c = i->imm32();
|
759
461
|
return isS16(c);
|
760
462
|
}
|
761
463
|
if (i->isop(LIR_cmov) || i->isop(LIR_qcmov)) {
|
762
|
-
|
763
|
-
return insIsS16(vals->oprnd1()) && insIsS16(vals->oprnd2());
|
464
|
+
return insIsS16(i->oprnd2()) && insIsS16(i->oprnd3());
|
764
465
|
}
|
765
466
|
if (i->isCmp())
|
766
467
|
return true;
|
@@ -768,1411 +469,1559 @@ namespace nanojit
|
|
768
469
|
return false;
|
769
470
|
}
|
770
471
|
|
771
|
-
|
772
|
-
|
773
|
-
|
774
|
-
|
775
|
-
|
776
|
-
|
777
|
-
|
778
|
-
|
779
|
-
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
472
|
+
LIns* ExprFilter::ins1(LOpcode v, LIns* i)
|
473
|
+
{
|
474
|
+
switch (v) {
|
475
|
+
case LIR_qlo:
|
476
|
+
if (i->isconstq())
|
477
|
+
return insImm(i->imm64_0());
|
478
|
+
if (i->isop(LIR_qjoin))
|
479
|
+
return i->oprnd1();
|
480
|
+
break;
|
481
|
+
case LIR_qhi:
|
482
|
+
if (i->isconstq())
|
483
|
+
return insImm(i->imm64_1());
|
484
|
+
if (i->isop(LIR_qjoin))
|
485
|
+
return i->oprnd2();
|
486
|
+
break;
|
487
|
+
case LIR_not:
|
488
|
+
if (i->isconst())
|
489
|
+
return insImm(~i->imm32());
|
490
|
+
involution:
|
491
|
+
if (v == i->opcode())
|
492
|
+
return i->oprnd1();
|
493
|
+
break;
|
494
|
+
case LIR_neg:
|
495
|
+
if (i->isconst())
|
496
|
+
return insImm(-i->imm32());
|
497
|
+
if (i->isop(LIR_sub)) // -(a-b) = b-a
|
498
|
+
return out->ins2(LIR_sub, i->oprnd2(), i->oprnd1());
|
499
|
+
goto involution;
|
500
|
+
case LIR_fneg:
|
501
|
+
if (i->isconstq())
|
502
|
+
return insImmf(-i->imm64f());
|
503
|
+
if (i->isop(LIR_fsub))
|
504
|
+
return out->ins2(LIR_fsub, i->oprnd2(), i->oprnd1());
|
505
|
+
goto involution;
|
506
|
+
case LIR_i2f:
|
507
|
+
if (i->isconst())
|
508
|
+
return insImmf(i->imm32());
|
509
|
+
break;
|
510
|
+
case LIR_u2f:
|
511
|
+
if (i->isconst())
|
512
|
+
return insImmf(uint32_t(i->imm32()));
|
513
|
+
break;
|
514
|
+
default:
|
515
|
+
;
|
516
|
+
}
|
517
|
+
|
518
|
+
return out->ins1(v, i);
|
519
|
+
}
|
520
|
+
|
521
|
+
LIns* ExprFilter::ins2(LOpcode v, LIns* oprnd1, LIns* oprnd2)
|
522
|
+
{
|
523
|
+
NanoAssert(oprnd1 && oprnd2);
|
524
|
+
if (oprnd1 == oprnd2)
|
525
|
+
{
|
526
|
+
switch (v) {
|
527
|
+
case LIR_xor:
|
528
|
+
case LIR_sub:
|
529
|
+
case LIR_ult:
|
530
|
+
case LIR_ugt:
|
531
|
+
case LIR_gt:
|
532
|
+
case LIR_lt:
|
533
|
+
return insImm(0);
|
534
|
+
case LIR_or:
|
535
|
+
case LIR_and:
|
536
|
+
return oprnd1;
|
537
|
+
case LIR_le:
|
538
|
+
case LIR_ule:
|
539
|
+
case LIR_ge:
|
540
|
+
case LIR_uge:
|
541
|
+
// x <= x == 1; x >= x == 1
|
542
|
+
return insImm(1);
|
543
|
+
default:
|
544
|
+
;
|
803
545
|
}
|
804
|
-
}
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
|
809
|
-
|
810
|
-
|
811
|
-
|
812
|
-
|
813
|
-
|
814
|
-
|
815
|
-
|
816
|
-
|
817
|
-
|
818
|
-
|
819
|
-
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
|
824
|
-
|
825
|
-
|
826
|
-
|
827
|
-
|
828
|
-
|
829
|
-
|
830
|
-
|
831
|
-
|
832
|
-
|
833
|
-
|
834
|
-
|
835
|
-
|
836
|
-
|
837
|
-
|
838
|
-
|
839
|
-
|
840
|
-
|
841
|
-
|
842
|
-
|
843
|
-
|
844
|
-
}
|
845
|
-
if (v == LIR_eq)
|
846
|
-
return insImm(c1 == c2);
|
847
|
-
if (v == LIR_ov)
|
848
|
-
return insImm((c2 != 0) && ((c1 + c2) <= c1));
|
849
|
-
if (v == LIR_cs)
|
850
|
-
return insImm((c2 != 0) && ((uint32_t(c1) + uint32_t(c2)) <= uint32_t(c1)));
|
851
|
-
if (v == LIR_lt)
|
852
|
-
return insImm(c1 < c2);
|
853
|
-
if (v == LIR_gt)
|
854
|
-
return insImm(c1 > c2);
|
855
|
-
if (v == LIR_le)
|
856
|
-
return insImm(c1 <= c2);
|
857
|
-
if (v == LIR_ge)
|
858
|
-
return insImm(c1 >= c2);
|
859
|
-
if (v == LIR_ult)
|
860
|
-
return insImm(uint32_t(c1) < uint32_t(c2));
|
861
|
-
if (v == LIR_ugt)
|
862
|
-
return insImm(uint32_t(c1) > uint32_t(c2));
|
863
|
-
if (v == LIR_ule)
|
864
|
-
return insImm(uint32_t(c1) <= uint32_t(c2));
|
865
|
-
if (v == LIR_uge)
|
866
|
-
return insImm(uint32_t(c1) >= uint32_t(c2));
|
867
|
-
if (v == LIR_rsh)
|
868
|
-
return insImm(int32_t(c1) >> int32_t(c2));
|
869
|
-
if (v == LIR_lsh)
|
870
|
-
return insImm(int32_t(c1) << int32_t(c2));
|
871
|
-
if (v == LIR_ush)
|
872
|
-
return insImm(uint32_t(c1) >> int32_t(c2));
|
873
|
-
if (v == LIR_or)
|
546
|
+
}
|
547
|
+
if (oprnd1->isconst() && oprnd2->isconst())
|
548
|
+
{
|
549
|
+
int32_t c1 = oprnd1->imm32();
|
550
|
+
int32_t c2 = oprnd2->imm32();
|
551
|
+
double d;
|
552
|
+
int32_t r;
|
553
|
+
uint64_t q;
|
554
|
+
|
555
|
+
switch (v) {
|
556
|
+
case LIR_qjoin:
|
557
|
+
q = c1 | uint64_t(c2)<<32;
|
558
|
+
return insImmq(q);
|
559
|
+
case LIR_eq:
|
560
|
+
return insImm(c1 == c2);
|
561
|
+
case LIR_ov:
|
562
|
+
return insImm((c2 != 0) && ((c1 + c2) <= c1));
|
563
|
+
case LIR_lt:
|
564
|
+
return insImm(c1 < c2);
|
565
|
+
case LIR_gt:
|
566
|
+
return insImm(c1 > c2);
|
567
|
+
case LIR_le:
|
568
|
+
return insImm(c1 <= c2);
|
569
|
+
case LIR_ge:
|
570
|
+
return insImm(c1 >= c2);
|
571
|
+
case LIR_ult:
|
572
|
+
return insImm(uint32_t(c1) < uint32_t(c2));
|
573
|
+
case LIR_ugt:
|
574
|
+
return insImm(uint32_t(c1) > uint32_t(c2));
|
575
|
+
case LIR_ule:
|
576
|
+
return insImm(uint32_t(c1) <= uint32_t(c2));
|
577
|
+
case LIR_uge:
|
578
|
+
return insImm(uint32_t(c1) >= uint32_t(c2));
|
579
|
+
case LIR_rsh:
|
580
|
+
return insImm(int32_t(c1) >> int32_t(c2));
|
581
|
+
case LIR_lsh:
|
582
|
+
return insImm(int32_t(c1) << int32_t(c2));
|
583
|
+
case LIR_ush:
|
584
|
+
return insImm(uint32_t(c1) >> int32_t(c2));
|
585
|
+
case LIR_or:
|
874
586
|
return insImm(uint32_t(c1) | int32_t(c2));
|
875
|
-
|
587
|
+
case LIR_and:
|
876
588
|
return insImm(uint32_t(c1) & int32_t(c2));
|
877
|
-
|
589
|
+
case LIR_xor:
|
878
590
|
return insImm(uint32_t(c1) ^ int32_t(c2));
|
879
|
-
|
880
|
-
|
881
|
-
|
882
|
-
|
883
|
-
|
884
|
-
|
885
|
-
|
886
|
-
|
887
|
-
|
888
|
-
|
889
|
-
|
890
|
-
|
891
|
-
|
892
|
-
|
893
|
-
|
894
|
-
|
895
|
-
|
896
|
-
|
897
|
-
|
898
|
-
|
899
|
-
|
900
|
-
|
901
|
-
|
902
|
-
|
903
|
-
|
904
|
-
|
905
|
-
|
906
|
-
|
907
|
-
|
908
|
-
|
909
|
-
|
910
|
-
|
911
|
-
|
912
|
-
|
913
|
-
|
914
|
-
|
915
|
-
|
916
|
-
|
917
|
-
|
918
|
-
|
919
|
-
|
920
|
-
|
921
|
-
|
922
|
-
|
923
|
-
|
924
|
-
|
925
|
-
|
926
|
-
|
927
|
-
|
928
|
-
|
929
|
-
|
930
|
-
|
931
|
-
|
932
|
-
|
933
|
-
|
934
|
-
|
935
|
-
|
936
|
-
|
937
|
-
|
938
|
-
|
939
|
-
|
940
|
-
|
941
|
-
|
942
|
-
|
943
|
-
|
944
|
-
|
945
|
-
|
946
|
-
|
947
|
-
|
948
|
-
|
949
|
-
|
950
|
-
|
951
|
-
|
952
|
-
|
953
|
-
|
954
|
-
|
955
|
-
|
956
|
-
|
957
|
-
|
958
|
-
|
959
|
-
|
960
|
-
|
961
|
-
|
962
|
-
|
963
|
-
|
964
|
-
|
965
|
-
|
966
|
-
|
967
|
-
|
968
|
-
|
969
|
-
|
970
|
-
|
971
|
-
|
972
|
-
|
973
|
-
|
974
|
-
|
975
|
-
|
976
|
-
|
977
|
-
|
978
|
-
|
979
|
-
|
980
|
-
|
981
|
-
|
982
|
-
|
983
|
-
|
984
|
-
|
985
|
-
|
986
|
-
|
987
|
-
|
988
|
-
|
989
|
-
|
990
|
-
|
991
|
-
|
992
|
-
|
993
|
-
|
994
|
-
|
995
|
-
|
996
|
-
|
997
|
-
|
998
|
-
|
999
|
-
|
591
|
+
case LIR_add:
|
592
|
+
d = double(c1) + double(c2);
|
593
|
+
fold:
|
594
|
+
r = int32_t(d);
|
595
|
+
if (r == d)
|
596
|
+
return insImm(r);
|
597
|
+
break;
|
598
|
+
case LIR_sub:
|
599
|
+
d = double(c1) - double(c2);
|
600
|
+
goto fold;
|
601
|
+
case LIR_mul:
|
602
|
+
d = double(c1) * double(c2);
|
603
|
+
goto fold;
|
604
|
+
case LIR_div:
|
605
|
+
case LIR_mod:
|
606
|
+
// We can't easily fold div and mod, since folding div makes it
|
607
|
+
// impossible to calculate the mod that refers to it. The
|
608
|
+
// frontend shouldn't emit div and mod with constant operands.
|
609
|
+
NanoAssert(0);
|
610
|
+
default:
|
611
|
+
;
|
612
|
+
}
|
613
|
+
}
|
614
|
+
else if (oprnd1->isconstq() && oprnd2->isconstq())
|
615
|
+
{
|
616
|
+
double c1 = oprnd1->imm64f();
|
617
|
+
double c2 = oprnd2->imm64f();
|
618
|
+
switch (v) {
|
619
|
+
case LIR_feq:
|
620
|
+
return insImm(c1 == c2);
|
621
|
+
case LIR_flt:
|
622
|
+
return insImm(c1 < c2);
|
623
|
+
case LIR_fgt:
|
624
|
+
return insImm(c1 > c2);
|
625
|
+
case LIR_fle:
|
626
|
+
return insImm(c1 <= c2);
|
627
|
+
case LIR_fge:
|
628
|
+
return insImm(c1 >= c2);
|
629
|
+
case LIR_fadd:
|
630
|
+
return insImmf(c1 + c2);
|
631
|
+
case LIR_fsub:
|
632
|
+
return insImmf(c1 - c2);
|
633
|
+
case LIR_fmul:
|
634
|
+
return insImmf(c1 * c2);
|
635
|
+
case LIR_fdiv:
|
636
|
+
return insImmf(c1 / c2);
|
637
|
+
default:
|
638
|
+
;
|
639
|
+
}
|
640
|
+
}
|
641
|
+
else if (oprnd1->isconst() && !oprnd2->isconst())
|
642
|
+
{
|
643
|
+
LIns* t;
|
644
|
+
switch (v) {
|
645
|
+
case LIR_add:
|
646
|
+
case LIR_iaddp:
|
647
|
+
case LIR_qaddp:
|
648
|
+
case LIR_mul:
|
649
|
+
case LIR_fadd:
|
650
|
+
case LIR_fmul:
|
651
|
+
case LIR_xor:
|
652
|
+
case LIR_or:
|
653
|
+
case LIR_and:
|
654
|
+
case LIR_eq:
|
655
|
+
// move const to rhs
|
656
|
+
t = oprnd2;
|
657
|
+
oprnd2 = oprnd1;
|
658
|
+
oprnd1 = t;
|
659
|
+
break;
|
660
|
+
default:
|
661
|
+
if (v >= LIR_lt && v <= LIR_uge) {
|
662
|
+
NanoStaticAssert((LIR_lt ^ 1) == LIR_gt);
|
663
|
+
NanoStaticAssert((LIR_le ^ 1) == LIR_ge);
|
664
|
+
NanoStaticAssert((LIR_ult ^ 1) == LIR_ugt);
|
665
|
+
NanoStaticAssert((LIR_ule ^ 1) == LIR_uge);
|
666
|
+
|
667
|
+
// move const to rhs, swap the operator
|
668
|
+
LIns *t = oprnd2;
|
669
|
+
oprnd2 = oprnd1;
|
670
|
+
oprnd1 = t;
|
671
|
+
v = LOpcode(v^1);
|
672
|
+
}
|
673
|
+
break;
|
674
|
+
}
|
675
|
+
}
|
676
|
+
|
677
|
+
if (oprnd2->isconst())
|
678
|
+
{
|
679
|
+
int c = oprnd2->imm32();
|
680
|
+
switch (v) {
|
681
|
+
case LIR_add:
|
682
|
+
if (oprnd1->isop(LIR_add) && oprnd1->oprnd2()->isconst()) {
|
683
|
+
// add(add(x,c1),c2) => add(x,c1+c2)
|
684
|
+
c += oprnd1->oprnd2()->imm32();
|
685
|
+
oprnd2 = insImm(c);
|
686
|
+
oprnd1 = oprnd1->oprnd1();
|
687
|
+
}
|
688
|
+
break;
|
689
|
+
case LIR_sub:
|
690
|
+
if (oprnd1->isop(LIR_add) && oprnd1->oprnd2()->isconst()) {
|
691
|
+
// sub(add(x,c1),c2) => add(x,c1-c2)
|
692
|
+
c = oprnd1->oprnd2()->imm32() - c;
|
693
|
+
oprnd2 = insImm(c);
|
694
|
+
oprnd1 = oprnd1->oprnd1();
|
695
|
+
v = LIR_add;
|
696
|
+
}
|
697
|
+
break;
|
698
|
+
case LIR_rsh:
|
699
|
+
if (c == 16 && oprnd1->isop(LIR_lsh) &&
|
700
|
+
oprnd1->oprnd2()->isconstval(16) &&
|
701
|
+
insIsS16(oprnd1->oprnd1())) {
|
702
|
+
// rsh(lhs(x,16),16) == x, if x is S16
|
703
|
+
return oprnd1->oprnd1();
|
704
|
+
}
|
705
|
+
break;
|
706
|
+
default:
|
707
|
+
;
|
708
|
+
}
|
709
|
+
|
710
|
+
if (c == 0) {
|
711
|
+
switch (v) {
|
712
|
+
case LIR_add:
|
713
|
+
case LIR_iaddp:
|
714
|
+
case LIR_or:
|
715
|
+
case LIR_xor:
|
716
|
+
case LIR_sub:
|
717
|
+
case LIR_lsh:
|
718
|
+
case LIR_rsh:
|
719
|
+
case LIR_ush:
|
720
|
+
return oprnd1;
|
721
|
+
case LIR_and:
|
722
|
+
case LIR_mul:
|
723
|
+
return oprnd2;
|
724
|
+
case LIR_eq:
|
725
|
+
if (oprnd1->isop(LIR_or) &&
|
726
|
+
oprnd1->oprnd2()->isconst() &&
|
727
|
+
oprnd1->oprnd2()->imm32() != 0) {
|
728
|
+
// (x or c) != 0 if c != 0
|
729
|
+
return insImm(0);
|
730
|
+
}
|
731
|
+
default:
|
732
|
+
;
|
733
|
+
}
|
734
|
+
} else if (c == -1 || (c == 1 && oprnd1->isCmp())) {
|
735
|
+
switch (v) {
|
736
|
+
case LIR_or:
|
737
|
+
// x | -1 = -1, cmp | 1 = 1
|
738
|
+
return oprnd2;
|
739
|
+
case LIR_and:
|
740
|
+
// x & -1 = x, cmp & 1 = cmp
|
741
|
+
return oprnd1;
|
742
|
+
default:
|
743
|
+
;
|
744
|
+
}
|
745
|
+
}
|
746
|
+
}
|
747
|
+
|
748
|
+
LInsp i;
|
749
|
+
if (v == LIR_qjoin && oprnd1->isop(LIR_qlo) && oprnd2->isop(LIR_qhi) &&
|
750
|
+
(i = oprnd1->oprnd1()) == oprnd2->oprnd1()) {
|
751
|
+
// qjoin(qlo(x),qhi(x)) == x
|
752
|
+
return i;
|
753
|
+
}
|
754
|
+
|
755
|
+
return out->ins2(v, oprnd1, oprnd2);
|
756
|
+
}
|
757
|
+
|
758
|
+
LIns* ExprFilter::ins3(LOpcode v, LIns* oprnd1, LIns* oprnd2, LIns* oprnd3)
|
759
|
+
{
|
760
|
+
NanoAssert(oprnd1 && oprnd2 && oprnd3);
|
761
|
+
NanoAssert(v == LIR_cmov || v == LIR_qcmov);
|
762
|
+
if (oprnd2 == oprnd3) {
|
763
|
+
// c ? a : a => a
|
764
|
+
return oprnd2;
|
765
|
+
}
|
766
|
+
if (oprnd1->isconst()) {
|
767
|
+
// const ? x : y => return x or y depending on const
|
768
|
+
return oprnd1->imm32() ? oprnd2 : oprnd3;
|
769
|
+
}
|
770
|
+
if (oprnd1->isop(LIR_eq) &&
|
771
|
+
((oprnd1->oprnd2() == oprnd2 && oprnd1->oprnd1() == oprnd3) ||
|
772
|
+
(oprnd1->oprnd1() == oprnd2 && oprnd1->oprnd2() == oprnd3))) {
|
773
|
+
// (y == x) ? x : y => y
|
774
|
+
// (x == y) ? x : y => y
|
775
|
+
return oprnd3;
|
776
|
+
}
|
777
|
+
|
778
|
+
return out->ins3(v, oprnd1, oprnd2, oprnd3);
|
779
|
+
}
|
780
|
+
|
781
|
+
LIns* ExprFilter::insGuard(LOpcode v, LInsp c, GuardRecord *gr)
|
782
|
+
{
|
783
|
+
if (v == LIR_xt || v == LIR_xf) {
|
784
|
+
if (c->isconst()) {
|
785
|
+
if ((v == LIR_xt && !c->imm32()) || (v == LIR_xf && c->imm32())) {
|
786
|
+
return 0; // no guard needed
|
787
|
+
}
|
788
|
+
else {
|
1000
789
|
#ifdef JS_TRACER
|
1001
|
-
|
1002
|
-
|
1003
|
-
|
1004
|
-
|
1005
|
-
|
1006
|
-
|
790
|
+
// We're emitting a guard that will always fail. Any code
|
791
|
+
// emitted after this guard is dead code. We could
|
792
|
+
// silently optimize out the rest of the emitted code, but
|
793
|
+
// this could indicate a performance problem or other bug,
|
794
|
+
// so assert in debug builds.
|
795
|
+
NanoAssertMsg(0, "Constantly false guard detected");
|
1007
796
|
#endif
|
1008
|
-
|
1009
|
-
|
1010
|
-
|
1011
|
-
|
1012
|
-
|
1013
|
-
|
1014
|
-
|
1015
|
-
|
1016
|
-
|
1017
|
-
|
1018
|
-
|
1019
|
-
|
1020
|
-
|
1021
|
-
|
1022
|
-
|
797
|
+
return out->insGuard(LIR_x, NULL, gr);
|
798
|
+
}
|
799
|
+
}
|
800
|
+
else {
|
801
|
+
NanoStaticAssert((LIR_xt ^ 1) == LIR_xf);
|
802
|
+
while (c->isop(LIR_eq) && c->oprnd1()->isCmp() &&
|
803
|
+
c->oprnd2()->isconstval(0)) {
|
804
|
+
// xt(eq(cmp,0)) => xf(cmp) or xf(eq(cmp,0)) => xt(cmp)
|
805
|
+
v = LOpcode(v^1);
|
806
|
+
c = c->oprnd1();
|
807
|
+
}
|
808
|
+
}
|
809
|
+
}
|
810
|
+
return out->insGuard(v, c, gr);
|
811
|
+
}
|
1023
812
|
|
1024
813
|
LIns* ExprFilter::insBranch(LOpcode v, LIns *c, LIns *t)
|
1025
814
|
{
|
1026
|
-
|
815
|
+
switch (v) {
|
816
|
+
case LIR_jt:
|
817
|
+
case LIR_jf:
|
1027
818
|
while (c->isop(LIR_eq) && c->oprnd1()->isCmp() && c->oprnd2()->isconstval(0)) {
|
1028
819
|
// jt(eq(cmp,0)) => jf(cmp) or jf(eq(cmp,0)) => jt(cmp)
|
1029
820
|
v = LOpcode(v ^ 1);
|
1030
821
|
c = c->oprnd1();
|
1031
822
|
}
|
823
|
+
break;
|
824
|
+
default:
|
825
|
+
;
|
1032
826
|
}
|
1033
827
|
return out->insBranch(v, c, t);
|
1034
828
|
}
|
1035
829
|
|
1036
|
-
LIns*
|
1037
|
-
|
1038
|
-
|
830
|
+
LIns* ExprFilter::insLoad(LOpcode op, LIns* base, int32_t off) {
|
831
|
+
if (base->isconstp() && !isS8(off)) {
|
832
|
+
// if the effective address is constant, then transform:
|
833
|
+
// ld const[bigconst] => ld (const+bigconst)[0]
|
834
|
+
// note: we don't do this optimization for <8bit field offsets,
|
835
|
+
// under the assumption that we're more likely to CSE-match the
|
836
|
+
// constant base address if we dont const-fold small offsets.
|
837
|
+
uintptr_t p = (uintptr_t)base->constvalp() + off;
|
838
|
+
return out->insLoad(op, insImmPtr((void*)p), 0);
|
839
|
+
}
|
840
|
+
return out->insLoad(op, base, off);
|
841
|
+
}
|
842
|
+
|
843
|
+
LIns* LirWriter::ins_eq0(LIns* oprnd1)
|
844
|
+
{
|
845
|
+
return ins2i(LIR_eq, oprnd1, 0);
|
846
|
+
}
|
847
|
+
|
848
|
+
LIns* LirWriter::ins_peq0(LIns* oprnd1)
|
849
|
+
{
|
850
|
+
return ins2(LIR_peq, oprnd1, insImmWord(0));
|
851
|
+
}
|
852
|
+
|
853
|
+
LIns* LirWriter::ins_i2p(LIns* intIns)
|
854
|
+
{
|
855
|
+
#ifdef NANOJIT_64BIT
|
856
|
+
return ins1(LIR_i2q, intIns);
|
857
|
+
#else
|
858
|
+
return intIns;
|
859
|
+
#endif
|
860
|
+
}
|
861
|
+
|
862
|
+
LIns* LirWriter::ins_u2p(LIns* uintIns)
|
863
|
+
{
|
864
|
+
#ifdef NANOJIT_64BIT
|
865
|
+
return ins1(LIR_u2q, uintIns);
|
866
|
+
#else
|
867
|
+
return uintIns;
|
868
|
+
#endif
|
869
|
+
}
|
870
|
+
|
871
|
+
LIns* LirWriter::qjoin(LInsp lo, LInsp hi)
|
872
|
+
{
|
873
|
+
return ins2(LIR_qjoin, lo, hi);
|
874
|
+
}
|
875
|
+
|
876
|
+
LIns* LirWriter::insImmWord(intptr_t value)
|
877
|
+
{
|
878
|
+
#ifdef NANOJIT_64BIT
|
879
|
+
return insImmq(value);
|
880
|
+
#else
|
881
|
+
return insImm(value);
|
882
|
+
#endif
|
883
|
+
}
|
884
|
+
|
885
|
+
LIns* LirWriter::insImmPtr(const void *ptr)
|
886
|
+
{
|
887
|
+
#ifdef NANOJIT_64BIT
|
888
|
+
return insImmq((uint64_t)ptr);
|
889
|
+
#else
|
890
|
+
return insImm((int32_t)ptr);
|
891
|
+
#endif
|
892
|
+
}
|
893
|
+
|
894
|
+
LIns* LirWriter::ins_choose(LIns* cond, LIns* iftrue, LIns* iffalse)
|
895
|
+
{
|
896
|
+
// if not a conditional, make it implicitly an ==0 test (then flop results)
|
897
|
+
if (!cond->isCmp())
|
898
|
+
{
|
899
|
+
cond = ins_eq0(cond);
|
900
|
+
LInsp tmp = iftrue;
|
901
|
+
iftrue = iffalse;
|
902
|
+
iffalse = tmp;
|
903
|
+
}
|
904
|
+
|
905
|
+
if (avmplus::AvmCore::use_cmov())
|
906
|
+
return ins3((iftrue->isQuad() || iffalse->isQuad()) ? LIR_qcmov : LIR_cmov, cond, iftrue, iffalse);
|
907
|
+
|
908
|
+
LInsp ncond = ins1(LIR_neg, cond); // cond ? -1 : 0
|
909
|
+
return ins2(LIR_or,
|
910
|
+
ins2(LIR_and, iftrue, ncond),
|
911
|
+
ins2(LIR_and, iffalse, ins1(LIR_not, ncond)));
|
912
|
+
}
|
913
|
+
|
914
|
+
LIns* LirBufWriter::insCall(const CallInfo *ci, LInsp args[])
|
915
|
+
{
|
916
|
+
static const LOpcode k_callmap[] = {
|
917
|
+
// ARGSIZE_NONE ARGSIZE_F ARGSIZE_LO ARGSIZE_Q (4) (5) ARGSIZE_U (7)
|
918
|
+
LIR_pcall, LIR_fcall, LIR_icall, LIR_qcall, LIR_pcall, LIR_pcall, LIR_icall, LIR_pcall
|
919
|
+
};
|
920
|
+
|
921
|
+
uint32_t argt = ci->_argtypes;
|
922
|
+
LOpcode op = k_callmap[argt & ARGSIZE_MASK_ANY];
|
923
|
+
NanoAssert(op != LIR_skip); // LIR_skip here is just an error condition
|
924
|
+
|
925
|
+
ArgSize sizes[MAXARGS];
|
926
|
+
int32_t argc = ci->get_sizes(sizes);
|
927
|
+
|
928
|
+
if (AvmCore::config.soft_float) {
|
929
|
+
if (op == LIR_fcall)
|
930
|
+
op = LIR_callh;
|
931
|
+
}
|
932
|
+
|
933
|
+
NanoAssert(argc <= (int)MAXARGS);
|
934
|
+
|
935
|
+
// Lay the call parameters out (in reverse order).
|
936
|
+
// Nb: this must be kept in sync with arg().
|
937
|
+
LInsp* newargs = (LInsp*)_buf->makeRoom(argc*sizeof(LInsp) + sizeof(LInsC)); // args + call
|
938
|
+
for (int32_t i = 0; i < argc; i++)
|
939
|
+
newargs[argc - i - 1] = args[i];
|
940
|
+
|
941
|
+
// Write the call instruction itself.
|
942
|
+
LInsC* insC = (LInsC*)(uintptr_t(newargs) + argc*sizeof(LInsp));
|
943
|
+
LIns* ins = insC->getLIns();
|
944
|
+
#ifndef NANOJIT_64BIT
|
945
|
+
ins->initLInsC(op==LIR_callh ? LIR_icall : op, argc, ci);
|
946
|
+
#else
|
947
|
+
ins->initLInsC(op, argc, ci);
|
948
|
+
#endif
|
949
|
+
return ins;
|
950
|
+
}
|
951
|
+
|
952
|
+
using namespace avmplus;
|
953
|
+
|
954
|
+
StackFilter::StackFilter(LirFilter *in, Allocator& alloc, LirBuffer *lirbuf, LInsp sp, LInsp rp)
|
955
|
+
: LirFilter(in), lirbuf(lirbuf), sp(sp), rp(rp), spStk(alloc), rpStk(alloc),
|
956
|
+
spTop(0), rpTop(0)
|
957
|
+
{}
|
958
|
+
|
959
|
+
bool StackFilter::ignoreStore(LInsp ins, int top, BitSet* stk)
|
960
|
+
{
|
961
|
+
bool ignore = false;
|
962
|
+
int d = ins->disp() >> 2;
|
963
|
+
if (d >= top) {
|
964
|
+
ignore = true;
|
965
|
+
} else {
|
966
|
+
d = top - d;
|
967
|
+
if (ins->oprnd1()->isQuad()) {
|
968
|
+
// storing 8 bytes
|
969
|
+
if (stk->get(d) && stk->get(d-1)) {
|
970
|
+
ignore = true;
|
971
|
+
} else {
|
972
|
+
stk->set(d);
|
973
|
+
stk->set(d-1);
|
974
|
+
}
|
975
|
+
}
|
976
|
+
else {
|
977
|
+
// storing 4 bytes
|
978
|
+
if (stk->get(d)) {
|
979
|
+
ignore = true;
|
980
|
+
} else {
|
981
|
+
stk->set(d);
|
982
|
+
}
|
983
|
+
}
|
984
|
+
}
|
985
|
+
return ignore;
|
986
|
+
}
|
987
|
+
|
988
|
+
LInsp StackFilter::read()
|
989
|
+
{
|
990
|
+
for (;;)
|
991
|
+
{
|
992
|
+
LInsp i = in->read();
|
993
|
+
if (i->isStore())
|
994
|
+
{
|
995
|
+
LInsp base = i->oprnd2();
|
996
|
+
|
997
|
+
if (base == sp) {
|
998
|
+
if (ignoreStore(i, spTop, &spStk))
|
999
|
+
continue;
|
1000
|
+
|
1001
|
+
} else if (base == rp) {
|
1002
|
+
if (ignoreStore(i, rpTop, &rpStk))
|
1003
|
+
continue;
|
1004
|
+
}
|
1005
|
+
}
|
1006
|
+
/*
|
1007
|
+
* NB: If there is a backward branch other than the loop-restart branch, this is
|
1008
|
+
* going to be wrong. Unfortunately there doesn't seem to be an easy way to detect
|
1009
|
+
* such branches. Just do not create any.
|
1010
|
+
*/
|
1011
|
+
else if (i->isGuard())
|
1012
|
+
{
|
1013
|
+
spStk.reset();
|
1014
|
+
rpStk.reset();
|
1015
|
+
getTops(i, spTop, rpTop);
|
1016
|
+
spTop >>= 2;
|
1017
|
+
rpTop >>= 2;
|
1018
|
+
}
|
1019
|
+
|
1020
|
+
return i;
|
1021
|
+
}
|
1022
|
+
}
|
1023
|
+
|
1024
|
+
//
|
1025
|
+
// inlined/separated version of SuperFastHash
|
1026
|
+
// This content is copyrighted by Paul Hsieh, For reference see : http://www.azillionmonkeys.com/qed/hash.html
|
1027
|
+
//
|
1028
|
+
inline uint32_t _hash8(uint32_t hash, const uint8_t data)
|
1029
|
+
{
|
1030
|
+
hash += data;
|
1031
|
+
hash ^= hash << 10;
|
1032
|
+
hash += hash >> 1;
|
1033
|
+
return hash;
|
1034
|
+
}
|
1035
|
+
|
1036
|
+
inline uint32_t _hash32(uint32_t hash, const uint32_t data)
|
1037
|
+
{
|
1038
|
+
const uint32_t dlo = data & 0xffff;
|
1039
|
+
const uint32_t dhi = data >> 16;
|
1040
|
+
hash += dlo;
|
1041
|
+
const uint32_t tmp = (dhi << 11) ^ hash;
|
1042
|
+
hash = (hash << 16) ^ tmp;
|
1043
|
+
hash += hash >> 11;
|
1044
|
+
return hash;
|
1045
|
+
}
|
1046
|
+
|
1047
|
+
inline uint32_t _hashptr(uint32_t hash, const void* data)
|
1048
|
+
{
|
1049
|
+
#ifdef NANOJIT_64BIT
|
1050
|
+
hash = _hash32(hash, uint32_t(uintptr_t(data) >> 32));
|
1051
|
+
hash = _hash32(hash, uint32_t(uintptr_t(data)));
|
1052
|
+
return hash;
|
1053
|
+
#else
|
1054
|
+
return _hash32(hash, uint32_t(data));
|
1055
|
+
#endif
|
1056
|
+
}
|
1057
|
+
|
1058
|
+
inline uint32_t _hashfinish(uint32_t hash)
|
1059
|
+
{
|
1060
|
+
/* Force "avalanching" of final 127 bits */
|
1061
|
+
hash ^= hash << 3;
|
1062
|
+
hash += hash >> 5;
|
1063
|
+
hash ^= hash << 4;
|
1064
|
+
hash += hash >> 17;
|
1065
|
+
hash ^= hash << 25;
|
1066
|
+
hash += hash >> 6;
|
1067
|
+
return hash;
|
1068
|
+
}
|
1069
|
+
|
1070
|
+
LInsHashSet::LInsHashSet(Allocator& alloc) :
|
1071
|
+
m_cap(kInitialCap), alloc(alloc)
|
1072
|
+
{
|
1073
|
+
m_list = new (alloc) LInsp[m_cap];
|
1074
|
+
clear();
|
1075
|
+
}
|
1076
|
+
|
1077
|
+
void LInsHashSet::clear() {
|
1078
|
+
VMPI_memset(m_list, 0, sizeof(LInsp)*m_cap);
|
1079
|
+
m_used = 0;
|
1080
|
+
}
|
1081
|
+
|
1082
|
+
|
1083
|
+
inline uint32_t LInsHashSet::hashimm(int32_t a) {
|
1084
|
+
return _hashfinish(_hash32(0,a));
|
1085
|
+
}
|
1086
|
+
|
1087
|
+
inline uint32_t LInsHashSet::hashimmq(uint64_t a) {
|
1088
|
+
uint32_t hash = _hash32(0, uint32_t(a >> 32));
|
1089
|
+
return _hashfinish(_hash32(hash, uint32_t(a)));
|
1090
|
+
}
|
1091
|
+
|
1092
|
+
inline uint32_t LInsHashSet::hash1(LOpcode op, LInsp a) {
|
1093
|
+
uint32_t hash = _hash8(0,uint8_t(op));
|
1094
|
+
return _hashfinish(_hashptr(hash, a));
|
1095
|
+
}
|
1096
|
+
|
1097
|
+
inline uint32_t LInsHashSet::hash2(LOpcode op, LInsp a, LInsp b) {
|
1098
|
+
uint32_t hash = _hash8(0,uint8_t(op));
|
1099
|
+
hash = _hashptr(hash, a);
|
1100
|
+
return _hashfinish(_hashptr(hash, b));
|
1101
|
+
}
|
1102
|
+
|
1103
|
+
inline uint32_t LInsHashSet::hash3(LOpcode op, LInsp a, LInsp b, LInsp c) {
|
1104
|
+
uint32_t hash = _hash8(0,uint8_t(op));
|
1105
|
+
hash = _hashptr(hash, a);
|
1106
|
+
hash = _hashptr(hash, b);
|
1107
|
+
return _hashfinish(_hashptr(hash, c));
|
1108
|
+
}
|
1109
|
+
|
1110
|
+
inline uint32_t LInsHashSet::hashLoad(LOpcode op, LInsp a, int32_t d) {
|
1111
|
+
uint32_t hash = _hash8(0,uint8_t(op));
|
1112
|
+
hash = _hashptr(hash, a);
|
1113
|
+
return _hashfinish(_hash32(hash, d));
|
1114
|
+
}
|
1115
|
+
|
1116
|
+
inline uint32_t LInsHashSet::hashcall(const CallInfo *ci, uint32_t argc, LInsp args[]) {
|
1117
|
+
uint32_t hash = _hashptr(0, ci);
|
1118
|
+
for (int32_t j=argc-1; j >= 0; j--)
|
1119
|
+
hash = _hashptr(hash,args[j]);
|
1120
|
+
return _hashfinish(hash);
|
1121
|
+
}
|
1122
|
+
|
1123
|
+
uint32_t LInsHashSet::hashcode(LInsp i)
|
1124
|
+
{
|
1125
|
+
const LOpcode op = i->opcode();
|
1126
|
+
uint32_t operands = operandCount[i->opcode()];
|
1127
|
+
|
1128
|
+
switch (operands) {
|
1129
|
+
case 0:
|
1130
|
+
switch (op) {
|
1131
|
+
case LIR_int:
|
1132
|
+
return hashimm(i->imm32());
|
1133
|
+
case LIR_float:
|
1134
|
+
case LIR_quad:
|
1135
|
+
return hashimmq(i->imm64());
|
1136
|
+
default:
|
1137
|
+
NanoAssert(i->isCall());
|
1138
|
+
LInsp args[MAXARGS];
|
1139
|
+
uint32_t argc = i->argc();
|
1140
|
+
NanoAssert(argc < MAXARGS);
|
1141
|
+
for (uint32_t j=0; j < argc; j++)
|
1142
|
+
args[j] = i->arg(j);
|
1143
|
+
return hashcall(i->callInfo(), argc, args);
|
1144
|
+
}
|
1145
|
+
case 1:
|
1146
|
+
return (repKinds[op] == LRK_Ld)
|
1147
|
+
? hashLoad(op, i->oprnd1(), i->disp())
|
1148
|
+
: hash1(op, i->oprnd1());
|
1149
|
+
case 2:
|
1150
|
+
return hash2(op, i->oprnd1(), i->oprnd2());
|
1151
|
+
default:
|
1152
|
+
NanoAssert(i->isLInsOp3());
|
1153
|
+
return hash3(op, i->oprnd1(), i->oprnd2(), i->oprnd3());
|
1154
|
+
}
|
1155
|
+
}
|
1156
|
+
|
1157
|
+
inline bool LInsHashSet::equals(LInsp a, LInsp b)
|
1158
|
+
{
|
1159
|
+
if (a == b)
|
1160
|
+
return true;
|
1161
|
+
|
1162
|
+
const LOpcode op = a->opcode();
|
1163
|
+
if (op != b->opcode())
|
1164
|
+
return false;
|
1165
|
+
|
1166
|
+
const uint32_t operands = operandCount[op];
|
1167
|
+
switch (operands) {
|
1168
|
+
case 0:
|
1169
|
+
switch (op) {
|
1170
|
+
case LIR_int:
|
1171
|
+
return a->imm32() == b->imm32();
|
1172
|
+
case LIR_float:
|
1173
|
+
case LIR_quad:
|
1174
|
+
return a->imm64() == b->imm64();
|
1175
|
+
default:
|
1176
|
+
NanoAssert(a->isCall());
|
1177
|
+
if (a->callInfo() != b->callInfo())
|
1178
|
+
return false;
|
1179
|
+
uint32_t argc = a->argc();
|
1180
|
+
NanoAssert(argc == b->argc());
|
1181
|
+
for (uint32_t i = 0; i < argc; i++)
|
1182
|
+
if (a->arg(i) != b->arg(i))
|
1183
|
+
return false;
|
1184
|
+
return true;
|
1185
|
+
}
|
1186
|
+
case 1:
|
1187
|
+
if (repKinds[op] == LRK_Ld)
|
1188
|
+
return (a->oprnd1() == b->oprnd1() && a->disp() == b->disp());
|
1189
|
+
return a->oprnd1() == b->oprnd1();
|
1190
|
+
case 2:
|
1191
|
+
return a->oprnd1() == b->oprnd1() && a->oprnd2() == b->oprnd2();
|
1192
|
+
default:
|
1193
|
+
NanoAssert(a->isLInsOp3());
|
1194
|
+
return a->oprnd1() == b->oprnd1() && a->oprnd2() == b->oprnd2() && a->oprnd3() == b->oprnd3();
|
1195
|
+
}
|
1196
|
+
}
|
1197
|
+
|
1198
|
+
void LInsHashSet::grow()
|
1199
|
+
{
|
1200
|
+
const uint32_t newcap = m_cap << 1;
|
1201
|
+
LInsp *newlist = new (alloc) LInsp[newcap];
|
1202
|
+
VMPI_memset(newlist, 0, newcap * sizeof(LInsp));
|
1203
|
+
LInsp *list = m_list;
|
1204
|
+
for (uint32_t i=0, n=m_cap; i < n; i++) {
|
1205
|
+
LInsp name = list[i];
|
1206
|
+
if (!name) continue;
|
1207
|
+
uint32_t j = find(name, hashcode(name), newlist, newcap);
|
1208
|
+
newlist[j] = name;
|
1209
|
+
}
|
1210
|
+
m_cap = newcap;
|
1211
|
+
m_list = newlist;
|
1212
|
+
}
|
1213
|
+
|
1214
|
+
uint32_t LInsHashSet::find(LInsp name, uint32_t hash, const LInsp *list, uint32_t cap)
|
1215
|
+
{
|
1216
|
+
const uint32_t bitmask = (cap - 1) & ~0x1;
|
1217
|
+
|
1218
|
+
uint32_t n = 7 << 1;
|
1219
|
+
hash &= bitmask;
|
1220
|
+
LInsp k;
|
1221
|
+
while ((k = list[hash]) != NULL && !equals(k, name))
|
1222
|
+
{
|
1223
|
+
hash = (hash + (n += 2)) & bitmask; // quadratic probe
|
1224
|
+
}
|
1225
|
+
return hash;
|
1226
|
+
}
|
1227
|
+
|
1228
|
+
LInsp LInsHashSet::add(LInsp name, uint32_t k)
|
1229
|
+
{
|
1230
|
+
// this is relatively short-lived so let's try a more aggressive load factor
|
1231
|
+
// in the interest of improving performance
|
1232
|
+
if (((m_used+1)<<1) >= m_cap) // 0.50
|
1233
|
+
{
|
1234
|
+
grow();
|
1235
|
+
k = find(name, hashcode(name), m_list, m_cap);
|
1236
|
+
}
|
1237
|
+
NanoAssert(!m_list[k]);
|
1238
|
+
m_used++;
|
1239
|
+
return m_list[k] = name;
|
1240
|
+
}
|
1241
|
+
|
1242
|
+
LInsp LInsHashSet::find32(int32_t a, uint32_t &i)
|
1243
|
+
{
|
1244
|
+
uint32_t cap = m_cap;
|
1245
|
+
const LInsp *list = m_list;
|
1246
|
+
const uint32_t bitmask = (cap - 1) & ~0x1;
|
1247
|
+
uint32_t hash = hashimm(a) & bitmask;
|
1248
|
+
uint32_t n = 7 << 1;
|
1249
|
+
LInsp k;
|
1250
|
+
while ((k = list[hash]) != NULL &&
|
1251
|
+
(!k->isconst() || k->imm32() != a))
|
1252
|
+
{
|
1253
|
+
hash = (hash + (n += 2)) & bitmask; // quadratic probe
|
1254
|
+
}
|
1255
|
+
i = hash;
|
1256
|
+
return k;
|
1257
|
+
}
|
1258
|
+
|
1259
|
+
LInsp LInsHashSet::find64(LOpcode v, uint64_t a, uint32_t &i)
|
1260
|
+
{
|
1261
|
+
uint32_t cap = m_cap;
|
1262
|
+
const LInsp *list = m_list;
|
1263
|
+
const uint32_t bitmask = (cap - 1) & ~0x1;
|
1264
|
+
uint32_t hash = hashimmq(a) & bitmask;
|
1265
|
+
uint32_t n = 7 << 1;
|
1266
|
+
LInsp k;
|
1267
|
+
while ((k = list[hash]) != NULL &&
|
1268
|
+
(k->opcode() != v || k->imm64() != a))
|
1269
|
+
{
|
1270
|
+
hash = (hash + (n += 2)) & bitmask; // quadratic probe
|
1271
|
+
}
|
1272
|
+
i = hash;
|
1273
|
+
return k;
|
1039
1274
|
}
|
1040
1275
|
|
1041
|
-
|
1042
|
-
{
|
1043
|
-
return insLoad(op, base, insImm(disp));
|
1044
|
-
}
|
1045
|
-
|
1046
|
-
LIns* LirWriter::store(LInsp value, LInsp base, int32_t d)
|
1276
|
+
LInsp LInsHashSet::find1(LOpcode op, LInsp a, uint32_t &i)
|
1047
1277
|
{
|
1048
|
-
|
1049
|
-
|
1278
|
+
uint32_t cap = m_cap;
|
1279
|
+
const LInsp *list = m_list;
|
1280
|
+
const uint32_t bitmask = (cap - 1) & ~0x1;
|
1281
|
+
uint32_t hash = hash1(op,a) & bitmask;
|
1282
|
+
uint32_t n = 7 << 1;
|
1283
|
+
LInsp k;
|
1284
|
+
while ((k = list[hash]) != NULL &&
|
1285
|
+
(k->opcode() != op || k->oprnd1() != a))
|
1286
|
+
{
|
1287
|
+
hash = (hash + (n += 2)) & bitmask; // quadratic probe
|
1288
|
+
}
|
1289
|
+
i = hash;
|
1290
|
+
return k;
|
1050
1291
|
}
|
1051
1292
|
|
1052
|
-
|
1053
|
-
{
|
1054
|
-
return ins2i(LIR_eq, oprnd1, 0);
|
1055
|
-
}
|
1056
|
-
|
1057
|
-
LIns* LirWriter::insImmf(double f)
|
1293
|
+
LInsp LInsHashSet::find2(LOpcode op, LInsp a, LInsp b, uint32_t &i)
|
1058
1294
|
{
|
1059
|
-
|
1060
|
-
|
1061
|
-
|
1062
|
-
|
1063
|
-
|
1064
|
-
|
1065
|
-
|
1066
|
-
|
1067
|
-
|
1068
|
-
|
1069
|
-
|
1070
|
-
|
1071
|
-
|
1072
|
-
|
1073
|
-
{
|
1074
|
-
return sizeof(ptr) == 8 ? insImmq((uintptr_t)ptr) : insImm((intptr_t)ptr);
|
1075
|
-
}
|
1076
|
-
|
1077
|
-
LIns* LirWriter::ins_choose(LIns* cond, LIns* iftrue, LIns* iffalse)
|
1078
|
-
{
|
1079
|
-
// if not a conditional, make it implicitly an ==0 test (then flop results)
|
1080
|
-
if (!cond->isCmp())
|
1081
|
-
{
|
1082
|
-
cond = ins_eq0(cond);
|
1083
|
-
LInsp tmp = iftrue;
|
1084
|
-
iftrue = iffalse;
|
1085
|
-
iffalse = tmp;
|
1086
|
-
}
|
1087
|
-
|
1088
|
-
if (avmplus::AvmCore::use_cmov())
|
1089
|
-
{
|
1090
|
-
return ins2((iftrue->isQuad() || iffalse->isQuad()) ? LIR_qcmov : LIR_cmov, cond, ins2(LIR_2, iftrue, iffalse));
|
1091
|
-
}
|
1092
|
-
|
1093
|
-
// @todo -- it might be better to use a short conditional branch rather than
|
1094
|
-
// the bit-twiddling on systems that don't provide a conditional move instruction.
|
1095
|
-
LInsp ncond = ins1(LIR_neg, cond); // cond ? -1 : 0
|
1096
|
-
return ins2(LIR_or,
|
1097
|
-
ins2(LIR_and, iftrue, ncond),
|
1098
|
-
ins2(LIR_and, iffalse, ins1(LIR_not, ncond)));
|
1099
|
-
}
|
1100
|
-
|
1101
|
-
LIns* LirBufWriter::insCall(const CallInfo *ci, LInsp args[])
|
1102
|
-
{
|
1103
|
-
static const LOpcode k_callmap[] = { LIR_call, LIR_fcall, LIR_call, LIR_callh };
|
1104
|
-
static const LOpcode k_callimap[] = { LIR_calli, LIR_fcalli, LIR_calli, LIR_skip };
|
1105
|
-
|
1106
|
-
uint32_t argt = ci->_argtypes;
|
1107
|
-
LOpcode op = (ci->isIndirect() ? k_callimap : k_callmap)[argt & 3];
|
1108
|
-
NanoAssert(op != LIR_skip); // LIR_skip here is just an error condition
|
1109
|
-
|
1110
|
-
ArgSize sizes[MAXARGS];
|
1111
|
-
int32_t argc = ci->get_sizes(sizes);
|
1112
|
-
|
1113
|
-
if (AvmCore::config.soft_float) {
|
1114
|
-
if (op == LIR_fcall)
|
1115
|
-
op = LIR_callh;
|
1116
|
-
}
|
1117
|
-
|
1118
|
-
//
|
1119
|
-
// An example of the what we're trying to serialize:
|
1120
|
-
//
|
1121
|
-
// byte word
|
1122
|
-
// ---- ----
|
1123
|
-
// N [ arg tramp #0 ------------------------ ] K
|
1124
|
-
// N+4 [ arg tramp #1 ------------------------ ] K+1
|
1125
|
-
// N+8 [ arg tramp #2 ------------------------ ] K+2
|
1126
|
-
// N+12 [ arg tramp #3 ------------------------ ] K+3
|
1127
|
-
// N+16 [ argoff3 | argoff2 | argoff1 | argoff0 ] K+4
|
1128
|
-
// N+20 [ CallInfo* --------------------------- ] K+5
|
1129
|
-
// N+24 [ LIR_call ---------| imm8a=0 | imm8b=4 ] K+6
|
1130
|
-
//
|
1131
|
-
// In this example:
|
1132
|
-
// 32 bit words
|
1133
|
-
// 'argc' = 4
|
1134
|
-
// 'words' = argwords(argc) = 1 (word K+4 )
|
1135
|
-
// 'LIR_CALL_SLOTS' = 2 (words K+5 - K+6)
|
1136
|
-
// 'insSz' = 1+2 = 3 (words K+4 - K+6)
|
1137
|
-
// 'from' = next + (insSz - 1) (word K+6 )
|
1138
|
-
//
|
1139
|
-
|
1140
|
-
NanoAssert(argc <= (int)MAXARGS);
|
1141
|
-
uint32_t words = argwords(argc);
|
1142
|
-
int32_t insSz = words + LIR_CALL_SLOTS; // words need for offsets + size of instruction
|
1143
|
-
ensureRoom(argc * LIR_FAR_SLOTS + insSz); // argc=# possible tramps for args
|
1144
|
-
|
1145
|
-
// Argument deltas are calculated relative to the final LIns,
|
1146
|
-
// which is the last word in the cluster.
|
1147
|
-
LInsp from = _buf->next() + argc * LIR_FAR_SLOTS + insSz - 1;
|
1148
|
-
for (int32_t i=0; i < argc; i++)
|
1149
|
-
makeReachable(args[i], from);
|
1150
|
-
|
1151
|
-
// skip 'words' needed for call parameters
|
1152
|
-
LirCallIns *l = (LirCallIns*) (_buf->next()+words);
|
1153
|
-
l->ci = ci;
|
1154
|
-
|
1155
|
-
// call parameters laid in reverse order
|
1156
|
-
uint8_t* offs = (uint8_t*)l;
|
1157
|
-
for (int32_t i=0; i < argc; i++)
|
1158
|
-
*--offs = (uint8_t) l->i.reference(args[i]);
|
1159
|
-
NanoAssert((LInsp)offs>=_buf->next());
|
1160
|
-
|
1161
|
-
#ifndef NANOJIT_64BIT
|
1162
|
-
l->i.initOpcode(op==LIR_callh ? LIR_call : op);
|
1163
|
-
#else
|
1164
|
-
l->i.initOpcode(op);
|
1165
|
-
#endif
|
1166
|
-
l->i.c.imm8a = 0;
|
1167
|
-
l->i.c.imm8b = argc;
|
1168
|
-
_buf->commit(insSz);
|
1169
|
-
_buf->_stats.lir++;
|
1170
|
-
NanoAssert((LInsp)(l+1)==_buf->next());
|
1171
|
-
return &(l->i);
|
1172
|
-
}
|
1173
|
-
|
1174
|
-
using namespace avmplus;
|
1295
|
+
uint32_t cap = m_cap;
|
1296
|
+
const LInsp *list = m_list;
|
1297
|
+
const uint32_t bitmask = (cap - 1) & ~0x1;
|
1298
|
+
uint32_t hash = hash2(op,a,b) & bitmask;
|
1299
|
+
uint32_t n = 7 << 1;
|
1300
|
+
LInsp k;
|
1301
|
+
while ((k = list[hash]) != NULL &&
|
1302
|
+
(k->opcode() != op || k->oprnd1() != a || k->oprnd2() != b))
|
1303
|
+
{
|
1304
|
+
hash = (hash + (n += 2)) & bitmask; // quadratic probe
|
1305
|
+
}
|
1306
|
+
i = hash;
|
1307
|
+
return k;
|
1308
|
+
}
|
1175
1309
|
|
1176
|
-
|
1177
|
-
|
1178
|
-
|
1179
|
-
|
1180
|
-
|
1181
|
-
|
1182
|
-
|
1183
|
-
|
1184
|
-
|
1185
|
-
|
1186
|
-
|
1187
|
-
|
1188
|
-
|
1189
|
-
|
1190
|
-
|
1191
|
-
|
1192
|
-
LInsp v = i->oprnd1();
|
1193
|
-
int d = i->immdisp() >> 2;
|
1194
|
-
if (d >= top) {
|
1195
|
-
continue;
|
1196
|
-
} else {
|
1197
|
-
d = top - d;
|
1198
|
-
if (v->isQuad()) {
|
1199
|
-
// storing 8 bytes
|
1200
|
-
if (stk.get(d) && stk.get(d-1)) {
|
1201
|
-
continue;
|
1202
|
-
} else {
|
1203
|
-
stk.set(gc, d);
|
1204
|
-
stk.set(gc, d-1);
|
1205
|
-
}
|
1206
|
-
}
|
1207
|
-
else {
|
1208
|
-
// storing 4 bytes
|
1209
|
-
if (stk.get(d))
|
1210
|
-
continue;
|
1211
|
-
else
|
1212
|
-
stk.set(gc, d);
|
1213
|
-
}
|
1214
|
-
}
|
1215
|
-
}
|
1216
|
-
}
|
1217
|
-
/*
|
1218
|
-
* NB: If there is a backward branch other than the loop-restart branch, this is
|
1219
|
-
* going to be wrong. Unfortunately there doesn't seem to be an easy way to detect
|
1220
|
-
* such branches. Just do not create any.
|
1221
|
-
*/
|
1222
|
-
else if (i->isGuard())
|
1223
|
-
{
|
1224
|
-
stk.reset();
|
1225
|
-
top = getTop(i) >> 2;
|
1226
|
-
}
|
1227
|
-
return i;
|
1228
|
-
}
|
1229
|
-
}
|
1230
|
-
|
1231
|
-
//
|
1232
|
-
// inlined/separated version of SuperFastHash
|
1233
|
-
// This content is copyrighted by Paul Hsieh, For reference see : http://www.azillionmonkeys.com/qed/hash.html
|
1234
|
-
//
|
1235
|
-
inline uint32_t _hash8(uint32_t hash, const uint8_t data)
|
1236
|
-
{
|
1237
|
-
hash += data;
|
1238
|
-
hash ^= hash << 10;
|
1239
|
-
hash += hash >> 1;
|
1240
|
-
return hash;
|
1241
|
-
}
|
1242
|
-
|
1243
|
-
inline uint32_t _hash32(uint32_t hash, const uint32_t data)
|
1244
|
-
{
|
1245
|
-
const uint32_t dlo = data & 0xffff;
|
1246
|
-
const uint32_t dhi = data >> 16;
|
1247
|
-
hash += dlo;
|
1248
|
-
const uint32_t tmp = (dhi << 11) ^ hash;
|
1249
|
-
hash = (hash << 16) ^ tmp;
|
1250
|
-
hash += hash >> 11;
|
1251
|
-
return hash;
|
1252
|
-
}
|
1253
|
-
|
1254
|
-
inline uint32_t _hashptr(uint32_t hash, const void* data)
|
1255
|
-
{
|
1256
|
-
#ifdef NANOJIT_64BIT
|
1257
|
-
hash = _hash32(hash, uint32_t(uintptr_t(data) >> 32));
|
1258
|
-
hash = _hash32(hash, uint32_t(uintptr_t(data)));
|
1259
|
-
return hash;
|
1260
|
-
#else
|
1261
|
-
return _hash32(hash, uint32_t(data));
|
1262
|
-
#endif
|
1263
|
-
}
|
1264
|
-
|
1265
|
-
inline uint32_t _hashfinish(uint32_t hash)
|
1266
|
-
{
|
1267
|
-
/* Force "avalanching" of final 127 bits */
|
1268
|
-
hash ^= hash << 3;
|
1269
|
-
hash += hash >> 5;
|
1270
|
-
hash ^= hash << 4;
|
1271
|
-
hash += hash >> 17;
|
1272
|
-
hash ^= hash << 25;
|
1273
|
-
hash += hash >> 6;
|
1274
|
-
return hash;
|
1275
|
-
}
|
1276
|
-
|
1277
|
-
LInsHashSet::LInsHashSet(GC* gc) :
|
1278
|
-
m_used(0), m_cap(kInitialCap), m_gc(gc)
|
1279
|
-
{
|
1280
|
-
#ifdef MEMORY_INFO
|
1281
|
-
// m_list.set_meminfo_name("LInsHashSet.list");
|
1282
|
-
#endif
|
1283
|
-
LInsp *list = (LInsp*) gc->Alloc(sizeof(LInsp)*m_cap, GC::kZero);
|
1284
|
-
WB(gc, this, &m_list, list);
|
1285
|
-
}
|
1310
|
+
LInsp LInsHashSet::find3(LOpcode op, LInsp a, LInsp b, LInsp c, uint32_t &i)
|
1311
|
+
{
|
1312
|
+
uint32_t cap = m_cap;
|
1313
|
+
const LInsp *list = m_list;
|
1314
|
+
const uint32_t bitmask = (cap - 1) & ~0x1;
|
1315
|
+
uint32_t hash = hash3(op,a,b,c) & bitmask;
|
1316
|
+
uint32_t n = 7 << 1;
|
1317
|
+
LInsp k;
|
1318
|
+
while ((k = list[hash]) != NULL &&
|
1319
|
+
(k->opcode() != op || k->oprnd1() != a || k->oprnd2() != b || k->oprnd3() != c))
|
1320
|
+
{
|
1321
|
+
hash = (hash + (n += 2)) & bitmask; // quadratic probe
|
1322
|
+
}
|
1323
|
+
i = hash;
|
1324
|
+
return k;
|
1325
|
+
}
|
1286
1326
|
|
1287
|
-
LInsHashSet
|
1327
|
+
LInsp LInsHashSet::findLoad(LOpcode op, LInsp a, int32_t d, uint32_t &i)
|
1288
1328
|
{
|
1289
|
-
|
1329
|
+
uint32_t cap = m_cap;
|
1330
|
+
const LInsp *list = m_list;
|
1331
|
+
const uint32_t bitmask = (cap - 1) & ~0x1;
|
1332
|
+
uint32_t hash = hashLoad(op,a,d) & bitmask;
|
1333
|
+
uint32_t n = 7 << 1;
|
1334
|
+
LInsp k;
|
1335
|
+
while ((k = list[hash]) != NULL &&
|
1336
|
+
(k->opcode() != op || k->oprnd1() != a || k->disp() != d))
|
1337
|
+
{
|
1338
|
+
hash = (hash + (n += 2)) & bitmask; // quadratic probe
|
1339
|
+
}
|
1340
|
+
i = hash;
|
1341
|
+
return k;
|
1290
1342
|
}
|
1291
1343
|
|
1292
|
-
|
1293
|
-
|
1294
|
-
|
1344
|
+
bool argsmatch(LInsp i, uint32_t argc, LInsp args[])
|
1345
|
+
{
|
1346
|
+
for (uint32_t j=0; j < argc; j++)
|
1347
|
+
if (i->arg(j) != args[j])
|
1348
|
+
return false;
|
1349
|
+
return true;
|
1295
1350
|
}
|
1296
|
-
|
1297
|
-
/*static*/ uint32_t FASTCALL LInsHashSet::hashcode(LInsp i)
|
1298
|
-
{
|
1299
|
-
const LOpcode op = i->opcode();
|
1300
|
-
switch (op)
|
1301
|
-
{
|
1302
|
-
case LIR_short:
|
1303
|
-
return hashimm(i->imm16());
|
1304
|
-
case LIR_int:
|
1305
|
-
return hashimm(i->imm32());
|
1306
|
-
case LIR_quad:
|
1307
|
-
return hashimmq(i->constvalq());
|
1308
|
-
case LIR_call:
|
1309
|
-
case LIR_fcall:
|
1310
|
-
#if defined NANOJIT_64BIT
|
1311
|
-
case LIR_callh:
|
1312
|
-
#endif
|
1313
|
-
{
|
1314
|
-
LInsp args[10];
|
1315
|
-
int32_t argc = i->argc();
|
1316
|
-
NanoAssert(argc < 10);
|
1317
|
-
for (int32_t j=0; j < argc; j++)
|
1318
|
-
args[j] = i->arg(j);
|
1319
|
-
return hashcall(i->callInfo(), argc, args);
|
1320
|
-
}
|
1321
|
-
default:
|
1322
|
-
if (operandCount[op] == 2)
|
1323
|
-
return hash2(op, i->oprnd1(), i->oprnd2());
|
1324
|
-
else
|
1325
|
-
return hash1(op, i->oprnd1());
|
1326
|
-
}
|
1327
|
-
}
|
1328
|
-
|
1329
|
-
/*static*/ bool FASTCALL LInsHashSet::equals(LInsp a, LInsp b)
|
1330
|
-
{
|
1331
|
-
if (a==b)
|
1332
|
-
return true;
|
1333
|
-
AvmAssert(a->opcode() == b->opcode());
|
1334
|
-
const LOpcode op = a->opcode();
|
1335
|
-
switch (op)
|
1336
|
-
{
|
1337
|
-
case LIR_short:
|
1338
|
-
{
|
1339
|
-
return a->imm16() == b->imm16();
|
1340
|
-
}
|
1341
|
-
case LIR_int:
|
1342
|
-
{
|
1343
|
-
return a->imm32() == b->imm32();
|
1344
|
-
}
|
1345
|
-
case LIR_quad:
|
1346
|
-
{
|
1347
|
-
return a->constvalq() == b->constvalq();
|
1348
|
-
}
|
1349
|
-
case LIR_call:
|
1350
|
-
case LIR_fcall:
|
1351
|
-
#if defined NANOJIT_64BIT
|
1352
|
-
case LIR_callh:
|
1353
|
-
#endif
|
1354
|
-
{
|
1355
|
-
if (a->callInfo() != b->callInfo()) return false;
|
1356
|
-
uint32_t argc=a->argc();
|
1357
|
-
NanoAssert(argc == b->argc());
|
1358
|
-
for (uint32_t i=0; i < argc; i++)
|
1359
|
-
if (a->arg(i) != b->arg(i))
|
1360
|
-
return false;
|
1361
|
-
return true;
|
1362
|
-
}
|
1363
|
-
default:
|
1364
|
-
{
|
1365
|
-
const uint32_t count = operandCount[op];
|
1366
|
-
if ((count >= 1 && a->oprnd1() != b->oprnd1()) ||
|
1367
|
-
(count >= 2 && a->oprnd2() != b->oprnd2()))
|
1368
|
-
return false;
|
1369
|
-
return true;
|
1370
|
-
}
|
1371
|
-
}
|
1372
|
-
}
|
1373
|
-
|
1374
|
-
void FASTCALL LInsHashSet::grow()
|
1375
|
-
{
|
1376
|
-
const uint32_t newcap = m_cap << 1;
|
1377
|
-
LInsp *newlist = (LInsp*) m_gc->Alloc(newcap * sizeof(LInsp), GC::kZero);
|
1378
|
-
LInsp *list = m_list;
|
1379
|
-
#ifdef MEMORY_INFO
|
1380
|
-
// newlist.set_meminfo_name("LInsHashSet.list");
|
1381
|
-
#endif
|
1382
|
-
for (uint32_t i=0, n=m_cap; i < n; i++) {
|
1383
|
-
LInsp name = list[i];
|
1384
|
-
if (!name) continue;
|
1385
|
-
uint32_t j = find(name, hashcode(name), newlist, newcap);
|
1386
|
-
newlist[j] = name;
|
1387
|
-
}
|
1388
|
-
m_cap = newcap;
|
1389
|
-
m_gc->Free(list);
|
1390
|
-
WB(m_gc, this, &m_list, newlist);
|
1391
|
-
}
|
1392
|
-
|
1393
|
-
uint32_t FASTCALL LInsHashSet::find(LInsp name, uint32_t hash, const LInsp *list, uint32_t cap)
|
1394
|
-
{
|
1395
|
-
const uint32_t bitmask = (cap - 1) & ~0x1;
|
1396
|
-
|
1397
|
-
uint32_t n = 7 << 1;
|
1398
|
-
hash &= bitmask;
|
1399
|
-
LInsp k;
|
1400
|
-
while ((k = list[hash]) != NULL &&
|
1401
|
-
(!LIns::sameop(k,name) || !equals(k, name)))
|
1402
|
-
{
|
1403
|
-
hash = (hash + (n += 2)) & bitmask; // quadratic probe
|
1404
|
-
}
|
1405
|
-
return hash;
|
1406
|
-
}
|
1407
|
-
|
1408
|
-
LInsp LInsHashSet::add(LInsp name, uint32_t k)
|
1409
|
-
{
|
1410
|
-
// this is relatively short-lived so let's try a more aggressive load factor
|
1411
|
-
// in the interest of improving performance
|
1412
|
-
if (((m_used+1)<<1) >= m_cap) // 0.50
|
1413
|
-
{
|
1414
|
-
grow();
|
1415
|
-
k = find(name, hashcode(name), m_list, m_cap);
|
1416
|
-
}
|
1417
|
-
NanoAssert(!m_list[k]);
|
1418
|
-
m_used++;
|
1419
|
-
return m_list[k] = name;
|
1420
|
-
}
|
1421
1351
|
|
1422
|
-
|
1423
|
-
|
1424
|
-
|
1425
|
-
|
1426
|
-
|
1427
|
-
|
1428
|
-
|
1429
|
-
|
1430
|
-
|
1431
|
-
|
1432
|
-
|
1433
|
-
|
1434
|
-
|
1435
|
-
|
1436
|
-
|
1437
|
-
|
1438
|
-
uint32_t LInsHashSet::hashimmq(uint64_t a) {
|
1439
|
-
uint32_t hash = _hash32(0, uint32_t(a >> 32));
|
1440
|
-
return _hashfinish(_hash32(hash, uint32_t(a)));
|
1441
|
-
}
|
1442
|
-
|
1443
|
-
uint32_t LInsHashSet::hash1(LOpcode op, LInsp a) {
|
1444
|
-
uint32_t hash = _hash8(0,uint8_t(op));
|
1445
|
-
return _hashfinish(_hashptr(hash, a));
|
1446
|
-
}
|
1447
|
-
|
1448
|
-
uint32_t LInsHashSet::hash2(LOpcode op, LInsp a, LInsp b) {
|
1449
|
-
uint32_t hash = _hash8(0,uint8_t(op));
|
1450
|
-
hash = _hashptr(hash, a);
|
1451
|
-
return _hashfinish(_hashptr(hash, b));
|
1452
|
-
}
|
1453
|
-
|
1454
|
-
uint32_t LInsHashSet::hashcall(const CallInfo *ci, uint32_t argc, LInsp args[]) {
|
1455
|
-
uint32_t hash = _hashptr(0, ci);
|
1456
|
-
for (int32_t j=argc-1; j >= 0; j--)
|
1457
|
-
hash = _hashptr(hash,args[j]);
|
1458
|
-
return _hashfinish(hash);
|
1459
|
-
}
|
1460
|
-
|
1461
|
-
LInsp LInsHashSet::find32(int32_t a, uint32_t &i)
|
1462
|
-
{
|
1463
|
-
uint32_t cap = m_cap;
|
1464
|
-
const LInsp *list = m_list;
|
1465
|
-
const uint32_t bitmask = (cap - 1) & ~0x1;
|
1466
|
-
uint32_t hash = hashimm(a) & bitmask;
|
1467
|
-
uint32_t n = 7 << 1;
|
1468
|
-
LInsp k;
|
1469
|
-
while ((k = list[hash]) != NULL &&
|
1470
|
-
(!k->isconst() || k->constval() != a))
|
1471
|
-
{
|
1472
|
-
hash = (hash + (n += 2)) & bitmask; // quadratic probe
|
1473
|
-
}
|
1474
|
-
i = hash;
|
1475
|
-
return k;
|
1476
|
-
}
|
1477
|
-
|
1478
|
-
LInsp LInsHashSet::find64(uint64_t a, uint32_t &i)
|
1479
|
-
{
|
1480
|
-
uint32_t cap = m_cap;
|
1481
|
-
const LInsp *list = m_list;
|
1482
|
-
const uint32_t bitmask = (cap - 1) & ~0x1;
|
1483
|
-
uint32_t hash = hashimmq(a) & bitmask;
|
1484
|
-
uint32_t n = 7 << 1;
|
1485
|
-
LInsp k;
|
1486
|
-
while ((k = list[hash]) != NULL &&
|
1487
|
-
(!k->isconstq() || k->constvalq() != a))
|
1488
|
-
{
|
1489
|
-
hash = (hash + (n += 2)) & bitmask; // quadratic probe
|
1490
|
-
}
|
1491
|
-
i = hash;
|
1492
|
-
return k;
|
1493
|
-
}
|
1494
|
-
|
1495
|
-
LInsp LInsHashSet::find1(LOpcode op, LInsp a, uint32_t &i)
|
1496
|
-
{
|
1497
|
-
uint32_t cap = m_cap;
|
1498
|
-
const LInsp *list = m_list;
|
1499
|
-
const uint32_t bitmask = (cap - 1) & ~0x1;
|
1500
|
-
uint32_t hash = hash1(op,a) & bitmask;
|
1501
|
-
uint32_t n = 7 << 1;
|
1502
|
-
LInsp k;
|
1503
|
-
while ((k = list[hash]) != NULL &&
|
1504
|
-
(k->opcode() != op || k->oprnd1() != a))
|
1505
|
-
{
|
1506
|
-
hash = (hash + (n += 2)) & bitmask; // quadratic probe
|
1507
|
-
}
|
1508
|
-
i = hash;
|
1509
|
-
return k;
|
1510
|
-
}
|
1511
|
-
|
1512
|
-
LInsp LInsHashSet::find2(LOpcode op, LInsp a, LInsp b, uint32_t &i)
|
1513
|
-
{
|
1514
|
-
uint32_t cap = m_cap;
|
1515
|
-
const LInsp *list = m_list;
|
1516
|
-
const uint32_t bitmask = (cap - 1) & ~0x1;
|
1517
|
-
uint32_t hash = hash2(op,a,b) & bitmask;
|
1518
|
-
uint32_t n = 7 << 1;
|
1519
|
-
LInsp k;
|
1520
|
-
while ((k = list[hash]) != NULL &&
|
1521
|
-
(k->opcode() != op || k->oprnd1() != a || k->oprnd2() != b))
|
1522
|
-
{
|
1523
|
-
hash = (hash + (n += 2)) & bitmask; // quadratic probe
|
1524
|
-
}
|
1525
|
-
i = hash;
|
1526
|
-
return k;
|
1527
|
-
}
|
1528
|
-
|
1529
|
-
bool argsmatch(LInsp i, uint32_t argc, LInsp args[])
|
1530
|
-
{
|
1531
|
-
for (uint32_t j=0; j < argc; j++)
|
1532
|
-
if (i->arg(j) != args[j])
|
1533
|
-
return false;
|
1534
|
-
return true;
|
1535
|
-
}
|
1536
|
-
|
1537
|
-
LInsp LInsHashSet::findcall(const CallInfo *ci, uint32_t argc, LInsp args[], uint32_t &i)
|
1538
|
-
{
|
1539
|
-
uint32_t cap = m_cap;
|
1540
|
-
const LInsp *list = m_list;
|
1541
|
-
const uint32_t bitmask = (cap - 1) & ~0x1;
|
1542
|
-
uint32_t hash = hashcall(ci, argc, args) & bitmask;
|
1543
|
-
uint32_t n = 7 << 1;
|
1544
|
-
LInsp k;
|
1545
|
-
while ((k = list[hash]) != NULL &&
|
1546
|
-
(!k->isCall() || k->callInfo() != ci || !argsmatch(k, argc, args)))
|
1547
|
-
{
|
1548
|
-
hash = (hash + (n += 2)) & bitmask; // quadratic probe
|
1549
|
-
}
|
1550
|
-
i = hash;
|
1551
|
-
return k;
|
1552
|
-
}
|
1553
|
-
|
1554
|
-
GuardRecord *LIns::record()
|
1555
|
-
{
|
1556
|
-
NanoAssert(isGuard());
|
1557
|
-
return (GuardRecord*)oprnd2()->payload();
|
1352
|
+
LInsp LInsHashSet::findcall(const CallInfo *ci, uint32_t argc, LInsp args[], uint32_t &i)
|
1353
|
+
{
|
1354
|
+
uint32_t cap = m_cap;
|
1355
|
+
const LInsp *list = m_list;
|
1356
|
+
const uint32_t bitmask = (cap - 1) & ~0x1;
|
1357
|
+
uint32_t hash = hashcall(ci, argc, args) & bitmask;
|
1358
|
+
uint32_t n = 7 << 1;
|
1359
|
+
LInsp k;
|
1360
|
+
while ((k = list[hash]) != NULL &&
|
1361
|
+
(!k->isCall() || k->callInfo() != ci || !argsmatch(k, argc, args)))
|
1362
|
+
{
|
1363
|
+
hash = (hash + (n += 2)) & bitmask; // quadratic probe
|
1364
|
+
}
|
1365
|
+
i = hash;
|
1366
|
+
return k;
|
1558
1367
|
}
|
1559
1368
|
|
1560
1369
|
#ifdef NJ_VERBOSE
|
1561
|
-
class RetiredEntry
|
1370
|
+
class RetiredEntry
|
1562
1371
|
{
|
1563
1372
|
public:
|
1564
|
-
|
1565
|
-
|
1566
|
-
RetiredEntry(
|
1373
|
+
Seq<LIns*>* live;
|
1374
|
+
LIns* i;
|
1375
|
+
RetiredEntry(): live(NULL), i(NULL) {}
|
1567
1376
|
};
|
1568
|
-
class LiveTable
|
1569
|
-
{
|
1570
|
-
public:
|
1571
|
-
SortedMap<LInsp,LInsp,LIST_NonGCObjects> live;
|
1572
|
-
List<RetiredEntry*, LIST_GCObjects> retired;
|
1573
|
-
int maxlive;
|
1574
|
-
LiveTable(GC *gc) : live(gc), retired(gc), maxlive(0) {}
|
1575
|
-
~LiveTable()
|
1576
|
-
{
|
1577
|
-
for (size_t i = 0; i < retired.size(); i++) {
|
1578
|
-
NJ_DELETE(retired.get(i));
|
1579
|
-
}
|
1580
1377
|
|
1581
|
-
|
1582
|
-
|
1378
|
+
class LiveTable
|
1379
|
+
{
|
1380
|
+
Allocator& alloc;
|
1381
|
+
public:
|
1382
|
+
HashMap<LIns*, LIns*> live;
|
1383
|
+
SeqBuilder<RetiredEntry*> retired;
|
1384
|
+
int retiredCount;
|
1385
|
+
int maxlive;
|
1386
|
+
LiveTable(Allocator& alloc)
|
1387
|
+
: alloc(alloc)
|
1388
|
+
, live(alloc)
|
1389
|
+
, retired(alloc)
|
1390
|
+
, retiredCount(0)
|
1391
|
+
, maxlive(0)
|
1392
|
+
{ }
|
1393
|
+
|
1394
|
+
void add(LInsp i, LInsp use) {
|
1583
1395
|
if (!i->isconst() && !i->isconstq() && !live.containsKey(i)) {
|
1584
1396
|
NanoAssert(size_t(i->opcode()) < sizeof(lirNames) / sizeof(lirNames[0]));
|
1585
1397
|
live.put(i,use);
|
1586
1398
|
}
|
1587
|
-
|
1588
|
-
|
1589
|
-
|
1399
|
+
}
|
1400
|
+
|
1401
|
+
void retire(LInsp i) {
|
1402
|
+
RetiredEntry *e = new (alloc) RetiredEntry();
|
1590
1403
|
e->i = i;
|
1591
|
-
|
1592
|
-
|
1593
|
-
|
1594
|
-
|
1404
|
+
SeqBuilder<LIns*> livelist(alloc);
|
1405
|
+
HashMap<LIns*, LIns*>::Iter iter(live);
|
1406
|
+
int live_count = 0;
|
1407
|
+
while (iter.next()) {
|
1408
|
+
LIns* ins = iter.key();
|
1409
|
+
if (!ins->isStore() && !ins->isGuard()) {
|
1410
|
+
live_count++;
|
1411
|
+
livelist.insert(ins);
|
1412
|
+
}
|
1595
1413
|
}
|
1596
|
-
|
1597
|
-
|
1598
|
-
|
1414
|
+
e->live = livelist.get();
|
1415
|
+
if (live_count > maxlive)
|
1416
|
+
maxlive = live_count;
|
1599
1417
|
|
1600
1418
|
live.remove(i);
|
1601
|
-
retired.
|
1602
|
-
|
1603
|
-
|
1604
|
-
|
1605
|
-
|
1606
|
-
|
1607
|
-
|
1608
|
-
|
1609
|
-
|
1610
|
-
|
1611
|
-
|
1612
|
-
|
1613
|
-
|
1614
|
-
|
1615
|
-
|
1616
|
-
|
1419
|
+
retired.insert(e);
|
1420
|
+
retiredCount++;
|
1421
|
+
}
|
1422
|
+
|
1423
|
+
bool contains(LInsp i) {
|
1424
|
+
return live.containsKey(i);
|
1425
|
+
}
|
1426
|
+
};
|
1427
|
+
|
1428
|
+
/*
|
1429
|
+
* traverse the LIR buffer and discover which instructions are live
|
1430
|
+
* by starting from instructions with side effects (stores, calls, branches)
|
1431
|
+
* and marking instructions used by them. Works bottom-up, in one pass.
|
1432
|
+
* if showLiveRefs == true, also print the set of live expressions next to
|
1433
|
+
* each instruction
|
1434
|
+
*/
|
1435
|
+
void live(Allocator& alloc, Fragment *frag, LogControl *logc)
|
1436
|
+
{
|
1437
|
+
// traverse backwards to find live exprs and a few other stats.
|
1438
|
+
|
1439
|
+
LiveTable live(alloc);
|
1440
|
+
uint32_t exits = 0;
|
1441
|
+
LirReader br(frag->lastIns);
|
1442
|
+
StackFilter sf(&br, alloc, frag->lirbuf, frag->lirbuf->sp, frag->lirbuf->rp);
|
1617
1443
|
int total = 0;
|
1618
|
-
if (lirbuf->state)
|
1619
|
-
live.add(lirbuf->state,
|
1620
|
-
|
1621
|
-
|
1444
|
+
if (frag->lirbuf->state)
|
1445
|
+
live.add(frag->lirbuf->state, sf.pos());
|
1446
|
+
for (LInsp i = sf.read(); !i->isop(LIR_start); i = sf.read())
|
1447
|
+
{
|
1622
1448
|
total++;
|
1623
1449
|
|
1624
1450
|
// first handle side-effect instructions
|
1625
|
-
|
1626
|
-
|
1627
|
-
|
1451
|
+
if (i->isStmt())
|
1452
|
+
{
|
1453
|
+
live.add(i,0);
|
1628
1454
|
if (i->isGuard())
|
1629
1455
|
exits++;
|
1630
|
-
|
1456
|
+
}
|
1631
1457
|
|
1632
|
-
|
1633
|
-
|
1634
|
-
|
1635
|
-
|
1458
|
+
// now propagate liveness
|
1459
|
+
if (live.contains(i))
|
1460
|
+
{
|
1461
|
+
live.retire(i);
|
1636
1462
|
NanoAssert(size_t(i->opcode()) < sizeof(operandCount) / sizeof(operandCount[0]));
|
1637
|
-
|
1638
|
-
|
1639
|
-
|
1640
|
-
|
1463
|
+
if (i->isStore()) {
|
1464
|
+
live.add(i->oprnd2(),i); // base
|
1465
|
+
live.add(i->oprnd1(),i); // val
|
1466
|
+
}
|
1641
1467
|
else if (i->isop(LIR_cmov) || i->isop(LIR_qcmov)) {
|
1642
1468
|
live.add(i->oprnd1(),i);
|
1643
|
-
live.add(i->oprnd2()
|
1644
|
-
live.add(i->
|
1469
|
+
live.add(i->oprnd2(),i);
|
1470
|
+
live.add(i->oprnd3(),i);
|
1471
|
+
}
|
1472
|
+
else if (operandCount[i->opcode()] == 1) {
|
1473
|
+
live.add(i->oprnd1(),i);
|
1474
|
+
}
|
1475
|
+
else if (operandCount[i->opcode()] == 2) {
|
1476
|
+
live.add(i->oprnd1(),i);
|
1477
|
+
live.add(i->oprnd2(),i);
|
1478
|
+
}
|
1479
|
+
else if (i->isCall()) {
|
1480
|
+
for (int j=0, c=i->argc(); j < c; j++)
|
1481
|
+
live.add(i->arg(j),i);
|
1645
1482
|
}
|
1646
|
-
|
1647
|
-
|
1648
|
-
|
1649
|
-
|
1650
|
-
|
1651
|
-
|
1652
|
-
|
1653
|
-
|
1654
|
-
|
1655
|
-
|
1656
|
-
|
1657
|
-
|
1658
|
-
}
|
1659
|
-
|
1660
|
-
printf("live instruction count %d, total %u, max pressure %d\n",
|
1661
|
-
live.retired.size(), total, live.maxlive);
|
1662
|
-
printf("side exits %u\n", exits);
|
1663
|
-
|
1664
|
-
// print live exprs, going forwards
|
1665
|
-
LirNameMap *names = lirbuf->names;
|
1483
|
+
}
|
1484
|
+
}
|
1485
|
+
|
1486
|
+
logc->printf(" Live instruction count %d, total %u, max pressure %d\n",
|
1487
|
+
live.retiredCount, total, live.maxlive);
|
1488
|
+
if (exits > 0)
|
1489
|
+
logc->printf(" Side exits %u\n", exits);
|
1490
|
+
logc->printf(" Showing LIR instructions with live-after variables\n");
|
1491
|
+
logc->printf("\n");
|
1492
|
+
|
1493
|
+
// print live exprs, going forwards
|
1494
|
+
LirNameMap *names = frag->lirbuf->names;
|
1666
1495
|
bool newblock = true;
|
1667
|
-
|
1668
|
-
|
1669
|
-
RetiredEntry *e = live.retired[j];
|
1496
|
+
for (Seq<RetiredEntry*>* p = live.retired.get(); p != NULL; p = p->tail) {
|
1497
|
+
RetiredEntry* e = p->head;
|
1670
1498
|
char livebuf[4000], *s=livebuf;
|
1671
1499
|
*s = 0;
|
1672
1500
|
if (!newblock && e->i->isop(LIR_label)) {
|
1673
|
-
printf("\n");
|
1501
|
+
logc->printf("\n");
|
1674
1502
|
}
|
1675
1503
|
newblock = false;
|
1676
|
-
for (
|
1677
|
-
|
1678
|
-
|
1679
|
-
|
1680
|
-
|
1504
|
+
for (Seq<LIns*>* p = e->live; p != NULL; p = p->tail) {
|
1505
|
+
VMPI_strcpy(s, names->formatRef(p->head));
|
1506
|
+
s += VMPI_strlen(s);
|
1507
|
+
*s++ = ' '; *s = 0;
|
1508
|
+
NanoAssert(s < livebuf+sizeof(livebuf));
|
1681
1509
|
}
|
1682
|
-
|
1683
|
-
|
1684
|
-
|
1685
|
-
|
1510
|
+
/* If the LIR insn is pretty short, print it and its
|
1511
|
+
live-after set on the same line. If not, put
|
1512
|
+
live-after set on a new line, suitably indented. */
|
1513
|
+
const char* insn_text = names->formatIns(e->i);
|
1514
|
+
if (VMPI_strlen(insn_text) >= 30-2) {
|
1515
|
+
logc->printf(" %-30s\n %-30s %s\n", names->formatIns(e->i), "", livebuf);
|
1516
|
+
} else {
|
1517
|
+
logc->printf(" %-30s %s\n", names->formatIns(e->i), livebuf);
|
1686
1518
|
}
|
1687
|
-
}
|
1688
|
-
}
|
1689
1519
|
|
1690
|
-
|
1691
|
-
|
1520
|
+
if (e->i->isGuard() || e->i->isBranch() || e->i->isRet()) {
|
1521
|
+
logc->printf("\n");
|
1522
|
+
newblock = true;
|
1523
|
+
}
|
1524
|
+
}
|
1692
1525
|
}
|
1693
1526
|
|
1694
|
-
LirNameMap::
|
1695
|
-
|
1527
|
+
void LirNameMap::addName(LInsp i, const char* name) {
|
1528
|
+
if (!names.containsKey(i)) {
|
1529
|
+
char *copy = new (alloc) char[VMPI_strlen(name)+1];
|
1530
|
+
VMPI_strcpy(copy, name);
|
1531
|
+
Entry *e = new (alloc) Entry(copy);
|
1532
|
+
names.put(i, e);
|
1533
|
+
}
|
1696
1534
|
}
|
1697
1535
|
|
1698
|
-
LirNameMap
|
1699
|
-
|
1700
|
-
|
1701
|
-
|
1702
|
-
|
1703
|
-
|
1704
|
-
|
1536
|
+
void LirNameMap::copyName(LInsp i, const char *s, int suffix) {
|
1537
|
+
char s2[200];
|
1538
|
+
if (VMPI_isdigit(s[VMPI_strlen(s)-1])) {
|
1539
|
+
// if s ends with a digit, add '_' to clarify the suffix
|
1540
|
+
VMPI_sprintf(s2,"%s_%d", s, suffix);
|
1541
|
+
} else {
|
1542
|
+
VMPI_sprintf(s2,"%s%d", s, suffix);
|
1705
1543
|
}
|
1544
|
+
addName(i, s2);
|
1706
1545
|
}
|
1707
1546
|
|
1708
|
-
|
1709
|
-
|
1710
|
-
|
1711
|
-
names.put(i, e);
|
1712
|
-
return true;
|
1713
|
-
}
|
1714
|
-
return false;
|
1715
|
-
}
|
1716
|
-
void LirNameMap::addName(LInsp i, const char *name) {
|
1717
|
-
Stringp new_name = labels->core->newString(name);
|
1718
|
-
if (!addName(i, new_name)) {
|
1719
|
-
labels->core->freeString(new_name);
|
1720
|
-
}
|
1721
|
-
}
|
1722
|
-
|
1723
|
-
void LirNameMap::copyName(LInsp i, const char *s, int suffix) {
|
1724
|
-
char s2[200];
|
1725
|
-
if (isdigit(s[strlen(s)-1])) {
|
1726
|
-
// if s ends with a digit, add '_' to clarify the suffix
|
1727
|
-
sprintf(s2,"%s_%d", s, suffix);
|
1728
|
-
} else {
|
1729
|
-
sprintf(s2,"%s%d", s, suffix);
|
1730
|
-
}
|
1731
|
-
addName(i, labels->core->newString(s2));
|
1732
|
-
}
|
1733
|
-
|
1734
|
-
void LirNameMap::formatImm(int32_t c, char *buf) {
|
1735
|
-
if (c >= 10000 || c <= -10000)
|
1736
|
-
sprintf(buf,"#%s",labels->format((void*)c));
|
1547
|
+
void LirNameMap::formatImm(int32_t c, char *buf) {
|
1548
|
+
if (c >= 10000 || c <= -10000)
|
1549
|
+
VMPI_sprintf(buf,"#%s",labels->format((void*)c));
|
1737
1550
|
else
|
1738
|
-
|
1739
|
-
|
1740
|
-
|
1741
|
-
|
1742
|
-
|
1743
|
-
|
1744
|
-
|
1745
|
-
|
1746
|
-
|
1747
|
-
|
1748
|
-
|
1749
|
-
|
1750
|
-
|
1751
|
-
|
1752
|
-
|
1753
|
-
|
1754
|
-
|
1755
|
-
|
1756
|
-
|
1757
|
-
|
1758
|
-
|
1759
|
-
|
1760
|
-
|
1761
|
-
|
1762
|
-
|
1763
|
-
|
1764
|
-
if (ref->isCall()) {
|
1551
|
+
VMPI_sprintf(buf,"%d", c);
|
1552
|
+
}
|
1553
|
+
|
1554
|
+
const char* LirNameMap::formatRef(LIns *ref)
|
1555
|
+
{
|
1556
|
+
char buffer[200], *buf=buffer;
|
1557
|
+
buf[0]=0;
|
1558
|
+
if (names.containsKey(ref)) {
|
1559
|
+
const char* name = names.get(ref)->name;
|
1560
|
+
VMPI_strcat(buf, name);
|
1561
|
+
}
|
1562
|
+
else if (ref->isconstf()) {
|
1563
|
+
VMPI_sprintf(buf, "%g", ref->imm64f());
|
1564
|
+
}
|
1565
|
+
else if (ref->isconstq()) {
|
1566
|
+
int64_t c = ref->imm64();
|
1567
|
+
if (c >= 10000 || c <= -10000)
|
1568
|
+
VMPI_sprintf(buf, "#0x%llxLL", (long long unsigned int) c);
|
1569
|
+
else
|
1570
|
+
VMPI_sprintf(buf, "%dLL", (int)c);
|
1571
|
+
}
|
1572
|
+
else if (ref->isconst()) {
|
1573
|
+
formatImm(ref->imm32(), buf);
|
1574
|
+
}
|
1575
|
+
else {
|
1576
|
+
if (ref->isCall()) {
|
1765
1577
|
#if !defined NANOJIT_64BIT
|
1766
|
-
|
1767
|
-
|
1768
|
-
|
1769
|
-
|
1578
|
+
if (ref->isop(LIR_callh)) {
|
1579
|
+
// we've presumably seen the other half already
|
1580
|
+
ref = ref->oprnd1();
|
1581
|
+
} else {
|
1770
1582
|
#endif
|
1771
|
-
|
1583
|
+
copyName(ref, ref->callInfo()->_name, funccounts.add(ref->callInfo()));
|
1772
1584
|
#if !defined NANOJIT_64BIT
|
1773
|
-
|
1585
|
+
}
|
1774
1586
|
#endif
|
1775
|
-
|
1587
|
+
} else {
|
1776
1588
|
NanoAssert(size_t(ref->opcode()) < sizeof(lirNames) / sizeof(lirNames[0]));
|
1777
|
-
|
1778
|
-
|
1779
|
-
|
1780
|
-
|
1781
|
-
|
1782
|
-
|
1783
|
-
|
1784
|
-
|
1785
|
-
|
1786
|
-
|
1787
|
-
|
1788
|
-
|
1789
|
-
|
1790
|
-
|
1791
|
-
|
1792
|
-
|
1793
|
-
|
1794
|
-
|
1795
|
-
|
1796
|
-
|
1797
|
-
}
|
1589
|
+
copyName(ref, lirNames[ref->opcode()], lircounts.add(ref->opcode()));
|
1590
|
+
}
|
1591
|
+
const char* name = names.get(ref)->name;
|
1592
|
+
VMPI_strcat(buf, name);
|
1593
|
+
}
|
1594
|
+
return labels->dup(buffer);
|
1595
|
+
}
|
1596
|
+
|
1597
|
+
const char* LirNameMap::formatIns(LIns* i)
|
1598
|
+
{
|
1599
|
+
char sbuf[200];
|
1600
|
+
char *s = sbuf;
|
1601
|
+
LOpcode op = i->opcode();
|
1602
|
+
switch(op)
|
1603
|
+
{
|
1604
|
+
case LIR_int:
|
1605
|
+
{
|
1606
|
+
VMPI_sprintf(s, "%s = %s %d", formatRef(i), lirNames[op], i->imm32());
|
1607
|
+
break;
|
1608
|
+
}
|
1798
1609
|
|
1799
1610
|
case LIR_alloc: {
|
1800
|
-
|
1611
|
+
VMPI_sprintf(s, "%s = %s %d", formatRef(i), lirNames[op], i->size());
|
1612
|
+
break;
|
1613
|
+
}
|
1614
|
+
|
1615
|
+
case LIR_quad:
|
1616
|
+
{
|
1617
|
+
VMPI_sprintf(s, "%s = %s #%X:%X /* %g */", formatRef(i), lirNames[op],
|
1618
|
+
i->imm64_1(), i->imm64_0(), i->imm64f());
|
1801
1619
|
break;
|
1802
1620
|
}
|
1803
1621
|
|
1804
|
-
|
1805
|
-
|
1806
|
-
|
1807
|
-
|
1808
|
-
|
1809
|
-
}
|
1622
|
+
case LIR_float:
|
1623
|
+
{
|
1624
|
+
VMPI_sprintf(s, "%s = %s #%g", formatRef(i), lirNames[op], i->imm64f());
|
1625
|
+
break;
|
1626
|
+
}
|
1810
1627
|
|
1811
|
-
|
1812
|
-
|
1813
|
-
|
1814
|
-
|
1628
|
+
case LIR_start:
|
1629
|
+
case LIR_regfence:
|
1630
|
+
VMPI_sprintf(s, "%s", lirNames[op]);
|
1631
|
+
break;
|
1815
1632
|
|
1816
|
-
|
1817
|
-
|
1818
|
-
|
1819
|
-
|
1820
|
-
case LIR_call: {
|
1821
|
-
sprintf(s, "%s = %s ( ", formatRef(i), i->callInfo()->_name);
|
1822
|
-
for (int32_t j=i->argc()-1; j >= 0; j--) {
|
1823
|
-
s += strlen(s);
|
1824
|
-
sprintf(s, "%s ",formatRef(i->arg(j)));
|
1825
|
-
}
|
1826
|
-
s += strlen(s);
|
1827
|
-
sprintf(s, ")");
|
1828
|
-
break;
|
1829
|
-
}
|
1830
|
-
case LIR_fcalli:
|
1831
|
-
case LIR_calli: {
|
1633
|
+
case LIR_qcall:
|
1634
|
+
case LIR_fcall:
|
1635
|
+
case LIR_icall: {
|
1636
|
+
const CallInfo* call = i->callInfo();
|
1832
1637
|
int32_t argc = i->argc();
|
1833
|
-
|
1834
|
-
|
1835
|
-
|
1836
|
-
|
1837
|
-
|
1838
|
-
|
1839
|
-
|
1840
|
-
|
1841
|
-
|
1842
|
-
|
1843
|
-
|
1844
|
-
|
1845
|
-
|
1846
|
-
|
1847
|
-
|
1848
|
-
|
1849
|
-
|
1850
|
-
|
1851
|
-
|
1852
|
-
|
1853
|
-
|
1854
|
-
|
1855
|
-
|
1856
|
-
|
1857
|
-
|
1858
|
-
|
1859
|
-
|
1860
|
-
|
1861
|
-
|
1862
|
-
|
1863
|
-
|
1864
|
-
|
1865
|
-
|
1866
|
-
|
1867
|
-
|
1638
|
+
if (call->isIndirect())
|
1639
|
+
VMPI_sprintf(s, "%s = %s [%s] ( ", formatRef(i), lirNames[op], formatRef(i->arg(--argc)));
|
1640
|
+
else
|
1641
|
+
VMPI_sprintf(s, "%s = %s #%s ( ", formatRef(i), lirNames[op], call->_name);
|
1642
|
+
for (int32_t j = argc - 1; j >= 0; j--) {
|
1643
|
+
s += VMPI_strlen(s);
|
1644
|
+
VMPI_sprintf(s, "%s ",formatRef(i->arg(j)));
|
1645
|
+
}
|
1646
|
+
s += VMPI_strlen(s);
|
1647
|
+
VMPI_sprintf(s, ")");
|
1648
|
+
break;
|
1649
|
+
}
|
1650
|
+
|
1651
|
+
case LIR_param: {
|
1652
|
+
uint32_t arg = i->paramArg();
|
1653
|
+
if (!i->paramKind()) {
|
1654
|
+
if (arg < sizeof(Assembler::argRegs)/sizeof(Assembler::argRegs[0])) {
|
1655
|
+
VMPI_sprintf(s, "%s = %s %d %s", formatRef(i), lirNames[op],
|
1656
|
+
arg, gpn(Assembler::argRegs[arg]));
|
1657
|
+
} else {
|
1658
|
+
VMPI_sprintf(s, "%s = %s %d", formatRef(i), lirNames[op], arg);
|
1659
|
+
}
|
1660
|
+
} else {
|
1661
|
+
VMPI_sprintf(s, "%s = %s %d %s", formatRef(i), lirNames[op],
|
1662
|
+
arg, gpn(Assembler::savedRegs[arg]));
|
1663
|
+
}
|
1664
|
+
break;
|
1665
|
+
}
|
1666
|
+
|
1667
|
+
case LIR_label:
|
1668
|
+
VMPI_sprintf(s, "%s:", formatRef(i));
|
1669
|
+
break;
|
1670
|
+
|
1671
|
+
case LIR_jt:
|
1672
|
+
case LIR_jf:
|
1673
|
+
VMPI_sprintf(s, "%s %s -> %s", lirNames[op], formatRef(i->oprnd1()),
|
1868
1674
|
i->oprnd2() ? formatRef(i->oprnd2()) : "unpatched");
|
1869
|
-
|
1675
|
+
break;
|
1870
1676
|
|
1871
|
-
|
1872
|
-
|
1677
|
+
case LIR_j:
|
1678
|
+
VMPI_sprintf(s, "%s -> %s", lirNames[op],
|
1873
1679
|
i->oprnd2() ? formatRef(i->oprnd2()) : "unpatched");
|
1874
|
-
|
1680
|
+
break;
|
1875
1681
|
|
1876
1682
|
case LIR_live:
|
1877
|
-
|
1683
|
+
case LIR_ret:
|
1878
1684
|
case LIR_fret:
|
1879
|
-
|
1880
|
-
|
1881
|
-
|
1685
|
+
VMPI_sprintf(s, "%s %s", lirNames[op], formatRef(i->oprnd1()));
|
1686
|
+
break;
|
1687
|
+
|
1882
1688
|
case LIR_callh:
|
1883
|
-
|
1884
|
-
|
1885
|
-
|
1886
|
-
|
1887
|
-
|
1888
|
-
|
1689
|
+
case LIR_neg:
|
1690
|
+
case LIR_fneg:
|
1691
|
+
case LIR_i2f:
|
1692
|
+
case LIR_u2f:
|
1693
|
+
case LIR_qlo:
|
1694
|
+
case LIR_qhi:
|
1889
1695
|
case LIR_ov:
|
1890
|
-
case
|
1891
|
-
|
1892
|
-
|
1893
|
-
|
1894
|
-
|
1895
|
-
|
1896
|
-
|
1897
|
-
|
1898
|
-
|
1899
|
-
|
1900
|
-
|
1901
|
-
|
1902
|
-
|
1903
|
-
|
1904
|
-
|
1905
|
-
|
1906
|
-
|
1907
|
-
|
1908
|
-
|
1909
|
-
|
1910
|
-
|
1911
|
-
|
1912
|
-
|
1913
|
-
|
1914
|
-
|
1915
|
-
|
1916
|
-
|
1917
|
-
|
1918
|
-
|
1919
|
-
|
1920
|
-
|
1921
|
-
|
1922
|
-
|
1923
|
-
|
1924
|
-
|
1925
|
-
|
1926
|
-
|
1927
|
-
|
1928
|
-
|
1929
|
-
|
1930
|
-
|
1931
|
-
case
|
1932
|
-
case
|
1933
|
-
case
|
1934
|
-
|
1935
|
-
|
1936
|
-
|
1937
|
-
|
1938
|
-
|
1939
|
-
|
1940
|
-
|
1941
|
-
|
1942
|
-
|
1943
|
-
|
1944
|
-
|
1945
|
-
|
1946
|
-
|
1947
|
-
|
1948
|
-
|
1949
|
-
|
1950
|
-
|
1951
|
-
|
1952
|
-
|
1953
|
-
|
1954
|
-
|
1955
|
-
|
1956
|
-
|
1957
|
-
|
1958
|
-
|
1959
|
-
|
1960
|
-
|
1961
|
-
|
1962
|
-
|
1963
|
-
|
1964
|
-
|
1965
|
-
case LIR_st:
|
1696
|
+
case LIR_not:
|
1697
|
+
case LIR_mod:
|
1698
|
+
case LIR_i2q:
|
1699
|
+
case LIR_u2q:
|
1700
|
+
VMPI_sprintf(s, "%s = %s %s", formatRef(i), lirNames[op], formatRef(i->oprnd1()));
|
1701
|
+
break;
|
1702
|
+
|
1703
|
+
case LIR_x:
|
1704
|
+
case LIR_xt:
|
1705
|
+
case LIR_xf:
|
1706
|
+
case LIR_xbarrier:
|
1707
|
+
case LIR_xtbl:
|
1708
|
+
formatGuard(i, s);
|
1709
|
+
break;
|
1710
|
+
|
1711
|
+
case LIR_add: case LIR_qiadd:
|
1712
|
+
case LIR_iaddp: case LIR_qaddp:
|
1713
|
+
case LIR_sub:
|
1714
|
+
case LIR_mul:
|
1715
|
+
case LIR_div:
|
1716
|
+
case LIR_fadd:
|
1717
|
+
case LIR_fsub:
|
1718
|
+
case LIR_fmul:
|
1719
|
+
case LIR_fdiv:
|
1720
|
+
case LIR_and: case LIR_qiand:
|
1721
|
+
case LIR_or: case LIR_qior:
|
1722
|
+
case LIR_xor: case LIR_qxor:
|
1723
|
+
case LIR_lsh: case LIR_qilsh:
|
1724
|
+
case LIR_rsh: case LIR_qirsh:
|
1725
|
+
case LIR_ush: case LIR_qursh:
|
1726
|
+
case LIR_eq: case LIR_qeq:
|
1727
|
+
case LIR_lt: case LIR_qlt:
|
1728
|
+
case LIR_le: case LIR_qle:
|
1729
|
+
case LIR_gt: case LIR_qgt:
|
1730
|
+
case LIR_ge: case LIR_qge:
|
1731
|
+
case LIR_ult: case LIR_qult:
|
1732
|
+
case LIR_ule: case LIR_qule:
|
1733
|
+
case LIR_ugt: case LIR_qugt:
|
1734
|
+
case LIR_uge: case LIR_quge:
|
1735
|
+
case LIR_feq:
|
1736
|
+
case LIR_flt:
|
1737
|
+
case LIR_fle:
|
1738
|
+
case LIR_fgt:
|
1739
|
+
case LIR_fge:
|
1740
|
+
VMPI_sprintf(s, "%s = %s %s, %s", formatRef(i), lirNames[op],
|
1741
|
+
formatRef(i->oprnd1()),
|
1742
|
+
formatRef(i->oprnd2()));
|
1743
|
+
break;
|
1744
|
+
|
1745
|
+
case LIR_qjoin:
|
1746
|
+
VMPI_sprintf(s, "%s (%s), %s", lirNames[op],
|
1747
|
+
formatIns(i->oprnd1()),
|
1748
|
+
formatRef(i->oprnd2()));
|
1749
|
+
break;
|
1750
|
+
|
1751
|
+
case LIR_qcmov:
|
1752
|
+
case LIR_cmov:
|
1753
|
+
VMPI_sprintf(s, "%s = %s %s ? %s : %s", formatRef(i), lirNames[op],
|
1754
|
+
formatRef(i->oprnd1()),
|
1755
|
+
formatRef(i->oprnd2()),
|
1756
|
+
formatRef(i->oprnd3()));
|
1757
|
+
break;
|
1758
|
+
|
1759
|
+
case LIR_ld:
|
1760
|
+
case LIR_ldc:
|
1761
|
+
case LIR_ldq:
|
1762
|
+
case LIR_ldqc:
|
1763
|
+
case LIR_ldcb:
|
1764
|
+
case LIR_ldcs:
|
1765
|
+
VMPI_sprintf(s, "%s = %s %s[%d]", formatRef(i), lirNames[op],
|
1766
|
+
formatRef(i->oprnd1()),
|
1767
|
+
i->disp());
|
1768
|
+
break;
|
1769
|
+
|
1966
1770
|
case LIR_sti:
|
1967
|
-
case LIR_stq:
|
1968
1771
|
case LIR_stqi:
|
1969
|
-
|
1970
|
-
|
1971
|
-
|
1972
|
-
|
1973
|
-
|
1772
|
+
VMPI_sprintf(s, "%s %s[%d] = %s", lirNames[op],
|
1773
|
+
formatRef(i->oprnd2()),
|
1774
|
+
i->disp(),
|
1775
|
+
formatRef(i->oprnd1()));
|
1776
|
+
break;
|
1974
1777
|
|
1975
|
-
|
1976
|
-
|
1977
|
-
|
1978
|
-
|
1979
|
-
|
1980
|
-
|
1778
|
+
default:
|
1779
|
+
VMPI_sprintf(s, "?");
|
1780
|
+
break;
|
1781
|
+
}
|
1782
|
+
return labels->dup(sbuf);
|
1783
|
+
}
|
1981
1784
|
|
1982
1785
|
|
1983
1786
|
#endif
|
1984
|
-
|
1985
|
-
|
1986
|
-
|
1987
|
-
|
1988
|
-
|
1989
|
-
|
1990
|
-
|
1991
|
-
|
1992
|
-
|
1993
|
-
|
1994
|
-
|
1995
|
-
|
1996
|
-
|
1997
|
-
|
1998
|
-
|
1999
|
-
|
2000
|
-
|
2001
|
-
|
2002
|
-
|
2003
|
-
|
2004
|
-
|
2005
|
-
|
2006
|
-
|
2007
|
-
|
2008
|
-
|
2009
|
-
|
2010
|
-
|
2011
|
-
|
2012
|
-
|
2013
|
-
|
2014
|
-
|
2015
|
-
|
2016
|
-
|
2017
|
-
|
2018
|
-
|
2019
|
-
|
2020
|
-
|
2021
|
-
|
2022
|
-
|
2023
|
-
|
2024
|
-
|
2025
|
-
|
2026
|
-
|
2027
|
-
|
2028
|
-
|
2029
|
-
|
2030
|
-
|
2031
|
-
|
2032
|
-
|
2033
|
-
|
2034
|
-
|
2035
|
-
|
2036
|
-
|
2037
|
-
|
2038
|
-
|
2039
|
-
|
2040
|
-
|
2041
|
-
|
2042
|
-
|
2043
|
-
|
2044
|
-
|
2045
|
-
|
2046
|
-
|
2047
|
-
|
2048
|
-
|
2049
|
-
|
2050
|
-
|
2051
|
-
|
2052
|
-
|
2053
|
-
|
2054
|
-
|
2055
|
-
|
2056
|
-
|
2057
|
-
|
2058
|
-
|
2059
|
-
|
2060
|
-
|
2061
|
-
|
2062
|
-
|
2063
|
-
|
2064
|
-
|
2065
|
-
|
2066
|
-
|
2067
|
-
|
2068
|
-
|
1787
|
+
CseFilter::CseFilter(LirWriter *out, Allocator& alloc)
|
1788
|
+
: LirWriter(out), exprs(alloc) {}
|
1789
|
+
|
1790
|
+
LIns* CseFilter::insImm(int32_t imm)
|
1791
|
+
{
|
1792
|
+
uint32_t k;
|
1793
|
+
LInsp found = exprs.find32(imm, k);
|
1794
|
+
if (found)
|
1795
|
+
return found;
|
1796
|
+
return exprs.add(out->insImm(imm), k);
|
1797
|
+
}
|
1798
|
+
|
1799
|
+
LIns* CseFilter::insImmq(uint64_t q)
|
1800
|
+
{
|
1801
|
+
uint32_t k;
|
1802
|
+
LInsp found = exprs.find64(LIR_quad, q, k);
|
1803
|
+
if (found)
|
1804
|
+
return found;
|
1805
|
+
return exprs.add(out->insImmq(q), k);
|
1806
|
+
}
|
1807
|
+
|
1808
|
+
LIns* CseFilter::insImmf(double d)
|
1809
|
+
{
|
1810
|
+
uint32_t k;
|
1811
|
+
union {
|
1812
|
+
double d;
|
1813
|
+
uint64_t u64;
|
1814
|
+
} u;
|
1815
|
+
u.d = d;
|
1816
|
+
LInsp found = exprs.find64(LIR_float, u.u64, k);
|
1817
|
+
if (found)
|
1818
|
+
return found;
|
1819
|
+
return exprs.add(out->insImmf(d), k);
|
1820
|
+
}
|
1821
|
+
|
1822
|
+
LIns* CseFilter::ins0(LOpcode v)
|
1823
|
+
{
|
1824
|
+
if (v == LIR_label)
|
1825
|
+
exprs.clear();
|
1826
|
+
return out->ins0(v);
|
1827
|
+
}
|
1828
|
+
|
1829
|
+
LIns* CseFilter::ins1(LOpcode v, LInsp a)
|
1830
|
+
{
|
1831
|
+
if (isCseOpcode(v)) {
|
1832
|
+
NanoAssert(operandCount[v]==1);
|
1833
|
+
uint32_t k;
|
1834
|
+
LInsp found = exprs.find1(v, a, k);
|
1835
|
+
if (found)
|
1836
|
+
return found;
|
1837
|
+
return exprs.add(out->ins1(v,a), k);
|
1838
|
+
}
|
1839
|
+
return out->ins1(v,a);
|
1840
|
+
}
|
1841
|
+
|
1842
|
+
LIns* CseFilter::ins2(LOpcode v, LInsp a, LInsp b)
|
1843
|
+
{
|
1844
|
+
if (isCseOpcode(v)) {
|
1845
|
+
NanoAssert(operandCount[v]==2);
|
1846
|
+
uint32_t k;
|
1847
|
+
LInsp found = exprs.find2(v, a, b, k);
|
1848
|
+
if (found)
|
1849
|
+
return found;
|
1850
|
+
return exprs.add(out->ins2(v,a,b), k);
|
1851
|
+
}
|
1852
|
+
return out->ins2(v,a,b);
|
1853
|
+
}
|
1854
|
+
|
1855
|
+
LIns* CseFilter::ins3(LOpcode v, LInsp a, LInsp b, LInsp c)
|
1856
|
+
{
|
1857
|
+
NanoAssert(isCseOpcode(v));
|
1858
|
+
NanoAssert(operandCount[v]==3);
|
1859
|
+
uint32_t k;
|
1860
|
+
LInsp found = exprs.find3(v, a, b, c, k);
|
1861
|
+
if (found)
|
1862
|
+
return found;
|
1863
|
+
return exprs.add(out->ins3(v,a,b,c), k);
|
1864
|
+
}
|
1865
|
+
|
1866
|
+
LIns* CseFilter::insLoad(LOpcode v, LInsp base, int32_t disp)
|
1867
|
+
{
|
1868
|
+
if (isCseOpcode(v)) {
|
1869
|
+
NanoAssert(operandCount[v]==1);
|
1870
|
+
uint32_t k;
|
1871
|
+
LInsp found = exprs.findLoad(v, base, disp, k);
|
1872
|
+
if (found)
|
1873
|
+
return found;
|
1874
|
+
return exprs.add(out->insLoad(v,base,disp), k);
|
1875
|
+
}
|
1876
|
+
return out->insLoad(v,base,disp);
|
1877
|
+
}
|
1878
|
+
|
1879
|
+
LInsp CseFilter::insGuard(LOpcode v, LInsp c, GuardRecord *gr)
|
1880
|
+
{
|
1881
|
+
// LIR_xt and LIR_xf guards are CSEable. Note that we compare the
|
1882
|
+
// opcode and condition when determining if two guards are equivalent
|
1883
|
+
// -- in find1(), hash1(), equals() and hashcode() -- but we do *not*
|
1884
|
+
// compare the GuardRecord. This works because:
|
1885
|
+
// - If guard 1 is taken (exits) then guard 2 is never reached, so
|
1886
|
+
// guard 2 can be removed.
|
1887
|
+
// - If guard 1 is not taken then neither is guard 2, so guard 2 can
|
1888
|
+
// be removed.
|
1889
|
+
//
|
1890
|
+
// The underlying assumptions that are required for this to be safe:
|
1891
|
+
// - There's never a path from the side exit of guard 1 back to guard
|
1892
|
+
// 2; for tree-shaped fragments this should be true.
|
1893
|
+
// - GuardRecords do not contain information other than what is needed
|
1894
|
+
// to execute a successful exit. That is currently true.
|
1895
|
+
// - The CSE algorithm will always keep guard 1 and remove guard 2
|
1896
|
+
// (not vice versa). The current algorithm does this.
|
1897
|
+
//
|
1898
|
+
if (isCseOpcode(v)) {
|
1899
|
+
// conditional guard
|
1900
|
+
NanoAssert(operandCount[v]==1);
|
1901
|
+
uint32_t k;
|
1902
|
+
LInsp found = exprs.find1(v, c, k);
|
1903
|
+
if (found)
|
1904
|
+
return 0;
|
1905
|
+
return exprs.add(out->insGuard(v,c,gr), k);
|
1906
|
+
}
|
1907
|
+
return out->insGuard(v, c, gr);
|
1908
|
+
}
|
1909
|
+
|
1910
|
+
LInsp CseFilter::insCall(const CallInfo *ci, LInsp args[])
|
1911
|
+
{
|
1912
|
+
if (ci->_cse) {
|
1913
|
+
uint32_t k;
|
2069
1914
|
uint32_t argc = ci->count_args();
|
2070
|
-
|
2071
|
-
|
2072
|
-
|
2073
|
-
|
2074
|
-
|
2075
|
-
|
2076
|
-
|
2077
|
-
|
2078
|
-
|
2079
|
-
|
2080
|
-
|
2081
|
-
|
2082
|
-
|
2083
|
-
|
2084
|
-
|
2085
|
-
|
2086
|
-
|
2087
|
-
|
2088
|
-
|
2089
|
-
|
2090
|
-
|
2091
|
-
|
2092
|
-
|
2093
|
-
|
2094
|
-
|
2095
|
-
|
2096
|
-
|
2097
|
-
|
2098
|
-
|
2099
|
-
|
2100
|
-
|
2101
|
-
|
2102
|
-
|
2103
|
-
|
2104
|
-
|
2105
|
-
|
2106
|
-
|
2107
|
-
|
2108
|
-
|
2109
|
-
|
2110
|
-
|
2111
|
-
|
2112
|
-
|
2113
|
-
//
|
2114
|
-
|
2115
|
-
|
2116
|
-
|
2117
|
-
|
2118
|
-
|
2119
|
-
|
2120
|
-
|
2121
|
-
|
2122
|
-
|
2123
|
-
|
2124
|
-
|
2125
|
-
|
2126
|
-
|
2127
|
-
|
2128
|
-
|
2129
|
-
|
2130
|
-
|
2131
|
-
|
2132
|
-
|
2133
|
-
|
2134
|
-
|
2135
|
-
|
2136
|
-
|
2137
|
-
|
2138
|
-
|
2139
|
-
|
2140
|
-
|
2141
|
-
|
2142
|
-
|
2143
|
-
|
2144
|
-
|
2145
|
-
|
2146
|
-
|
2147
|
-
|
2148
|
-
|
2149
|
-
|
2150
|
-
|
2151
|
-
|
2152
|
-
|
2153
|
-
|
2154
|
-
|
2155
|
-
|
2156
|
-
|
2157
|
-
|
2158
|
-
|
2159
|
-
|
2160
|
-
|
2161
|
-
|
2162
|
-
|
2163
|
-
|
2164
|
-
|
2165
|
-
|
2166
|
-
|
2167
|
-
|
2168
|
-
|
2169
|
-
|
2170
|
-
|
2171
|
-
|
1915
|
+
LInsp found = exprs.findcall(ci, argc, args, k);
|
1916
|
+
if (found)
|
1917
|
+
return found;
|
1918
|
+
return exprs.add(out->insCall(ci, args), k);
|
1919
|
+
}
|
1920
|
+
return out->insCall(ci, args);
|
1921
|
+
}
|
1922
|
+
|
1923
|
+
void compile(Assembler* assm, Fragment* frag verbose_only(, Allocator& alloc, LabelMap* labels))
|
1924
|
+
{
|
1925
|
+
verbose_only(
|
1926
|
+
LogControl *logc = assm->_logc;
|
1927
|
+
bool anyVerb = (logc->lcbits & 0xFFFF & ~LC_FragProfile) > 0;
|
1928
|
+
bool asmVerb = (logc->lcbits & 0xFFFF & LC_Assembly) > 0;
|
1929
|
+
bool liveVerb = (logc->lcbits & 0xFFFF & LC_Liveness) > 0;
|
1930
|
+
)
|
1931
|
+
|
1932
|
+
/* BEGIN decorative preamble */
|
1933
|
+
verbose_only(
|
1934
|
+
if (anyVerb) {
|
1935
|
+
logc->printf("========================================"
|
1936
|
+
"========================================\n");
|
1937
|
+
logc->printf("=== BEGIN LIR::compile(%p, %p)\n",
|
1938
|
+
(void*)assm, (void*)frag);
|
1939
|
+
logc->printf("===\n");
|
1940
|
+
})
|
1941
|
+
/* END decorative preamble */
|
1942
|
+
|
1943
|
+
verbose_only( if (liveVerb) {
|
1944
|
+
logc->printf("\n");
|
1945
|
+
logc->printf("=== Results of liveness analysis:\n");
|
1946
|
+
logc->printf("===\n");
|
1947
|
+
live(alloc, frag, logc);
|
1948
|
+
})
|
1949
|
+
|
1950
|
+
/* Set up the generic text output cache for the assembler */
|
1951
|
+
verbose_only( StringList asmOutput(alloc); )
|
1952
|
+
verbose_only( assm->_outputCache = &asmOutput; )
|
1953
|
+
|
1954
|
+
assm->beginAssembly(frag);
|
1955
|
+
if (assm->error())
|
1956
|
+
return;
|
1957
|
+
|
1958
|
+
//logc->printf("recompile trigger %X kind %d\n", (int)frag, frag->kind);
|
1959
|
+
|
1960
|
+
verbose_only( if (anyVerb) {
|
1961
|
+
logc->printf("=== Translating LIR fragments into assembly:\n");
|
1962
|
+
})
|
1963
|
+
|
1964
|
+
// now the the main trunk
|
1965
|
+
verbose_only( if (anyVerb) {
|
1966
|
+
logc->printf("=== -- Compile trunk %s: begin\n",
|
1967
|
+
labels->format(frag));
|
1968
|
+
})
|
1969
|
+
assm->assemble(frag);
|
1970
|
+
verbose_only( if (anyVerb) {
|
1971
|
+
logc->printf("=== -- Compile trunk %s: end\n",
|
1972
|
+
labels->format(frag));
|
1973
|
+
})
|
1974
|
+
|
1975
|
+
verbose_only(
|
1976
|
+
if (asmVerb)
|
1977
|
+
assm->outputf("## compiling trunk %s",
|
1978
|
+
labels->format(frag));
|
1979
|
+
)
|
1980
|
+
assm->endAssembly(frag);
|
1981
|
+
|
1982
|
+
// reverse output so that assembly is displayed low-to-high
|
1983
|
+
// Up to this point, assm->_outputCache has been non-NULL, and so
|
1984
|
+
// has been accumulating output. Now we set it to NULL, traverse
|
1985
|
+
// the entire list of stored strings, and hand them a second time
|
1986
|
+
// to assm->output. Since _outputCache is now NULL, outputf just
|
1987
|
+
// hands these strings directly onwards to logc->printf.
|
1988
|
+
verbose_only( if (anyVerb) {
|
1989
|
+
logc->printf("\n");
|
1990
|
+
logc->printf("=== Aggregated assembly output: BEGIN\n");
|
1991
|
+
logc->printf("===\n");
|
1992
|
+
assm->_outputCache = 0;
|
1993
|
+
for (Seq<char*>* p = asmOutput.get(); p != NULL; p = p->tail) {
|
1994
|
+
char *str = p->head;
|
1995
|
+
assm->outputf(" %s", str);
|
1996
|
+
}
|
1997
|
+
logc->printf("===\n");
|
1998
|
+
logc->printf("=== Aggregated assembly output: END\n");
|
1999
|
+
});
|
2000
|
+
|
2001
|
+
if (assm->error())
|
2002
|
+
frag->fragEntry = 0;
|
2003
|
+
|
2004
|
+
verbose_only( frag->nCodeBytes += assm->codeBytes; )
|
2005
|
+
verbose_only( frag->nExitBytes += assm->exitBytes; )
|
2006
|
+
|
2007
|
+
/* BEGIN decorative postamble */
|
2008
|
+
verbose_only( if (anyVerb) {
|
2009
|
+
logc->printf("\n");
|
2010
|
+
logc->printf("===\n");
|
2011
|
+
logc->printf("=== END LIR::compile(%p, %p)\n",
|
2012
|
+
(void*)assm, (void*)frag);
|
2013
|
+
logc->printf("========================================"
|
2014
|
+
"========================================\n");
|
2015
|
+
logc->printf("\n");
|
2016
|
+
});
|
2017
|
+
/* END decorative postamble */
|
2018
|
+
}
|
2019
|
+
|
2020
|
+
LInsp LoadFilter::insLoad(LOpcode v, LInsp base, int32_t disp)
|
2172
2021
|
{
|
2173
2022
|
if (base != sp && base != rp && (v == LIR_ld || v == LIR_ldq)) {
|
2174
2023
|
uint32_t k;
|
2175
|
-
LInsp found = exprs.
|
2024
|
+
LInsp found = exprs.findLoad(v, base, disp, k);
|
2176
2025
|
if (found)
|
2177
2026
|
return found;
|
2178
2027
|
return exprs.add(out->insLoad(v,base,disp), k);
|
@@ -2186,12 +2035,6 @@ namespace nanojit
|
|
2186
2035
|
exprs.clear();
|
2187
2036
|
}
|
2188
2037
|
|
2189
|
-
LInsp LoadFilter::insStore(LInsp v, LInsp b, LInsp d)
|
2190
|
-
{
|
2191
|
-
clear(b);
|
2192
|
-
return out->insStore(v, b, d);
|
2193
|
-
}
|
2194
|
-
|
2195
2038
|
LInsp LoadFilter::insStorei(LInsp v, LInsp b, int32_t d)
|
2196
2039
|
{
|
2197
2040
|
clear(b);
|
@@ -2212,103 +2055,179 @@ namespace nanojit
|
|
2212
2055
|
return out->ins0(op);
|
2213
2056
|
}
|
2214
2057
|
|
2215
|
-
|
2058
|
+
#endif /* FEATURE_NANOJIT */
|
2216
2059
|
|
2217
2060
|
#if defined(NJ_VERBOSE)
|
2218
|
-
LabelMap::LabelMap(
|
2219
|
-
:
|
2220
|
-
|
2061
|
+
LabelMap::LabelMap(Allocator& a, LogControl *logc)
|
2062
|
+
: allocator(a), names(a), logc(logc), end(buf)
|
2063
|
+
{}
|
2221
2064
|
|
2222
|
-
LabelMap
|
2065
|
+
void LabelMap::add(const void *p, size_t size, size_t align, const char *name)
|
2223
2066
|
{
|
2224
|
-
|
2067
|
+
if (!this || names.containsKey(p))
|
2068
|
+
return;
|
2069
|
+
char* copy = new (allocator) char[VMPI_strlen(name)+1];
|
2070
|
+
VMPI_strcpy(copy, name);
|
2071
|
+
Entry *e = new (allocator) Entry(copy, size << align, align);
|
2072
|
+
names.put(p, e);
|
2073
|
+
}
|
2074
|
+
|
2075
|
+
const char *LabelMap::format(const void *p)
|
2076
|
+
{
|
2077
|
+
char b[200];
|
2078
|
+
|
2079
|
+
const void *start = names.findNear(p);
|
2080
|
+
if (start != NULL) {
|
2081
|
+
Entry *e = names.get(start);
|
2082
|
+
const void *end = (const char*)start + e->size;
|
2083
|
+
const char *name = e->name;
|
2084
|
+
if (p == start) {
|
2085
|
+
if (!(logc->lcbits & LC_NoCodeAddrs))
|
2086
|
+
VMPI_sprintf(b,"%p %s",p,name);
|
2087
|
+
else
|
2088
|
+
VMPI_strcpy(b, name);
|
2089
|
+
return dup(b);
|
2090
|
+
}
|
2091
|
+
else if (p > start && p < end) {
|
2092
|
+
int32_t d = int32_t(intptr_t(p)-intptr_t(start)) >> e->align;
|
2093
|
+
if (!(logc->lcbits & LC_NoCodeAddrs))
|
2094
|
+
VMPI_sprintf(b, "%p %s+%d", p, name, d);
|
2095
|
+
else
|
2096
|
+
VMPI_sprintf(b,"%s+%d", name, d);
|
2097
|
+
return dup(b);
|
2098
|
+
}
|
2099
|
+
else {
|
2100
|
+
VMPI_sprintf(b, "%p", p);
|
2101
|
+
return dup(b);
|
2102
|
+
}
|
2103
|
+
}
|
2104
|
+
VMPI_sprintf(b, "%p", p);
|
2105
|
+
return dup(b);
|
2225
2106
|
}
|
2226
2107
|
|
2227
|
-
|
2108
|
+
const char *LabelMap::dup(const char *b)
|
2228
2109
|
{
|
2229
|
-
|
2230
|
-
|
2231
|
-
|
2232
|
-
|
2233
|
-
|
2110
|
+
size_t need = VMPI_strlen(b)+1;
|
2111
|
+
NanoAssert(need <= sizeof(buf));
|
2112
|
+
char *s = end;
|
2113
|
+
end += need;
|
2114
|
+
if (end > buf+sizeof(buf)) {
|
2115
|
+
s = buf;
|
2116
|
+
end = s+need;
|
2117
|
+
}
|
2118
|
+
VMPI_strcpy(s, b);
|
2119
|
+
return s;
|
2234
2120
|
}
|
2235
2121
|
|
2236
|
-
|
2237
|
-
|
2238
|
-
|
2239
|
-
return;
|
2240
|
-
add(p, size, align, core->newString(name));
|
2241
|
-
}
|
2122
|
+
// ---------------------------------------------------------------
|
2123
|
+
// START debug-logging definitions
|
2124
|
+
// ---------------------------------------------------------------
|
2242
2125
|
|
2243
|
-
void
|
2126
|
+
void LogControl::printf( const char* format, ... )
|
2244
2127
|
{
|
2245
|
-
|
2246
|
-
|
2247
|
-
|
2248
|
-
|
2128
|
+
va_list vargs;
|
2129
|
+
va_start(vargs, format);
|
2130
|
+
vfprintf(stdout, format, vargs);
|
2131
|
+
va_end(vargs);
|
2249
2132
|
}
|
2250
2133
|
|
2251
|
-
const char *LabelMap::format(const void *p)
|
2252
|
-
{
|
2253
|
-
char b[200];
|
2254
|
-
int i = names.findNear(p);
|
2255
|
-
if (i >= 0) {
|
2256
|
-
const void *start = names.keyAt(i);
|
2257
|
-
Entry *e = names.at(i);
|
2258
|
-
const void *end = (const char*)start + e->size;
|
2259
|
-
avmplus::StringNullTerminatedUTF8 cname(core->gc, e->name);
|
2260
|
-
const char *name = cname.c_str();
|
2261
|
-
if (p == start) {
|
2262
|
-
if (addrs)
|
2263
|
-
sprintf(b,"%p %s",p,name);
|
2264
|
-
else
|
2265
|
-
strcpy(b, name);
|
2266
|
-
return dup(b);
|
2267
|
-
}
|
2268
|
-
else if (p > start && p < end) {
|
2269
|
-
int32_t d = int32_t(intptr_t(p)-intptr_t(start)) >> e->align;
|
2270
|
-
if (addrs)
|
2271
|
-
sprintf(b, "%p %s+%d", p, name, d);
|
2272
|
-
else
|
2273
|
-
sprintf(b,"%s+%d", name, d);
|
2274
|
-
return dup(b);
|
2275
|
-
}
|
2276
|
-
else {
|
2277
|
-
if (parent)
|
2278
|
-
return parent->format(p);
|
2279
|
-
|
2280
|
-
sprintf(b, "%p", p);
|
2281
|
-
return dup(b);
|
2282
|
-
}
|
2283
|
-
}
|
2284
|
-
if (parent)
|
2285
|
-
return parent->format(p);
|
2286
|
-
|
2287
|
-
sprintf(b, "%p", p);
|
2288
|
-
return dup(b);
|
2289
|
-
}
|
2290
|
-
|
2291
|
-
const char *LabelMap::dup(const char *b)
|
2292
|
-
{
|
2293
|
-
size_t need = strlen(b)+1;
|
2294
|
-
char *s = end;
|
2295
|
-
end += need;
|
2296
|
-
if (end > buf+sizeof(buf)) {
|
2297
|
-
s = buf;
|
2298
|
-
end = s+need;
|
2299
|
-
}
|
2300
|
-
strcpy(s, b);
|
2301
|
-
return s;
|
2302
|
-
}
|
2303
|
-
|
2304
|
-
// copy all labels to parent, adding newbase to label addresses
|
2305
|
-
void LabelMap::promoteAll(const void *newbase)
|
2306
|
-
{
|
2307
|
-
for (int i=0, n=names.size(); i < n; i++) {
|
2308
|
-
void *base = (char*)newbase + (intptr_t)names.keyAt(i);
|
2309
|
-
parent->names.put(base, names.at(i));
|
2310
|
-
}
|
2311
|
-
}
|
2312
2134
|
#endif // NJ_VERBOSE
|
2135
|
+
|
2136
|
+
|
2137
|
+
#ifdef FEATURE_NANOJIT
|
2138
|
+
#ifdef DEBUG
|
2139
|
+
LIns* SanityFilter::ins1(LOpcode v, LIns* s0)
|
2140
|
+
{
|
2141
|
+
switch (v)
|
2142
|
+
{
|
2143
|
+
case LIR_fneg:
|
2144
|
+
case LIR_fret:
|
2145
|
+
case LIR_qlo:
|
2146
|
+
case LIR_qhi:
|
2147
|
+
NanoAssert(s0->isQuad());
|
2148
|
+
break;
|
2149
|
+
case LIR_not:
|
2150
|
+
case LIR_neg:
|
2151
|
+
case LIR_u2f:
|
2152
|
+
case LIR_i2f:
|
2153
|
+
case LIR_i2q: case LIR_u2q:
|
2154
|
+
NanoAssert(!s0->isQuad());
|
2155
|
+
break;
|
2156
|
+
default:
|
2157
|
+
break;
|
2158
|
+
}
|
2159
|
+
return out->ins1(v, s0);
|
2160
|
+
}
|
2161
|
+
|
2162
|
+
LIns* SanityFilter::ins2(LOpcode v, LIns* s0, LIns* s1)
|
2163
|
+
{
|
2164
|
+
switch (v) {
|
2165
|
+
case LIR_fadd:
|
2166
|
+
case LIR_fsub:
|
2167
|
+
case LIR_fmul:
|
2168
|
+
case LIR_fdiv:
|
2169
|
+
case LIR_feq:
|
2170
|
+
case LIR_flt:
|
2171
|
+
case LIR_fgt:
|
2172
|
+
case LIR_fle:
|
2173
|
+
case LIR_fge:
|
2174
|
+
case LIR_qaddp:
|
2175
|
+
case LIR_qior:
|
2176
|
+
case LIR_qxor:
|
2177
|
+
case LIR_qiand:
|
2178
|
+
case LIR_qiadd:
|
2179
|
+
case LIR_qeq:
|
2180
|
+
case LIR_qlt: case LIR_qult:
|
2181
|
+
case LIR_qgt: case LIR_qugt:
|
2182
|
+
case LIR_qle: case LIR_quge:
|
2183
|
+
NanoAssert(s0->isQuad() && s1->isQuad());
|
2184
|
+
break;
|
2185
|
+
case LIR_add:
|
2186
|
+
case LIR_iaddp:
|
2187
|
+
case LIR_sub:
|
2188
|
+
case LIR_mul:
|
2189
|
+
case LIR_and:
|
2190
|
+
case LIR_or:
|
2191
|
+
case LIR_xor:
|
2192
|
+
case LIR_lsh:
|
2193
|
+
case LIR_rsh:
|
2194
|
+
case LIR_ush:
|
2195
|
+
case LIR_eq:
|
2196
|
+
case LIR_lt: case LIR_ult:
|
2197
|
+
case LIR_gt: case LIR_ugt:
|
2198
|
+
case LIR_le: case LIR_ule:
|
2199
|
+
case LIR_ge: case LIR_uge:
|
2200
|
+
NanoAssert(!s0->isQuad() && !s1->isQuad());
|
2201
|
+
break;
|
2202
|
+
case LIR_qilsh:
|
2203
|
+
case LIR_qirsh:
|
2204
|
+
case LIR_qursh:
|
2205
|
+
NanoAssert(s0->isQuad() && !s1->isQuad());
|
2206
|
+
break;
|
2207
|
+
default:
|
2208
|
+
break;
|
2209
|
+
}
|
2210
|
+
return out->ins2(v, s0, s1);
|
2211
|
+
}
|
2212
|
+
|
2213
|
+
LIns* SanityFilter::ins3(LOpcode v, LIns* s0, LIns* s1, LIns* s2)
|
2214
|
+
{
|
2215
|
+
switch (v)
|
2216
|
+
{
|
2217
|
+
case LIR_cmov:
|
2218
|
+
NanoAssert(s0->isCond() || s0->isconst());
|
2219
|
+
NanoAssert(!s1->isQuad() && !s2->isQuad());
|
2220
|
+
break;
|
2221
|
+
case LIR_qcmov:
|
2222
|
+
NanoAssert(s0->isCond() || s0->isconst());
|
2223
|
+
NanoAssert(s1->isQuad() && s2->isQuad());
|
2224
|
+
break;
|
2225
|
+
default:
|
2226
|
+
break;
|
2227
|
+
}
|
2228
|
+
return out->ins3(v, s0, s1, s2);
|
2229
|
+
}
|
2230
|
+
#endif
|
2231
|
+
#endif
|
2232
|
+
|
2313
2233
|
}
|
2314
|
-
|