Revert to 6840fbf4dcdd
authorBrian Hackett <bhackett1024@gmail.com>
Fri, 08 Jul 2011 17:58:10 -0700
changeset 75190 91d03c862602e73da95cff37fd17b3132f8b870f
parent 75189 7161655b839feb610961a4adfd6a1bfb15015cdd
child 75191 bfb3327952fd07aa05055444b2ed6ab75ba26945
push id2
push userbsmedberg@mozilla.com
push dateFri, 19 Aug 2011 14:38:13 +0000
milestone8.0a1
Revert to 6840fbf4dcdd
browser/base/content/browser.js
dom/base/nsDOMClassInfo.cpp
dom/base/nsJSEnvironment.cpp
js/src/Makefile.in
js/src/assembler/assembler/ARMAssembler.cpp
js/src/assembler/assembler/ARMAssembler.h
js/src/assembler/assembler/MacroAssembler.h
js/src/assembler/assembler/MacroAssemblerARM.h
js/src/assembler/assembler/MacroAssemblerX86Common.h
js/src/assembler/assembler/MacroAssemblerX86_64.h
js/src/assembler/assembler/X86Assembler.h
js/src/frontend/ParseMaps-inl.h
js/src/imacro_asm.py
js/src/imacros.jsasm
js/src/jit-test/jit_test.py
js/src/jit-test/tests/basic/arrayNatives.js
js/src/jit-test/tests/basic/arrayProto.js
js/src/jit-test/tests/basic/bug617745.js
js/src/jit-test/tests/basic/bug618853.js
js/src/jit-test/tests/basic/bug619338.js
js/src/jit-test/tests/basic/bug621487.js
js/src/jit-test/tests/basic/bug638981.js
js/src/jit-test/tests/basic/bug639126.js
js/src/jit-test/tests/basic/bug639128.js
js/src/jit-test/tests/basic/bug639311.js
js/src/jit-test/tests/basic/bug639529.js
js/src/jit-test/tests/basic/bug639591.js
js/src/jit-test/tests/basic/bug639759.js
js/src/jit-test/tests/basic/bug639797.js
js/src/jit-test/tests/basic/bug639807.js
js/src/jit-test/tests/basic/bug640078.js
js/src/jit-test/tests/basic/bug640079.js
js/src/jit-test/tests/basic/bug640203.js
js/src/jit-test/tests/basic/bug640993.js
js/src/jit-test/tests/basic/bug641224.js
js/src/jit-test/tests/basic/bug641229.js
js/src/jit-test/tests/basic/bug641231.js
js/src/jit-test/tests/basic/bug641235.js
js/src/jit-test/tests/basic/bug641491.js
js/src/jit-test/tests/basic/bug641525.js
js/src/jit-test/tests/basic/bug641741.js
js/src/jit-test/tests/basic/bug642154.js
js/src/jit-test/tests/basic/bug642161.js
js/src/jit-test/tests/basic/bug642164.js
js/src/jit-test/tests/basic/bug642206.js
js/src/jit-test/tests/basic/bug642248.js
js/src/jit-test/tests/basic/bug642254.js
js/src/jit-test/tests/basic/bug642319.js
js/src/jit-test/tests/basic/bug642326.js
js/src/jit-test/tests/basic/bug642422.js
js/src/jit-test/tests/basic/bug642569.js
js/src/jit-test/tests/basic/bug642592.js
js/src/jit-test/tests/basic/bug642758.js
js/src/jit-test/tests/basic/bug642894.js
js/src/jit-test/tests/basic/bug642985-1.js
js/src/jit-test/tests/basic/bug642985-2.js
js/src/jit-test/tests/basic/bug643113.js
js/src/jit-test/tests/basic/bug643169.js
js/src/jit-test/tests/basic/bug643243.js
js/src/jit-test/tests/basic/bug643244.js
js/src/jit-test/tests/basic/bug643249.js
js/src/jit-test/tests/basic/bug643285.js
js/src/jit-test/tests/basic/bug643670.js
js/src/jit-test/tests/basic/bug643733.js
js/src/jit-test/tests/basic/bug645293.js
js/src/jit-test/tests/basic/bug645632.js
js/src/jit-test/tests/basic/bug646393.js
js/src/jit-test/tests/basic/bug647463.js
js/src/jit-test/tests/basic/bug647695.js
js/src/jit-test/tests/basic/bug648357.js
js/src/jit-test/tests/basic/bug648773.js
js/src/jit-test/tests/basic/bug649439.js
js/src/jit-test/tests/basic/bug649771.js
js/src/jit-test/tests/basic/bug650148.js
js/src/jit-test/tests/basic/bug651451-2.js
js/src/jit-test/tests/basic/bug651451.js
js/src/jit-test/tests/basic/bug651966.js
js/src/jit-test/tests/basic/bug652422.js
js/src/jit-test/tests/basic/bug652646.js
js/src/jit-test/tests/basic/bug653262.js
js/src/jit-test/tests/basic/bug654668.js
js/src/jit-test/tests/basic/bug657197.js
js/src/jit-test/tests/basic/bug657225.js
js/src/jit-test/tests/basic/bug657245.js
js/src/jit-test/tests/basic/bug657901.js
js/src/jit-test/tests/basic/bug657975.js
js/src/jit-test/tests/basic/bug658539.js
js/src/jit-test/tests/basic/bug660081.js
js/src/jit-test/tests/basic/bug660173.js
js/src/jit-test/tests/basic/bug660203.js
js/src/jit-test/tests/basic/bug660204.js
js/src/jit-test/tests/basic/bug660538.js
js/src/jit-test/tests/basic/bug660597.js
js/src/jit-test/tests/basic/bug662044.js
js/src/jit-test/tests/basic/bug662338.js
js/src/jit-test/tests/basic/bug662562.js
js/src/jit-test/tests/basic/bug662841.js
js/src/jit-test/tests/basic/bug665289.js
js/src/jit-test/tests/basic/bug665812.js
js/src/jit-test/tests/basic/builtinLocals.js
js/src/jit-test/tests/basic/deleteToString.js
js/src/jit-test/tests/basic/nestedContinue.js
js/src/jit-test/tests/basic/primitiveProto.js
js/src/jit-test/tests/basic/singleton.js
js/src/jit-test/tests/basic/testArrayConcat.js
js/src/jit-test/tests/basic/testBug653396.js
js/src/jit-test/tests/basic/testCompileScript.js
js/src/jit-test/tests/basic/testNewWithClone.js
js/src/jit-test/tests/basic/testTrapOnEval.js
js/src/jit-test/tests/basic/testWith.js
js/src/jit-test/tests/basic/truncateDouble.js
js/src/jit-test/tests/basic/typeMonitorCall.js
js/src/jit-test/tests/jaeger/argumentsOptimize-1.js
js/src/jit-test/tests/jaeger/argumentsOptimize-2.js
js/src/jit-test/tests/jaeger/bug563000/eif-call-newvar.js
js/src/jit-test/tests/jaeger/bug563000/eif-getter-newvar.js
js/src/jit-test/tests/jaeger/bug563000/eif-trap-newvar.js
js/src/jit-test/tests/jaeger/bug563000/eif-trap.js
js/src/jit-test/tests/jaeger/bug563000/simple-trap-1.js
js/src/jit-test/tests/jaeger/bug563000/trap-from-add-inline.js
js/src/jit-test/tests/jaeger/bug563000/trap-from-add-ool.js
js/src/jit-test/tests/jaeger/bug563000/trap-parent.js
js/src/jit-test/tests/jaeger/bug563000/trap-self-as-parent.js
js/src/jit-test/tests/jaeger/bug563000/trap-self-from-trap.js
js/src/jit-test/tests/jaeger/bug563000/trap-self.js
js/src/jit-test/tests/jaeger/bug563000/untrap-self.js
js/src/jit-test/tests/jaeger/bug600139.js
js/src/jit-test/tests/jaeger/bug617433.js
js/src/jit-test/tests/jaeger/bug617440.js
js/src/jit-test/tests/jaeger/bug617458.js
js/src/jit-test/tests/jaeger/bug617460.js
js/src/jit-test/tests/jaeger/bug617549.js
js/src/jit-test/tests/jaeger/bug617558.js
js/src/jit-test/tests/jaeger/bug617624.js
js/src/jit-test/tests/jaeger/bug618849.js
js/src/jit-test/tests/jaeger/bug618850.js
js/src/jit-test/tests/jaeger/bug618863.js
js/src/jit-test/tests/jaeger/bug619339.js
js/src/jit-test/tests/jaeger/bug619433-1.js
js/src/jit-test/tests/jaeger/bug619433-2.js
js/src/jit-test/tests/jaeger/bug621522.js
js/src/jit-test/tests/jaeger/bug621655.js
js/src/jit-test/tests/jaeger/bug639459.js
js/src/jit-test/tests/jaeger/bug639478-1.js
js/src/jit-test/tests/jaeger/bug639478-2.js
js/src/jit-test/tests/jaeger/bug639587.js
js/src/jit-test/tests/jaeger/bug639792.js
js/src/jit-test/tests/jaeger/bug639808.js
js/src/jit-test/tests/jaeger/bug640098.js
js/src/jit-test/tests/jaeger/bug640102.js
js/src/jit-test/tests/jaeger/bug640614.js
js/src/jit-test/tests/jaeger/bug642198.js
js/src/jit-test/tests/jaeger/bug643653-1.js
js/src/jit-test/tests/jaeger/bug643653-2.js
js/src/jit-test/tests/jaeger/bug643805.js
js/src/jit-test/tests/jaeger/bug643829.js
js/src/jit-test/tests/jaeger/bug643913.js
js/src/jit-test/tests/jaeger/bug645629.js
js/src/jit-test/tests/jaeger/bug645657.js
js/src/jit-test/tests/jaeger/bug645985.js
js/src/jit-test/tests/jaeger/bug646001.js
js/src/jit-test/tests/jaeger/bug646060.js
js/src/jit-test/tests/jaeger/bug646411.js
js/src/jit-test/tests/jaeger/bug646495.js
js/src/jit-test/tests/jaeger/bug647440.js
js/src/jit-test/tests/jaeger/bug647657.js
js/src/jit-test/tests/jaeger/bug647785.js
js/src/jit-test/tests/jaeger/bug648004.js
js/src/jit-test/tests/jaeger/bug648230-1.js
js/src/jit-test/tests/jaeger/bug648230-2.js
js/src/jit-test/tests/jaeger/bug648498.js
js/src/jit-test/tests/jaeger/bug648586.js
js/src/jit-test/tests/jaeger/bug648708.js
js/src/jit-test/tests/jaeger/bug649272.js
js/src/jit-test/tests/jaeger/bug649593.js
js/src/jit-test/tests/jaeger/bug649689.js
js/src/jit-test/tests/jaeger/bug649775.js
js/src/jit-test/tests/jaeger/bug649824.js
js/src/jit-test/tests/jaeger/bug649973.js
js/src/jit-test/tests/jaeger/bug650076.js
js/src/jit-test/tests/jaeger/bug650662.js
js/src/jit-test/tests/jaeger/bug650663.js
js/src/jit-test/tests/jaeger/bug651147.js
js/src/jit-test/tests/jaeger/bug652305.js
js/src/jit-test/tests/jaeger/bug652314.js
js/src/jit-test/tests/jaeger/bug652590.js
js/src/jit-test/tests/jaeger/bug653243.js
js/src/jit-test/tests/jaeger/bug653249.js
js/src/jit-test/tests/jaeger/bug653397.js
js/src/jit-test/tests/jaeger/bug655505.js
js/src/jit-test/tests/jaeger/bug655508.js
js/src/jit-test/tests/jaeger/bug655810.js
js/src/jit-test/tests/jaeger/bug655990.js
js/src/jit-test/tests/jaeger/bug656096.js
js/src/jit-test/tests/jaeger/bug656252.js
js/src/jit-test/tests/jaeger/bug656259.js
js/src/jit-test/tests/jaeger/bug656591.js
js/src/jit-test/tests/jaeger/bug656748.js
js/src/jit-test/tests/jaeger/bug656914.js
js/src/jit-test/tests/jaeger/bug657120.js
js/src/jit-test/tests/jaeger/bug657247.js
js/src/jit-test/tests/jaeger/bug657890.js
js/src/jit-test/tests/jaeger/bug658240.js
js/src/jit-test/tests/jaeger/bug658294.js
js/src/jit-test/tests/jaeger/bug658579.js
js/src/jit-test/tests/jaeger/bug659438.js
js/src/jit-test/tests/jaeger/bug659439.js
js/src/jit-test/tests/jaeger/bug659448.js
js/src/jit-test/tests/jaeger/bug659456.js
js/src/jit-test/tests/jaeger/bug660002.js
js/src/jit-test/tests/jaeger/bug662072.js
js/src/jit-test/tests/jaeger/bug662082.js
js/src/jit-test/tests/jaeger/bug663910.js
js/src/jit-test/tests/jaeger/clonefun.js
js/src/jit-test/tests/jaeger/globalOptimize-2.js
js/src/jit-test/tests/jaeger/globalOptimize-3.js
js/src/jit-test/tests/jaeger/globalOptimize-4.js
js/src/jit-test/tests/jaeger/inline/bug645645.js
js/src/jit-test/tests/jaeger/inline/bug645666.js
js/src/jit-test/tests/jaeger/inline/bug646004.js
js/src/jit-test/tests/jaeger/inline/bug646480.js
js/src/jit-test/tests/jaeger/inline/bug647973.js
js/src/jit-test/tests/jaeger/inline/bug651209.js
js/src/jit-test/tests/jaeger/inline/bug655954.js
js/src/jit-test/tests/jaeger/inline/bug656221.js
js/src/jit-test/tests/jaeger/inline/doubleArg.js
js/src/jit-test/tests/jaeger/inline/mathAbs.js
js/src/jit-test/tests/jaeger/inline/mathFloor.js
js/src/jit-test/tests/jaeger/inline/mathPow.js
js/src/jit-test/tests/jaeger/inline/mathRound.js
js/src/jit-test/tests/jaeger/inline/mathSqrt.js
js/src/jit-test/tests/jaeger/inline/scripted-01.js
js/src/jit-test/tests/jaeger/inline/scripted-02.js
js/src/jit-test/tests/jaeger/inline/scripted-03.js
js/src/jit-test/tests/jaeger/inline/scripted-04.js
js/src/jit-test/tests/jaeger/inline/scripted-05.js
js/src/jit-test/tests/jaeger/inline/scripted-06.js
js/src/jit-test/tests/jaeger/inline/scripted-07.js
js/src/jit-test/tests/jaeger/inline/scripted-08.js
js/src/jit-test/tests/jaeger/inline/scripted-09.js
js/src/jit-test/tests/jaeger/inline/scripted-10.js
js/src/jit-test/tests/jaeger/inline/scripted-11.js
js/src/jit-test/tests/jaeger/inline/stringCharAt.js
js/src/jit-test/tests/jaeger/inline/stringCharCodeAt.js
js/src/jit-test/tests/jaeger/loops/bug651155.js
js/src/jit-test/tests/jaeger/loops/bug654393.js
js/src/jit-test/tests/jaeger/loops/bug655854.js
js/src/jit-test/tests/jaeger/loops/bug658290.js
js/src/jit-test/tests/jaeger/loops/bug659452.js
js/src/jit-test/tests/jaeger/loops/bug668643.js
js/src/jit-test/tests/jaeger/loops/hoist-01.js
js/src/jit-test/tests/jaeger/loops/hoist-02.js
js/src/jit-test/tests/jaeger/loops/hoist-03.js
js/src/jit-test/tests/jaeger/loops/hoist-04.js
js/src/jit-test/tests/jaeger/loops/hoist-05.js
js/src/jit-test/tests/jaeger/loops/hoist-06.js
js/src/jit-test/tests/jaeger/loops/hoist-07.js
js/src/jit-test/tests/jaeger/loops/hoist-08.js
js/src/jit-test/tests/jaeger/loops/hoist-09.js
js/src/jit-test/tests/jaeger/loops/hoist-10.js
js/src/jit-test/tests/jaeger/loops/integer-1.js
js/src/jit-test/tests/jaeger/loops/integer-2.js
js/src/jit-test/tests/jaeger/loops/property-1.js
js/src/jit-test/tests/jaeger/propertyOptimize-1.js
js/src/jit-test/tests/jaeger/propertyOptimize-2.js
js/src/jit-test/tests/jaeger/propertyOptimize-3.js
js/src/jit-test/tests/jaeger/propertyOptimize-4.js
js/src/jit-test/tests/jaeger/recompile/arith.js
js/src/jit-test/tests/jaeger/recompile/bug617592.js
js/src/jit-test/tests/jaeger/recompile/bug621292.js
js/src/jit-test/tests/jaeger/recompile/bug621328.js
js/src/jit-test/tests/jaeger/recompile/bug638977.js
js/src/jit-test/tests/jaeger/recompile/bug639508.js
js/src/jit-test/tests/jaeger/recompile/bug639882.js
js/src/jit-test/tests/jaeger/recompile/bug640608.js
js/src/jit-test/tests/jaeger/recompile/bug641225.js
js/src/jit-test/tests/jaeger/recompile/bug641269.js
js/src/jit-test/tests/jaeger/recompile/bug641535.js
js/src/jit-test/tests/jaeger/recompile/bug642405.js
js/src/jit-test/tests/jaeger/recompile/bug643182.js
js/src/jit-test/tests/jaeger/recompile/bug643376.js
js/src/jit-test/tests/jaeger/recompile/bug643552.js
js/src/jit-test/tests/jaeger/recompile/bug643669.js
js/src/jit-test/tests/jaeger/recompile/bug645044.js
js/src/jit-test/tests/jaeger/recompile/bug646267.js
js/src/jit-test/tests/jaeger/recompile/bug647183.js
js/src/jit-test/tests/jaeger/recompile/bug647199.js
js/src/jit-test/tests/jaeger/recompile/bug647532.js
js/src/jit-test/tests/jaeger/recompile/bug647547.js
js/src/jit-test/tests/jaeger/recompile/bug647991-1.js
js/src/jit-test/tests/jaeger/recompile/bug647991-2.js
js/src/jit-test/tests/jaeger/recompile/bug648502.js
js/src/jit-test/tests/jaeger/recompile/bug648567.js
js/src/jit-test/tests/jaeger/recompile/bug648843.js
js/src/jit-test/tests/jaeger/recompile/bug648966.js
js/src/jit-test/tests/jaeger/recompile/bug649261.js
js/src/jit-test/tests/jaeger/recompile/bug649769.js
js/src/jit-test/tests/jaeger/recompile/bug651119.js
js/src/jit-test/tests/jaeger/recompile/bug653980.js
js/src/jit-test/tests/jaeger/recompile/bug654536.js
js/src/jit-test/tests/jaeger/recompile/bug655949.js
js/src/jit-test/tests/jaeger/recompile/bug655998.js
js/src/jit-test/tests/jaeger/recompile/bug656753.js
js/src/jit-test/tests/jaeger/recompile/bug657288.js
js/src/jit-test/tests/jaeger/recompile/bug658209.js
js/src/jit-test/tests/jaeger/recompile/bug658211.js
js/src/jit-test/tests/jaeger/recompile/bug658212.js
js/src/jit-test/tests/jaeger/recompile/bug658561.js
js/src/jit-test/tests/jaeger/recompile/bug658777.js
js/src/jit-test/tests/jaeger/recompile/bug659639.js
js/src/jit-test/tests/jaeger/recompile/bug659766.js
js/src/jit-test/tests/jaeger/recompile/bug660737.js
js/src/jit-test/tests/jaeger/recompile/bug661859.js
js/src/jit-test/tests/jaeger/recompile/bug663690.js
js/src/jit-test/tests/jaeger/recompile/callic.js
js/src/jit-test/tests/jaeger/recompile/exotic.js
js/src/jit-test/tests/jaeger/recompile/flush.js
js/src/jit-test/tests/jaeger/recompile/getelem.js
js/src/jit-test/tests/jaeger/recompile/incdec.js
js/src/jit-test/tests/jaeger/recompile/inlinestubs.js
js/src/jit-test/tests/jaeger/recompile/memory-01.js
js/src/jit-test/tests/jaeger/recompile/memory-02.js
js/src/jit-test/tests/jaeger/recompile/memory-03.js
js/src/jit-test/tests/jaeger/recompile/memory-04.js
js/src/jit-test/tests/jaeger/recompile/native.js
js/src/jit-test/tests/jaeger/recompile/nativemulti.js
js/src/jit-test/tests/jaeger/recompile/nativestack.js
js/src/jit-test/tests/jaeger/recompile/patchdouble.js
js/src/jit-test/tests/jaeger/recompile/property.js
js/src/jit-test/tests/jaeger/recompile/propic.js
js/src/jit-test/tests/jaeger/recompile/staticoverflow.js
js/src/jit-test/tests/jaeger/recompile/undef.js
js/src/jit-test/tests/jaeger/regalloc-double.js
js/src/jit-test/tests/jaeger/regalloc-live.js
js/src/jit-test/tests/jaeger/testForOps.js
js/src/jit-test/tests/jaeger/undoAdd.js
js/src/jsanalyze.cpp
js/src/jsanalyze.h
js/src/jsapi-tests/testConservativeGC.cpp
js/src/jsapi-tests/testFuncCallback.cpp
js/src/jsapi.cpp
js/src/jsapi.h
js/src/jsarena.h
js/src/jsarray.cpp
js/src/jsarray.h
js/src/jsarrayinlines.h
js/src/jsbool.cpp
js/src/jsbuiltins.cpp
js/src/jsbuiltins.h
js/src/jscntxt.cpp
js/src/jscntxt.h
js/src/jscntxtinlines.h
js/src/jscompartment.cpp
js/src/jscompartment.h
js/src/jsdate.cpp
js/src/jsdbgapi.cpp
js/src/jsemit.cpp
js/src/jsemit.h
js/src/jsexn.cpp
js/src/jsfriendapi.cpp
js/src/jsfriendapi.h
js/src/jsfun.cpp
js/src/jsfun.h
js/src/jsgc.cpp
js/src/jsgcinlines.h
js/src/jsgcmark.cpp
js/src/jsinfer.cpp
js/src/jsinfer.h
js/src/jsinferinlines.h
js/src/jsinterp.cpp
js/src/jsinterp.h
js/src/jsinterpinlines.h
js/src/jsiter.cpp
js/src/jsmath.cpp
js/src/jsmath.h
js/src/jsnum.cpp
js/src/jsobj.cpp
js/src/jsobj.h
js/src/jsobjinlines.h
js/src/json.cpp
js/src/jsopcode.cpp
js/src/jsopcode.h
js/src/jsopcode.tbl
js/src/jsparse.cpp
js/src/jsparse.h
js/src/jspropertycache.cpp
js/src/jsproxy.cpp
js/src/jsprvtd.h
js/src/jsreflect.cpp
js/src/jsregexp.cpp
js/src/jsscope.cpp
js/src/jsscopeinlines.h
js/src/jsscript.cpp
js/src/jsscript.h
js/src/jsscriptinlines.h
js/src/jsstr.cpp
js/src/jstracer.cpp
js/src/jstracer.h
js/src/jstypedarray.cpp
js/src/jstypedarray.h
js/src/jstypedarrayinlines.h
js/src/jsval.h
js/src/jsvalue.h
js/src/jswrapper.cpp
js/src/jswrapper.h
js/src/jsxdrapi.h
js/src/jsxml.cpp
js/src/methodjit/BaseAssembler.h
js/src/methodjit/Compiler.cpp
js/src/methodjit/Compiler.h
js/src/methodjit/FastArithmetic.cpp
js/src/methodjit/FastBuiltins.cpp
js/src/methodjit/FastOps.cpp
js/src/methodjit/FrameEntry.h
js/src/methodjit/FrameState-inl.h
js/src/methodjit/FrameState.cpp
js/src/methodjit/FrameState.h
js/src/methodjit/ICLabels.h
js/src/methodjit/ImmutableSync.cpp
js/src/methodjit/ImmutableSync.h
js/src/methodjit/InlineFrameAssembler.h
js/src/methodjit/InvokeHelpers.cpp
js/src/methodjit/Logging.cpp
js/src/methodjit/Logging.h
js/src/methodjit/LoopState.cpp
js/src/methodjit/LoopState.h
js/src/methodjit/MachineRegs.h
js/src/methodjit/MethodJIT-inl.h
js/src/methodjit/MethodJIT.cpp
js/src/methodjit/MethodJIT.h
js/src/methodjit/MonoIC.cpp
js/src/methodjit/MonoIC.h
js/src/methodjit/NunboxAssembler.h
js/src/methodjit/PolyIC.cpp
js/src/methodjit/PolyIC.h
js/src/methodjit/PunboxAssembler.h
js/src/methodjit/RematInfo.h
js/src/methodjit/Retcon.cpp
js/src/methodjit/Retcon.h
js/src/methodjit/StubCalls-inl.h
js/src/methodjit/StubCalls.cpp
js/src/methodjit/StubCalls.h
js/src/methodjit/StubCompiler.cpp
js/src/methodjit/StubCompiler.h
js/src/methodjit/TrampolineCompiler.cpp
js/src/methodjit/TrampolineMasmX64.asm
js/src/methodjit/TrampolineMingwX64.s
js/src/methodjit/TrampolineSUNWX64.s
js/src/methodjit/TrampolineSUNWX86.s
js/src/methodjit/TrampolineSparc.s
js/src/methodjit/TypedArrayIC.h
js/src/shell/js.cpp
js/src/tests/e4x/XML/jstests.list
js/src/tests/e4x/XML/regress-638982.js
js/src/tests/ecma_5/RegExp/jstests.list
js/src/tests/ecma_5/RegExp/regress-613820-1.js
js/src/tests/ecma_5/RegExp/regress-613820-2.js
js/src/tests/ecma_5/RegExp/regress-613820-3.js
js/src/tests/js1_5/Function/15.3.4.4.js
js/src/tests/js1_5/Regress/regress-127557.js
js/src/tests/js1_5/extensions/regress-300079.js
js/src/tests/js1_8_5/extensions/jstests.list
js/src/tests/js1_8_5/extensions/regress-668438.js
js/src/tests/js1_8_5/regress/jstests.list
js/src/tests/js1_8_5/regress/regress-595365-2.js
js/src/tests/js1_8_5/regress/regress-642247.js
js/src/tracejit/Writer-inl.h
js/src/tracejit/Writer.cpp
js/src/tracejit/Writer.h
js/src/vm/GlobalObject.cpp
js/src/vm/Stack-inl.h
js/src/vm/Stack.cpp
js/src/vm/Stack.h
js/src/xpconnect/shell/xpcshell.cpp
js/src/xpconnect/src/nsXPConnect.cpp
js/src/xpconnect/src/xpcinlines.h
js/src/xpconnect/src/xpcjsruntime.cpp
js/src/xpconnect/src/xpcprivate.h
js/src/xpconnect/src/xpcwrappednative.cpp
js/src/xpconnect/src/xpcwrappednativeproto.cpp
js/src/xpconnect/src/xpcwrappednativescope.cpp
js/src/xpconnect/wrappers/WrapperFactory.cpp
modules/libpref/src/init/all.js
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -7298,18 +7298,17 @@ var FeedHandler = {
     return this._feedMenupopup = document.getElementById("multipleFeedsMenuState");
   },
 
   /**
    * Update the browser UI to show whether or not feeds are available when
    * a page is loaded or the user switches tabs to a page that has feeds.
    */
   updateFeeds: function() {
-    if (this._updateFeedTimeout)
-      clearTimeout(this._updateFeedTimeout);
+    clearTimeout(this._updateFeedTimeout);
 
     var feeds = gBrowser.selectedBrowser.feeds;
     var haveFeeds = feeds && feeds.length > 0;
 
     var feedButton = document.getElementById("feed-button");
     if (feedButton)
       feedButton.disabled = !haveFeeds;
 
--- a/dom/base/nsDOMClassInfo.cpp
+++ b/dom/base/nsDOMClassInfo.cpp
@@ -5364,17 +5364,17 @@ nsWindowSH::InvalidateGlobalScopePollute
       nsIHTMLDocument *doc = (nsIHTMLDocument *)::JS_GetPrivate(cx, proto);
 
       NS_IF_RELEASE(doc);
 
       ::JS_SetPrivate(cx, proto, nsnull);
 
       // Pull the global scope polluter out of the prototype chain so
       // that it can be freed.
-      ::JS_SplicePrototype(cx, obj, ::JS_GetPrototype(cx, proto));
+      ::JS_SetPrototype(cx, obj, ::JS_GetPrototype(cx, proto));
 
       break;
     }
 
     obj = proto;
   }
 }
 
@@ -5386,40 +5386,44 @@ nsWindowSH::InstallGlobalScopePolluter(J
   // If global scope pollution is disabled, or if our document is not
   // a HTML document, do nothing
   if (sDisableGlobalScopePollutionSupport || !doc) {
     return NS_OK;
   }
 
   JSAutoRequest ar(cx);
 
-  JSObject *gsp = ::JS_NewObjectWithUniqueType(cx, &sGlobalScopePolluterClass, nsnull, obj);
+  JSObject *gsp = ::JS_NewObject(cx, &sGlobalScopePolluterClass, nsnull, obj);
   if (!gsp) {
     return NS_ERROR_OUT_OF_MEMORY;
   }
 
   JSObject *o = obj, *proto;
 
   // Find the place in the prototype chain where we want this global
   // scope polluter (right before Object.prototype).
 
   while ((proto = ::JS_GetPrototype(cx, o))) {
     if (JS_GET_CLASS(cx, proto) == sObjectClass) {
       // Set the global scope polluters prototype to Object.prototype
-      ::JS_SplicePrototype(cx, gsp, proto);
+      if (!::JS_SetPrototype(cx, gsp, proto)) {
+        return NS_ERROR_UNEXPECTED;
+      }
 
       break;
     }
 
     o = proto;
   }
 
   // And then set the prototype of the object whose prototype was
   // Object.prototype to be the global scope polluter.
-  ::JS_SplicePrototype(cx, o, gsp);
+  if (!::JS_SetPrototype(cx, o, gsp)) {
+    return NS_ERROR_UNEXPECTED;
+  }
 
   if (!::JS_SetPrivate(cx, gsp, doc)) {
     return NS_ERROR_UNEXPECTED;
   }
 
   // The global scope polluter will release doc on destruction (or
   // invalidation).
   NS_ADDREF(doc);
--- a/dom/base/nsJSEnvironment.cpp
+++ b/dom/base/nsJSEnvironment.cpp
@@ -908,17 +908,16 @@ static const char js_zeal_option_str[]  
 #endif
 static const char js_tracejit_content_str[]   = JS_OPTIONS_DOT_STR "tracejit.content";
 static const char js_tracejit_chrome_str[]    = JS_OPTIONS_DOT_STR "tracejit.chrome";
 static const char js_methodjit_content_str[]  = JS_OPTIONS_DOT_STR "methodjit.content";
 static const char js_methodjit_chrome_str[]   = JS_OPTIONS_DOT_STR "methodjit.chrome";
 static const char js_profiling_content_str[]  = JS_OPTIONS_DOT_STR "jitprofiling.content";
 static const char js_profiling_chrome_str[]   = JS_OPTIONS_DOT_STR "jitprofiling.chrome";
 static const char js_methodjit_always_str[]   = JS_OPTIONS_DOT_STR "methodjit_always";
-static const char js_typeinfer_str[]          = JS_OPTIONS_DOT_STR "typeinference";
 static const char js_memlog_option_str[] = JS_OPTIONS_DOT_STR "mem.log";
 
 int
 nsJSContext::JSOptionChangedCallback(const char *pref, void *data)
 {
   nsJSContext *context = reinterpret_cast<nsJSContext *>(data);
   PRUint32 oldDefaultJSOptions = context->mDefaultJSOptions;
   PRUint32 newDefaultJSOptions = oldDefaultJSOptions;
@@ -941,26 +940,24 @@ nsJSContext::JSOptionChangedCallback(con
                                               js_tracejit_content_str);
   PRBool useMethodJIT = Preferences::GetBool(chromeWindow ?
                                                js_methodjit_chrome_str :
                                                js_methodjit_content_str);
   PRBool useProfiling = Preferences::GetBool(chromeWindow ?
                                                js_profiling_chrome_str :
                                                js_profiling_content_str);
   PRBool useMethodJITAlways = Preferences::GetBool(js_methodjit_always_str);
-  PRBool useTypeInference = !chromeWindow && Preferences::GetBool(js_typeinfer_str);
   nsCOMPtr<nsIXULRuntime> xr = do_GetService(XULRUNTIME_SERVICE_CONTRACTID);
   if (xr) {
     PRBool safeMode = PR_FALSE;
     xr->GetInSafeMode(&safeMode);
     if (safeMode) {
       useTraceJIT = PR_FALSE;
       useMethodJIT = PR_FALSE;
       useProfiling = PR_FALSE;
-      useTypeInference = PR_FALSE;
       useMethodJITAlways = PR_TRUE;
     }
   }    
 
   if (useTraceJIT)
     newDefaultJSOptions |= JSOPTION_JIT;
   else
     newDefaultJSOptions &= ~JSOPTION_JIT;
@@ -975,21 +972,16 @@ nsJSContext::JSOptionChangedCallback(con
   else
     newDefaultJSOptions &= ~JSOPTION_PROFILING;
 
   if (useMethodJITAlways)
     newDefaultJSOptions |= JSOPTION_METHODJIT_ALWAYS;
   else
     newDefaultJSOptions &= ~JSOPTION_METHODJIT_ALWAYS;
 
-  if (useTypeInference)
-    newDefaultJSOptions |= JSOPTION_TYPE_INFERENCE;
-  else
-    newDefaultJSOptions &= ~JSOPTION_TYPE_INFERENCE;
-
 #ifdef DEBUG
   // In debug builds, warnings are enabled in chrome context if
   // javascript.options.strict.debug is true
   PRBool strictDebug = Preferences::GetBool(js_strict_debug_option_str);
   // Note this callback is also called from context's InitClasses thus we don't
   // need to enable this directly from InitContext
   if (strictDebug && (newDefaultJSOptions & JSOPTION_STRICT) == 0) {
     if (chromeWindow)
--- a/js/src/Makefile.in
+++ b/js/src/Makefile.in
@@ -146,17 +146,16 @@ CPPSRCS		= \
 		jsexn.cpp \
 		jsfriendapi.cpp \
 		jsfun.cpp \
 		jsgc.cpp \
 		jsgcmark.cpp \
 		jsgcchunk.cpp \
 		jsgcstats.cpp \
 		jshash.cpp \
-		jsinfer.cpp \
 		jsinterp.cpp \
 		jsinvoke.cpp \
 		jsiter.cpp \
 		jslock.cpp \
 		jslog2.cpp \
 		jsmath.cpp \
 		jsnativestack.cpp \
 		jsnum.cpp \
@@ -214,18 +213,16 @@ INSTALLED_HEADERS = \
 		jsfun.h \
 		jsfriendapi.h \
 		jsgc.h \
 		jscell.h \
 		jsgcchunk.h \
 		jsgcstats.h \
 		jscompartment.h \
 		jshash.h \
-		jsinfer.h \
-		jsinferinlines.h \
 		jsinterp.h \
 		jsinttypes.h \
 		jsiter.h \
 		jslock.h \
 		jsobj.h \
 		json.h \
 		jsopcode.tbl \
 		jsopcode.h \
@@ -346,19 +343,17 @@ ifdef ENABLE_METHODJIT
 #
 VPATH += 	$(srcdir)/methodjit
 
 CPPSRCS += 	MethodJIT.cpp \
 		StubCalls.cpp \
 		Compiler.cpp \
 		FrameState.cpp \
 		FastArithmetic.cpp \
-		FastBuiltins.cpp \
 		FastOps.cpp \
-		LoopState.cpp \
 		StubCompiler.cpp \
 		MonoIC.cpp \
 		PolyIC.cpp \
 		ImmutableSync.cpp \
 		InvokeHelpers.cpp \
 		Retcon.cpp \
 		TrampolineCompiler.cpp \
 		$(NULL)
@@ -663,20 +658,20 @@ check-malloc-function-usage: $(filter-ou
 	# management within SpiderMonkey" in jsutil.h.
 	$(srcdir)/config/check_source_count.py OffTheBooks:: 54 \
 		"in Makefile.in" "{cx,rt}->{new_,new_array,malloc_,calloc_,realloc_}" $^
 	# This should go to zero, if possible.
 	$(srcdir)/config/check_source_count.py UnwantedForeground:: 33 \
 		"in Makefile.in" "{cx,rt}->{free_,delete_,array_delete}" $^
 
 ifneq ($(OS_ARCH),WINNT) # FIXME: this should be made work on Windows too.
-#check:: check-malloc-function-usage FIXME: disable on JM until closer to merge time.
+check:: check-malloc-function-usage
 endif
 
-JITFLAGS = ,m,j,mj,mjp,am,amj,amjp,amd,n,mn,jn,mjn,mjpn,amn,amjn,amjpn,amdn
+JITFLAGS = ,m,j,mj,mjp,am,amj,amjp,amd
 check-jit-test::
 	$(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON) -u $(srcdir)/jit-test/jit_test.py \
 	        --no-slow --no-progress --tinderbox --jitflags=$(JITFLAGS) $(DIST)/bin/js$(BIN_SUFFIX)
 
 check-jit-test-valgrind::
 	$(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON) -u $(srcdir)/jit-test/jit_test.py \
 	        --valgrind --no-slow --no-progress --tinderbox --jitflags=$(JITFLAGS) $(DIST)/bin/js$(BIN_SUFFIX)
 
--- a/js/src/assembler/assembler/ARMAssembler.cpp
+++ b/js/src/assembler/assembler/ARMAssembler.cpp
@@ -87,56 +87,16 @@ ARMWord ARMAssembler::getOp2(ARMWord imm
     }
 
     if ((imm & 0x00ffffff) == 0)
         return OP2_IMM | (imm >> 24) | (rol << 8);
 
     return INVALID_IMM;
 }
 
-ARMWord ARMAssembler::getOp2RegScale(RegisterID reg, ARMWord scale)
-{
-    // The field that this method constructs looks like this:
-    // [11:7]   Shift immediate.
-    // [ 6:5]   Shift type. Only LSL ("00") is used here.
-    // [ 4:4]   0.
-    // [ 3:0]   The register to shift.
-
-    ARMWord shift;  // Shift field. This is log2(scale).
-    ARMWord lz;     // Leading zeroes.
-
-    // Calculate shift=log2(scale).
-#if WTF_ARM_ARCH_AT_LEAST(5)
-    asm (
-    "   clz     %[lz], %[scale]\n"
-    : [lz]      "=r"  (lz)
-    : [scale]   "r"   (scale)
-    : // No clobbers.
-    );
-#else
-    ARMWord lz = 0; // Accumulate leading zeroes.
-    for (ARMWord s = 16; s > 0; s /= 2) {
-        ARMWord mask = 0xffffffff << (32-lz-s);
-        if ((x & mask) == 0) {
-            lz += s;
-        }
-    }
-#endif
-    if (lz >= 32) {
-        return INVALID_IMM;
-    }
-    shift = 31-lz;
-    // Check that scale was a power of 2.
-    if ((1<<shift) != scale) {
-        return INVALID_IMM;
-    }
-
-    return (shift << 7) | (reg);
-}
-
 int ARMAssembler::genInt(int reg, ARMWord imm, bool positive)
 {
     // Step1: Search a non-immediate part
     ARMWord mask;
     ARMWord imm1;
     ARMWord imm2;
     int rol;
 
@@ -383,75 +343,52 @@ void ARMAssembler::baseIndexTransfer32(b
 
     ldr_un_imm(ARMRegisters::S0, offset);
     add_r(ARMRegisters::S0, ARMRegisters::S0, op2);
     dtr_ur(isLoad, srcDst, base, ARMRegisters::S0);
 }
 
 void ARMAssembler::doubleTransfer(bool isLoad, FPRegisterID srcDst, RegisterID base, int32_t offset)
 {
-    // This method does not support accesses that are not four-byte-aligned.
-    ASSERT((offset & 0x3) == 0);
+    if (offset & 0x3) {
+        if (offset <= 0x3ff && offset >= 0) {
+            fdtr_u(isLoad, srcDst, base, offset >> 2);
+            return;
+        }
+        if (offset <= 0x3ffff && offset >= 0) {
+            add_r(ARMRegisters::S0, base, OP2_IMM | (offset >> 10) | (11 << 8));
+            fdtr_u(isLoad, srcDst, ARMRegisters::S0, (offset >> 2) & 0xff);
+            return;
+        }
+        offset = -offset;
 
-    if (offset <= 0x3ff && offset >= 0) {
-        fdtr_u(isLoad, srcDst, base, offset >> 2);
-        return;
-    }
-    if (offset <= 0x3ffff && offset >= 0) {
-        add_r(ARMRegisters::S0, base, OP2_IMM | (offset >> 10) | (11 << 8));
-        fdtr_u(isLoad, srcDst, ARMRegisters::S0, (offset >> 2) & 0xff);
-        return;
+        if (offset <= 0x3ff && offset >= 0) {
+            fdtr_d(isLoad, srcDst, base, offset >> 2);
+            return;
+        }
+        if (offset <= 0x3ffff && offset >= 0) {
+            sub_r(ARMRegisters::S0, base, OP2_IMM | (offset >> 10) | (11 << 8));
+            fdtr_d(isLoad, srcDst, ARMRegisters::S0, (offset >> 2) & 0xff);
+            return;
+        }
+        offset = -offset;
     }
-    offset = -offset;
 
-    if (offset <= 0x3ff && offset >= 0) {
-        fdtr_d(isLoad, srcDst, base, offset >> 2);
-        return;
-    }
-    if (offset <= 0x3ffff && offset >= 0) {
-        sub_r(ARMRegisters::S0, base, OP2_IMM | (offset >> 10) | (11 << 8));
-        fdtr_d(isLoad, srcDst, ARMRegisters::S0, (offset >> 2) & 0xff);
-        return;
-    }
-    offset = -offset;
+    // TODO: This is broken in the case that offset is unaligned. VFP can never
+    // perform unaligned accesses, even from an unaligned register base. (NEON
+    // can, but VFP isn't NEON. It is not advisable to interleave a NEON load
+    // with VFP code, so the best solution here is probably to perform an
+    // unaligned integer load, then move the result into VFP using VMOV.)
+    ASSERT((offset & 0x3) == 0);
 
     ldr_un_imm(ARMRegisters::S0, offset);
     add_r(ARMRegisters::S0, ARMRegisters::S0, base);
     fdtr_u(isLoad, srcDst, ARMRegisters::S0, 0);
 }
 
-void ARMAssembler::doubleTransfer(bool isLoad, FPRegisterID srcDst, RegisterID base, int32_t offset, RegisterID index, int32_t scale)
-{
-    // This variant accesses memory at base+offset+(index*scale). VLDR and VSTR
-    // don't have such an addressing mode, so this access will require some
-    // arithmetic instructions.
-
-    // This method does not support accesses that are not four-byte-aligned.
-    ASSERT((offset & 0x3) == 0);
-
-    // Catch the trivial case, where scale is 0.
-    if (scale == 0) {
-        doubleTransfer(isLoad, srcDst, base, offset);
-        return;
-    }
-
-    // Calculate the address, excluding the non-scaled offset. This is
-    // efficient for scale factors that are powers of two.
-    ARMWord op2_index = getOp2RegScale(index, scale);
-    if (op2_index == INVALID_IMM) {
-        // Use MUL to calculate scale factors that are not powers of two.
-        moveImm(scale, ARMRegisters::S0);
-        mul_r(ARMRegisters::S0, index, ARMRegisters::S0);
-        op2_index = ARMRegisters::S0;
-    }
-
-    add_r(ARMRegisters::S0, base, op2_index);
-    doubleTransfer(isLoad, srcDst, ARMRegisters::S0, offset);
-}
-
 // Fix up the offsets and literal-pool loads in buffer. The buffer should
 // already contain the code from m_buffer.
 inline void ARMAssembler::fixUpOffsets(void * buffer)
 {
     char * data = reinterpret_cast<char *>(buffer);
     for (Jumps::Iterator iter = m_jumps.begin(); iter != m_jumps.end(); ++iter) {
         // The last bit is set if the constant must be placed on constant pool.
         int pos = (*iter) & (~0x1);
--- a/js/src/assembler/assembler/ARMAssembler.h
+++ b/js/src/assembler/assembler/ARMAssembler.h
@@ -185,17 +185,16 @@ namespace JSC {
             MOV = (0xd << 21),
             BIC = (0xe << 21),
             MVN = (0xf << 21),
             MUL = 0x00000090,
             MULL = 0x00c00090,
             FCPYD = 0x0eb00b40,
             FADDD = 0x0e300b00,
             FNEGD = 0x0eb10b40,
-            FABSD = 0x0eb00bc0,
             FDIVD = 0x0e800b00,
             FSUBD = 0x0e300b40,
             FMULD = 0x0e200b00,
             FCMPD = 0x0eb40b40,
             FSQRTD = 0x0eb10bc0,
             DTR = 0x05000000,
             LDRH = 0x00100090,
             STRH = 0x00000090,
@@ -544,23 +543,16 @@ namespace JSC {
 
         void fnegd_r(int dd, int dm, Condition cc = AL)
         {
             js::JaegerSpew(js::JSpew_Insns,
                     IPFX   "%-15s %s, %s, %s, %s\n", MAYBE_PAD, "fnegd", nameFpRegD(dd), nameFpRegD(dm));
             m_buffer.putInt(static_cast<ARMWord>(cc) | FNEGD | DD(dd) | DM(dm));
         }
 
-        void fabsd_r(int dd, int dm, Condition cc = AL)
-        {
-            js::JaegerSpew(js::JSpew_Insns,
-                    IPFX   "%-15s %s, %s, %s, %s\n", MAYBE_PAD, "fabsd", nameFpRegD(dd), nameFpRegD(dm));
-            m_buffer.putInt(static_cast<ARMWord>(cc) | FABSD | DD(dd) | DM(dm));
-        }
-
         void fdivd_r(int dd, int dn, int dm, Condition cc = AL)
         {
             js::JaegerSpew(js::JSpew_Insns,
                     IPFX   "%-15s %s, %s, %s\n", MAYBE_PAD, "vdiv.f64", nameFpRegD(dd), nameFpRegD(dn), nameFpRegD(dm));
             // TODO: emitInst doesn't work for VFP instructions, though it
             // seems to work for current usage.
             emitInst(static_cast<ARMWord>(cc) | FDIVD, dd, dn, dm);
         }
@@ -1174,20 +1166,16 @@ namespace JSC {
         static ARMWord getOp2Byte(ARMWord imm)
         {
             ASSERT(imm <= 0xff);
             return OP2_IMMh | (imm & 0x0f) | ((imm & 0xf0) << 4) ;
         }
 
         static ARMWord getOp2(ARMWord imm);
 
-        // Get an operand-2 field for immediate-shifted-registers in arithmetic
-        // instructions.
-        static ARMWord getOp2RegScale(RegisterID reg, ARMWord scale);
-
 #if WTF_ARM_ARCH_VERSION >= 7
         static ARMWord getImm16Op2(ARMWord imm)
         {
             if (imm <= 0xffff)
                 return (imm & 0xf000) << 4 | (imm & 0xfff);
             return INVALID_IMM;
         }
 #endif
@@ -1205,27 +1193,27 @@ namespace JSC {
         }
 
         // Memory load/store helpers
 
         void dataTransfer32(bool isLoad, RegisterID srcDst, RegisterID base, int32_t offset);
         void dataTransfer8(bool isLoad, RegisterID srcDst, RegisterID base, int32_t offset);
         void baseIndexTransfer32(bool isLoad, RegisterID srcDst, RegisterID base, RegisterID index, int scale, int32_t offset);
         void doubleTransfer(bool isLoad, FPRegisterID srcDst, RegisterID base, int32_t offset);
-        void doubleTransfer(bool isLoad, FPRegisterID srcDst, RegisterID base, int32_t offset, RegisterID index, int32_t scale);
 
         // Constant pool hnadlers
 
         static ARMWord placeConstantPoolBarrier(int offset)
         {
             offset = (offset - sizeof(ARMWord)) >> 2;
             ASSERT((offset <= BOFFSET_MAX && offset >= BOFFSET_MIN));
             return AL | B | (offset & BRANCH_MASK);
         }
 
+    private:
         static char const * nameGpReg(int reg)
         {
             ASSERT(reg <= 16);
             ASSERT(reg >= 0);
             static char const * names[] = {
                 "r0", "r1", "r2", "r3",
                 "r4", "r5", "r6", "r7",
                 "r8", "r9", "r10", "r11",
@@ -1266,17 +1254,16 @@ namespace JSC {
                 "hi", "ls",
                 "ge", "lt",
                 "gt", "le",
                 "  "        // AL is the default, so don't show it.
             };
             return names[ccIndex];
         }
 
-    private:
         // Decodes operand 2 immediate values (for debug output and assertions).
         inline uint32_t decOp2Imm(uint32_t op2)
         {
             ASSERT((op2 & ~0xfff) == 0);
 
             uint32_t    imm8 = op2 & 0xff;
             uint32_t    rot = ((op2 >> 7) & 0x1e);
 
--- a/js/src/assembler/assembler/MacroAssembler.h
+++ b/js/src/assembler/assembler/MacroAssembler.h
@@ -177,26 +177,16 @@ public:
         and32(src, dest);
     }
 
     void andPtr(Imm32 imm, RegisterID srcDest)
     {
         and32(imm, srcDest);
     }
 
-    void andPtr(ImmPtr ptr, RegisterID srcDest)
-    {
-        and32(Imm32(ptr), srcDest);
-    }
-
-    void negPtr(RegisterID srcDest)
-    {
-        neg32(srcDest);
-    }
-
     void notPtr(RegisterID srcDest)
     {
         not32(srcDest);
     }
 
     void orPtr(RegisterID src, RegisterID dest)
     {
         or32(src, dest);
--- a/js/src/assembler/assembler/MacroAssemblerARM.h
+++ b/js/src/assembler/assembler/MacroAssemblerARM.h
@@ -967,45 +967,31 @@ public:
 
     void moveDouble(FPRegisterID src, FPRegisterID dest)
     {
         m_assembler.fcpyd_r(dest, src);
     }
 
     void loadDouble(ImplicitAddress address, FPRegisterID dest)
     {
-        // Load a double from base+offset.
         m_assembler.doubleTransfer(true, dest, address.base, address.offset);
     }
 
-    void loadDouble(BaseIndex address, FPRegisterID dest)
-    {
-        // Load a double from base+offset+(index*scale).
-        m_assembler.doubleTransfer(true, dest, address.base, address.offset, address.index, address.scale);
-    }
-
     DataLabelPtr loadDouble(const void* address, FPRegisterID dest)
     {
         DataLabelPtr label = moveWithPatch(ImmPtr(address), ARMRegisters::S0);
         m_assembler.fdtr_u(true, dest, ARMRegisters::S0, 0);
         return label;
     }
 
     void storeDouble(FPRegisterID src, ImplicitAddress address)
     {
-        // Store a double at base+offset.
         m_assembler.doubleTransfer(false, src, address.base, address.offset);
     }
 
-    void storeDouble(FPRegisterID src, BaseIndex address)
-    {
-        // Store a double at base+offset+(index*scale).
-        m_assembler.doubleTransfer(false, src, address.base, address.offset, address.index, address.scale);
-    }
-
     void addDouble(FPRegisterID src, FPRegisterID dest)
     {
         m_assembler.faddd_r(dest, dest, src);
     }
 
     void addDouble(Address src, FPRegisterID dest)
     {
         loadDouble(src, ARMRegisters::SD0);
@@ -1046,21 +1032,16 @@ public:
         mulDouble(ARMRegisters::SD0, dest);
     }
 
     void negDouble(FPRegisterID src, FPRegisterID dest)
     {
         m_assembler.fnegd_r(dest, src);
     }
 
-    void absDouble(FPRegisterID src, FPRegisterID dest)
-    {
-        m_assembler.fabsd_r(dest, src);
-    }
-
     void sqrtDouble(FPRegisterID src, FPRegisterID dest)
     {
         m_assembler.fsqrtd_r(dest, src);
     }
 
     void convertInt32ToDouble(RegisterID src, FPRegisterID dest)
     {
         m_assembler.fmsr_r(dest, src);
--- a/js/src/assembler/assembler/MacroAssemblerX86Common.h
+++ b/js/src/assembler/assembler/MacroAssemblerX86Common.h
@@ -634,31 +634,16 @@ public:
     }
 
     void xorDouble(FPRegisterID src, FPRegisterID dest)
     {
         ASSERT(isSSE2Present());
         m_assembler.xorpd_rr(src, dest);
     }
 
-    void andDouble(FPRegisterID src, FPRegisterID dest)
-    {
-        ASSERT(isSSE2Present());
-        m_assembler.andpd_rr(src, dest);
-    }
-
-    void absDouble(FPRegisterID src, FPRegisterID dest)
-    {
-        ASSERT(isSSE2Present());
-        /* Compile abs(x) as x & -x. */
-        zeroDouble(dest);
-        subDouble(src, dest);
-        andDouble(src, dest);
-    }
-
     void convertInt32ToDouble(RegisterID src, FPRegisterID dest)
     {
         ASSERT(isSSE2Present());
         m_assembler.cvtsi2sd_rr(src, dest);
     }
 
     void convertInt32ToDouble(Address src, FPRegisterID dest)
     {
@@ -706,17 +691,16 @@ public:
 
     // Convert 'src' to an integer, and places the resulting 'dest'.
     // If the result is not representable as a 32 bit value, branch.
     // May also branch for some values that are representable in 32 bits
     // (specifically, in this case, 0).
     void branchConvertDoubleToInt32(FPRegisterID src, RegisterID dest, JumpList& failureCases, FPRegisterID fpTemp)
     {
         ASSERT(isSSE2Present());
-        ASSERT(src != fpTemp); 
         m_assembler.cvttsd2si_rr(src, dest);
 
         // If the result is zero, it might have been -0.0, and the double comparison won't catch this!
         failureCases.append(branchTest32(Zero, dest));
 
         // Convert the integer result back to float & compare to the original value - if not equal or unordered (NaN) then jump.
         convertInt32ToDouble(dest, fpTemp);
         m_assembler.ucomisd_rr(fpTemp, src);
--- a/js/src/assembler/assembler/MacroAssemblerX86_64.h
+++ b/js/src/assembler/assembler/MacroAssemblerX86_64.h
@@ -213,21 +213,16 @@ public:
         if (value >= MinInt32 && value <= MaxInt32) {
             andPtr(Imm32(int(value)), srcDest);
         } else {
             move(imm, scratchRegister);
             m_assembler.andq_rr(scratchRegister, srcDest);
         }
     }
 
-    void negPtr(RegisterID srcDest)
-    {
-        m_assembler.negq_r(srcDest);
-    }
-
     void notPtr(RegisterID srcDest)
     {
         m_assembler.notq_r(srcDest);
     }
 
     void orPtr(Address src, RegisterID dest)
     {
         m_assembler.orq_mr(src.offset, src.base, dest);
--- a/js/src/assembler/assembler/X86Assembler.h
+++ b/js/src/assembler/assembler/X86Assembler.h
@@ -252,17 +252,16 @@ private:
         OP2_UCOMISD_VsdWsd  = 0x2E,
         OP2_ADDSD_VsdWsd    = 0x58,
         OP2_MULSD_VsdWsd    = 0x59,
         OP2_CVTSS2SD_VsdEd  = 0x5A,
         OP2_CVTSD2SS_VsdEd  = 0x5A,
         OP2_SUBSD_VsdWsd    = 0x5C,
         OP2_DIVSD_VsdWsd    = 0x5E,
         OP2_SQRTSD_VsdWsd   = 0x51,
-        OP2_ANDPD_VpdWpd    = 0x54,
         OP2_XORPD_VpdWpd    = 0x57,
         OP2_MOVD_VdEd       = 0x6E,
         OP2_PSRLDQ_Vd       = 0x73,
         OP2_MOVD_EdVd       = 0x7E,
         OP2_JCC_rel32       = 0x80,
         OP_SETCC            = 0x90,
         OP2_IMUL_GvEv       = 0xAF,
         OP2_MOVSX_GvEb      = 0xBE,
@@ -686,23 +685,16 @@ public:
             m_formatter.immediate8(imm);
         } else {
             m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_OR, base, offset);
             m_formatter.immediate32(imm);
         }
     }
 
 #if WTF_CPU_X86_64
-    void negq_r(RegisterID dst)
-    {
-        js::JaegerSpew(js::JSpew_Insns,
-                       IPFX "negq       %s\n", MAYBE_PAD, nameIReg(8,dst));
-        m_formatter.oneByteOp64(OP_GROUP3_Ev, GROUP3_OP_NEG, dst);
-    }
-
     void orq_rr(RegisterID src, RegisterID dst)
     {
         js::JaegerSpew(js::JSpew_Insns,
                        IPFX "orq        %s, %s\n", MAYBE_PAD,
                        nameIReg(8,src), nameIReg(8,dst));
         m_formatter.oneByteOp64(OP_OR_EvGv, src, dst);
     }
 
@@ -1566,18 +1558,18 @@ public:
     {
         FIXME_INSN_PRINTING;
         m_formatter.oneByteOp64_disp32(OP_MOV_GvEv, dst, base, offset);
     }
 
     void movq_mr(int offset, RegisterID base, RegisterID index, int scale, RegisterID dst)
     {
         js::JaegerSpew(js::JSpew_Insns,
-                       IPFX "movq       %d(%s,%s,%d), %s\n", MAYBE_PAD,
-                       offset, nameIReg(base), nameIReg(index), scale, nameIReg(8,dst));
+                       IPFX "movq       %s0x%x(%s), %s\n", MAYBE_PAD,
+                       PRETTY_PRINT_OFFSET(offset), nameIReg(base), nameIReg(8,dst));
         m_formatter.oneByteOp64(OP_MOV_GvEv, dst, base, index, scale, offset);
     }
 
     void leaq_mr(int offset, RegisterID base, RegisterID index, int scale, RegisterID dst)
     {
         js::JaegerSpew(js::JSpew_Insns,
                        IPFX "leaq       %d(%s,%s,%d), %s\n", MAYBE_PAD,
                        offset, nameIReg(base), nameIReg(index), scale, nameIReg(8,dst)),
@@ -2253,25 +2245,16 @@ public:
     {
         js::JaegerSpew(js::JSpew_Insns,
                        IPFX "xorpd      %s, %s\n", MAYBE_PAD,
                        nameFPReg(src), nameFPReg(dst));
         m_formatter.prefix(PRE_SSE_66);
         m_formatter.twoByteOp(OP2_XORPD_VpdWpd, (RegisterID)dst, (RegisterID)src);
     }
 
-    void andpd_rr(XMMRegisterID src, XMMRegisterID dst)
-    {
-        js::JaegerSpew(js::JSpew_Insns,
-                       IPFX "andpd      %s, %s\n", MAYBE_PAD,
-                       nameFPReg(src), nameFPReg(dst));
-        m_formatter.prefix(PRE_SSE_66);
-        m_formatter.twoByteOp(OP2_ANDPD_VpdWpd, (RegisterID)dst, (RegisterID)src);
-    }
-
     void sqrtsd_rr(XMMRegisterID src, XMMRegisterID dst)
     {
         js::JaegerSpew(js::JSpew_Insns,
                        IPFX "sqrtsd     %s, %s\n", MAYBE_PAD,
                        nameFPReg(src), nameFPReg(dst));
         m_formatter.prefix(PRE_SSE_F2);
         m_formatter.twoByteOp(OP2_SQRTSD_VsdWsd, (RegisterID)dst, (RegisterID)src);
     }
--- a/js/src/frontend/ParseMaps-inl.h
+++ b/js/src/frontend/ParseMaps-inl.h
@@ -100,17 +100,18 @@ AtomDecls::lookupMulti(JSAtom *atom)
     JS_ASSERT(map);
     AtomDOHPtr p = map->lookup(atom);
     if (!p)
         return MultiDeclRange((JSDefinition *) NULL);
 
     DefnOrHeader &doh = p.value();
     if (doh.isHeader())
         return MultiDeclRange(doh.header());
-    return MultiDeclRange(doh.defn());
+    else
+        return MultiDeclRange(doh.defn());
 }
 
 inline bool
 AtomDecls::addUnique(JSAtom *atom, JSDefinition *defn)
 {
     JS_ASSERT(map);
     AtomDOHAddPtr p = map->lookupForAdd(atom);
     if (p) {
--- a/js/src/imacro_asm.py
+++ b/js/src/imacro_asm.py
@@ -351,18 +351,16 @@ def assemble(filename, outfile):
 
                     for imacro in igroup.imacros:
                         depth = 0
                         write("    {\n")
                         for op in imacro.code:
                             operand = ""
                             if op.imm1 is not None:
                                 operand = ", " + immediate(op)
-                            if 'JOF_TYPESET' in op.info.flags:
-                                operand = operand + ", 0, 0"
                             write("/*%2d*/  %s%s,\n" % (op.offset, op.info.jsop, operand))
 
                         imacro.maxdepth = imacro.initdepth
                         simulate_cfg(igroup, imacro, imacro.initdepth, 0)
                         if imacro.maxdepth > maxdepth:
                             maxdepth = imacro.maxdepth
 
                         write("    },\n")
--- a/js/src/imacros.jsasm
+++ b/js/src/imacros.jsasm
@@ -690,8 +690,16 @@ 3:      swap                            
 .igroup callprop JSOP_CALLPROP
     .imacro scriptgetter        # obj
         .fixup +2               # obj getter obj
         call 0                  # obj method
         swap                    # method obj
         stop
     .end
 .end callprop
+
+.igroup getthisprop JSOP_GETTHISPROP,JSOP_GETARGPROP,JSOP_GETLOCALPROP
+    .imacro scriptgetter        #
+        .fixup +2               # getter obj
+        call 0                  # val
+        stop
+    .end
+.end getthisprop
--- a/js/src/jit-test/jit_test.py
+++ b/js/src/jit-test/jit_test.py
@@ -348,17 +348,17 @@ def run_tests(tests, test_dir, lib_dir, 
         print('PASSED ALL' + ('' if complete else ' (partial run -- interrupted by user %s)'%doing))
         return True
 
 def parse_jitflags():
     jitflags = [ [ '-' + flag for flag in flags ] 
                  for flags in OPTIONS.jitflags.split(',') ]
     for flags in jitflags:
         for flag in flags:
-            if flag not in ('-j', '-m', '-a', '-p', '-d', '-n'):
+            if flag not in ('-j', '-m', '-a', '-p', '-d'):
                 print('Invalid jit flag: "%s"'%flag)
                 sys.exit(1)
     return jitflags
 
 def platform_might_be_android():
     try:
         # The python package for SL4A provides an |android| module.
         # If that module is present, we're likely in SL4A-python on
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/arrayNatives.js
+++ /dev/null
@@ -1,18 +0,0 @@
-
-/* Array natives applied to non-arrays. */
-
-var oa = {};
-Array.pop(oa);
-assertEq(oa.length, 0);
-
-var ob = {};
-Array.push(ob, "twelve");
-assertEq(ob.length, 1);
-
-var oc = {};
-Array.shift(oc);
-assertEq(oc.length, 0);
-
-var od = {};
-Array.unshift(od, "eight");
-assertEq(od.length, 1);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/arrayProto.js
+++ /dev/null
@@ -1,12 +0,0 @@
-
-for (var i = 0; i < 15; i++) {
-  var x = Object.create([]);
-  assertEq(x.length, 0);
-}
-
-for (var i = 0; i < 15; i++) {
-  function foo() {}
-  foo.prototype = [];
-  var x = new foo();
-  assertEq(x.length, 0);
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug617745.js
+++ /dev/null
@@ -1,4 +0,0 @@
-
-var array1 = ['0'];
-var array2 = (new Array(1)).splice(0,0, array1);
-assertEq("" + array2, "");
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug618853.js
+++ /dev/null
@@ -1,12 +0,0 @@
-
-try { new isNaN; } catch (e) {}
-new Array;
-new Boolean;
-new Date;
-new Number;
-new Object;
-new String;
-try { new [].push(4); } catch (e) {}
-try { new [1,2,3].pop(); } catch (e) {}
-try { new "a,b,c".split(","); } catch (e) {}
-try { new Array.concat(3); } catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug619338.js
+++ /dev/null
@@ -1,1 +0,0 @@
-try { new Function.prototype } catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug621487.js
+++ /dev/null
@@ -1,4 +0,0 @@
-
-(function() { while (0) { var a, a = b; } })();
-
-(function(b) { do { var a, a = b; } while (0); assertEq(a, 10); })(10);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug638981.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Don't crash. */
-
-delete Function;
-Object.getOwnPropertyNames(this);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug639126.js
+++ /dev/null
@@ -1,4 +0,0 @@
-Array.__proto__ = Array.__proto__;
-gc();
-Array["name" + ""];
-Array();
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug639128.js
+++ /dev/null
@@ -1,10 +0,0 @@
-function f(o) { 
-    Object.seal(o); 
-}
-gc();
-if(2 != 2) {
-    g = new f(g);
-}
-with({}) {
-    f({});
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug639311.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Avoid use-after-free while sweeping type objects. */
-
-try {
-  Reflparse("")
-} catch(e) {}
-Reflect.parse("for(var a;a;j){if(a%2==0){c()}}")
-try {
-  (function() {
-    for (a = 0;; j) {
-      gc()
-    }
-  })()
-} catch(e) {
-  delete this.Math
-}
-gc()
-Reflect.parse("let(x){}")
-gc()
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug639529.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function f() {}
-g = wrap(f);
-g.__defineGetter__('toString', f.toString);
-g.toString;
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug639591.js
+++ /dev/null
@@ -1,4 +0,0 @@
-gczeal(2);
-var x;
-[eval("x")] ? eval("x") : 3;
-eval("Object()");
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug639759.js
+++ /dev/null
@@ -1,9 +0,0 @@
-gczeal(2);
-function f() {
-    for(var i=0; i<10; i++) {
-        [1, [1, 2, 3]];
-        eval("");
-    }
-}
-eval("Array(f() ? 0 : 1)");
-eval("Array((eval(\"f()\")) ? true : eval(''))");
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug639797.js
+++ /dev/null
@@ -1,1 +0,0 @@
-Function("with([])const x=0")()
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug639807.js
+++ /dev/null
@@ -1,4 +0,0 @@
-
-try {
-  eval("const[]=*,[x]=r")
-} catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug640078.js
+++ /dev/null
@@ -1,4 +0,0 @@
-eval("\
-  try{}\
-  catch(w if(function(){})){4067286856}\
-")
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug640079.js
+++ /dev/null
@@ -1,4 +0,0 @@
-eval("\
-  x = evalcx('split');\
-  evalcx(\"for(e in <x/>){}\" ,x)\
-")
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug640203.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var x = [,].splice(0);
-assertEq(x[0], undefined);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug640993.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function f() {
-    return f;
-}
-f.__proto__ = null;
-gc();
-f();
-new f();
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug641224.js
+++ /dev/null
@@ -1,5 +0,0 @@
-try {
-x = evalcx('lazy');
-x.__iterator__ = Object.isFrozen
-for each(x in x) {}
-} catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug641229.js
+++ /dev/null
@@ -1,2 +0,0 @@
-__defineSetter__("x",Math.max)
-Function("({x}=[])")()
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug641231.js
+++ /dev/null
@@ -1,1 +0,0 @@
-try { Function("function a(){this(*)}new a")() } catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug641235.js
+++ /dev/null
@@ -1,21 +0,0 @@
-try {
-function g(code) {
-    code = code.replace(/\/\*DUPTRY\d+\*\//, function(k) {
-        var n = parseInt(k.substr(8), 10);
-        return aa("try{}catch(e){}", n);
-    });
-    var f = new Function(code);
-    f()
-}
-function aa(s, n) {
-    if (n == 1) {
-        return s;
-    }
-    var s2 = s + s;
-    var r = n % 2;
-    var d = (n - r) / 2;
-    var m = aa(s2, d);
-    return r ? m + s : m;
-}
-g("switch(x){default:case l:/*DUPTRY5338*/case 0:x}");
-} catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug641491.js
+++ /dev/null
@@ -1,19 +0,0 @@
-function f1() {
-}
-function f2() {
-}
-function f3(o) {
-    f2 = XML.prototype;
-}
-var key = Object.getOwnPropertyNames(f1)[30];
-if(key) {
-    f3 = f1[key];
-}
-gc(); 
-gc();
-try {
-for(var i=0; i<10; i++) {
-    delete f2[1];
-    f3(function() {});
-}
-} catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug641525.js
+++ /dev/null
@@ -1,34 +0,0 @@
-
-var o2 = Proxy.create({});
-function f1() {}
-function f2() {}
-function f4(o) {
-    var key = Object.getOwnPropertyNames(o)[18];
-    o4 = o[key];
-    o.prototype = {};
-}
-f4(f1);
-f4(f1);
-f4(f2);
-new f2(o2);
-
-// these will hold only if type inference is enabled.
-//assertEq(shapeOf(f1) == shapeOf(f2), false);
-//assertEq(shapeOf(f1) == shapeOf(f4), false);
-
-function factory() {
-  function foo() {}
-  foo.x = 0;
-  return foo;
-}
-
-var fobjs = [];
-for (var i = 0; i < 10; i++) {
-  var of = fobjs[i] = factory();
-  if (i > 0) {
-    assertEq(fobjs[i - 1] === of, false);
-    assertEq(shapeOf(fobjs[i - 1]), shapeOf(of));
-  }
-}
-
-assertEq(shapeOf(fobjs[0]) == shapeOf(f1), false);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug641741.js
+++ /dev/null
@@ -1,1 +0,0 @@
-try { eval("var[]=(++false[x])()=[],x") } catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug642154.js
+++ /dev/null
@@ -1,16 +0,0 @@
-assertEq(Math.pow(1, undefined), NaN);
-assertEq(Math.pow(1, null), 1);
-assertEq(Math.pow(1, true), 1);
-assertEq(Math.pow(1, false), 1);
-assertEq(Math.pow(1, 0), 1);
-assertEq(Math.pow(1, -0), 1);
-assertEq(Math.pow(1, NaN), NaN);
-assertEq(Math.pow(1, {}), NaN);
-assertEq(Math.pow(1, {valueOf: function() { return undefined; }}), NaN);
-
-x = 2.2;
-assertEq(Math.pow(x - 1.2, undefined), NaN);
-
-var y;
-assertEq(Math.pow(1, y), NaN);
-
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug642161.js
+++ /dev/null
@@ -1,1 +0,0 @@
-assertEq(JSON.stringify(0 | "prefix" || Boolean), undefined);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug642164.js
+++ /dev/null
@@ -1,14 +0,0 @@
-function raisesException(exception) {
-  return function (code) {
-      eval(code);
-  };
-};
-function obj() {
-  var o = { assertEq: true, y: 1 };
-  Object.defineProperty(o, 'x', { writable: false });
-  return o;
-}
-function in_strict_with(expr) {
-  return "with(obj()) { (function () { 'use strict'; " + expr + " })(); }";
-}
-try { assertEq(raisesException(TypeError)(in_strict_with('x++;')), true); } catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug642206.js
+++ /dev/null
@@ -1,30 +0,0 @@
-this.__proto__ = null;
-
-function testLenientAndStrict(code, lenient_pred, strict_pred) {
-  return (strict_pred("'use strict'; " + code) && 
-          lenient_pred(code));
-}
-function raisesException(exception) {
-  return function (code) {
-    try {
-      eval(code);
-    } catch (actual) {
-    }
-  };
-};
-try {
-function arr() {
-  return Object.defineProperty(Object()* delete Object, 0, {writable: false});
-}
-assertEq(testLenientAndStrict('var a = arr(); [a.splice(0, 1), a]',
-                              raisesException(TypeError),
-                              raisesException(TypeError)),
-         true);
-} catch (e) {}
-ForIn_2(this);
-function ForIn_2(object) {
-  for ( property in object ) {
-    with ( object ) {
-    }
-  }
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug642248.js
+++ /dev/null
@@ -1,10 +0,0 @@
-function test(makeNonArray) {
-    function C() {}
-    C.prototype = []
-    c = new C();
-    c.push("foo");
-    return c.length
-}
-assertEq(test(true), 1);
-var a = [];
-var b = Object.create(a);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug642254.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function f(i) {
-  for (var n = 0; n < 0; n = i) { }
-}
-actual = f(.5);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug642319.js
+++ /dev/null
@@ -1,10 +0,0 @@
-
-test();
-function test() {
-        function f() {
-                function test( ) { summary( summary, test, false ); }
-        }
-        f.__proto__ = this;
-}
-gc();
-test();
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug642326.js
+++ /dev/null
@@ -1,4 +0,0 @@
-this.__proto__ = []; 
-gczeal(2);
-gc();
-var box = evalcx('lazy');
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug642422.js
+++ /dev/null
@@ -1,4 +0,0 @@
-gczeal(2);
-var x;
-var foo = "for (var z = 0; z < 2; ++z) { new Object(new String(this), x)}";
-eval(foo);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug642569.js
+++ /dev/null
@@ -1,13 +0,0 @@
-function main() {
-    var v1,  v2,  v3,  v4,  v5,  v6,  v7,  v8,  v9,  v10, v11, v12, v13, v14,
-        v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28,
-        v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
-        v43, v44, v45, v46, v47;
-    var v48 = 0, v49 = 0;
-    if (true) {
-        var v50 = v48 - 1;
-        var v51 = v49 + 1;
-        return v51;
-    }
-}
-assertEq(main(), 1);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug642592.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var strings = new Array();
-strings[0x7fffffff] = 0;
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug642758.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function Integer( value, exception ) { }
-try {
-new Integer( Math.LN2, ++INVALID_INTEGER_VALUE? exception+1.1: 1900 );
-} catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug642894.js
+++ /dev/null
@@ -1,9 +0,0 @@
-
-function foo() {
-  var x = {};
-  x.__proto__ = function() { return 0 }
-  return x;
-}
-var a = foo();
-var b = foo();
-assertEq(a.__proto__ === b.__proto__, false);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug642985-1.js
+++ /dev/null
@@ -1,23 +0,0 @@
-gczeal(2);
-function complex(aReal, aImag) {}
-function mandelbrotValueOO (aC, aIterMax) {
-  for (var iter = 0; iter < aIterMax; iter++) {  }
-}
-function f(trace) {
-  const width = 5;
-  const height = 5;
-  const max_iters = 5;
-  var output = [];
-  for (let img_x = 0; img_x < width; img_x++) {
-    for (let img_y = 0; img_y < height; img_y++) {
-      let C = new complex(-2 + (img_x / width) * 3,
-                          -1.5 + (img_y / height) * 3);
-      var res = mandelbrotValueOO(C, max_iters);
-      if (output.length > 0 && complex(5)) {
-      } else {
-        output.push([res, 1]);
-      }
-    }
-  }
-}
-var timenonjit = f(false);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug642985-2.js
+++ /dev/null
@@ -1,23 +0,0 @@
-function f(N)
-{
-        for (var i = 0; i != N; ++i) {
-                var obj1 = {}, obj2 = {};
-                obj1['a'+i] = 0;
-                obj2['b'+i] = 0;
-                for (var repeat = 0;repeat != 2; ++repeat) {
-                        for (var j in obj1) {
-                                for (var k in obj2) {
-                                        gc();
-                                }
-                        }
-                }
-        }
-}
-var array = [function() { f(10); },
-    function(array) { f(50); },
-    function() { propertyIsEnumerable.call(undefined, {}); },
-    ];
-try {
-  for (var i = 0; i != array.length; ++i)
-    array[i]();
-} catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug643113.js
+++ /dev/null
@@ -1,11 +0,0 @@
-function printBugNumber (num)
-{
-  print ('BUGNUMBER: ' + num);
-}
-try { test(); } catch (e) {}
-function test()
-{
-  printBugNumber(typeof BUGNUMBER == 'undefined');
-  1|| q + 48? new q(   printBugNumber,
-                eval("var EXP_1 = new MyValuelessObject('string'); var EXP_2 = new MyValuelessObject(false); EXP_1 + EXP_2") ): 1;
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug643169.js
+++ /dev/null
@@ -1,7 +0,0 @@
-for(var i=0; i<3; i++) {
-    var x;
-    function ff() {}
-    with(this) {}
-    x;
-    x = true;
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug643243.js
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-    function newSandbox(n) {}
-}
-var o12 = Float32Array.prototype;
-function f12(o) {
-    eval('o')['__proto_' + '_'] = null;
-}
-for (var i = 0; i < 14; i++) {
-    gc()
-    new f12(o12);
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug643244.js
+++ /dev/null
@@ -1,2 +0,0 @@
-delete(0).__proto__.valueOf
-eval("(function(){(0).valueOf();<x/>})")()
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug643249.js
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-    function x() {}
-}
-for (i = 0; i < 10; i++) {
-    _someglobal_ = /a/;
-    (function() {
-        return function() {
-            return _someglobal_
-        } ()
-    } () == /a/);
-    gc();
-    try { _someglobal_ = new Function.__lookupSetter__ } catch (e) {}
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug643285.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function fun() {
-    (new Function ("function ff () { actual = '' + ff. caller; } function f () { ff (); } f ();")) ('function pf' + fun + '() {}');
-}
-fun();
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug643670.js
+++ /dev/null
@@ -1,14 +0,0 @@
-o3 = evalcx("split")
-function f3(o) {
-    try {
-        new o
-    } catch(e) {}
-}
-function f16(o) {
-    Object.getOwnPropertyNames(o);
-    o.__defineGetter__("prototype", function() {})
-}
-for (i = 0; i < 10; i++) {
-    new f3(o3);
-    f16(o3)
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug643733.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var x;
-assertEq(-(typeof (x+x)), NaN);
-assertEq(-(typeof Math.abs()), NaN);
-
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug645293.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/* Don't assert. */
-function f() {
-    NaN++;
-    --NaN;
-    Infinity--;
-    ++Infinity;
-    undefined++;
-    --undefined;
-    ++Math;
-    Math--;
-}
-f();
\ No newline at end of file
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug645632.js
+++ /dev/null
@@ -1,6 +0,0 @@
-
-function f(o) {
-    o[{}] = 1;
-    with(Object) {}
-}
-f(Object.prototype);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug646393.js
+++ /dev/null
@@ -1,4 +0,0 @@
-try {
-  x.y;
-} catch(ex) {}
-x = Number(1);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug647463.js
+++ /dev/null
@@ -1,6 +0,0 @@
-
-try {
-    eval("\
-        [0].sort()\
-    ")
-} catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug647695.js
+++ /dev/null
@@ -1,15 +0,0 @@
-try { let(x = XMLList(7), y = let(a = x)("")) {} } catch (e) {}
-
-try {
-with({
-    y: Float64Array
-})
-for each(let y in [y]) {}
-} catch (e) {}
-
-try { test(); } catch (e) {}
-function test() {
-    try {
-        var result, arguments = 'adddb', arguments;
-    } catch (ex) {}
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug648357.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var x = [1, 2, 3, 4, 5, 6, 7, 8];
-x.pop();
-x.push(9);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug648773.js
+++ /dev/null
@@ -1,4 +0,0 @@
-gczeal(2);
-for (var loopa2 = 0; loopa2 < 13; loopa2++) {
-  [, , , , , , ][Float64Array()] = 72413.8139177333;
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug649439.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var o1 = new String("abc");
-var o2 = o1[1];
-o2[1];
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug649771.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function f(o) {
-    f = o.constructor;
-    eval('delete o.x');
-}
-for(var i=0; i<3; i++) {
-    f(RegExp.prototype);
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug650148.js
+++ /dev/null
@@ -1,11 +0,0 @@
-summary=/(?!AB+D)AB/.exec("AB") + '';
-try {
-  var s = "throw 42";
-} catch (e) {}
-test();
-function test() {
-  [ {0xBe: /l/|| 'Error' ? s++ : summary } ]
-}
-function foo(code)
-        Function(code)();
-foo("for each (y in this);");
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug651451-2.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var arr = [1, 2, 3, 4, 5];
-arr.length = 100;
-arr.pop();
-assertEq(arr.length, 99);
-arr.pop();
-assertEq(arr.length, 98);
\ No newline at end of file
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug651451.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var arr = [2];
-arr.pop();
-arr[0] = 2;
-assertEq(arr.length, 1);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug651966.js
+++ /dev/null
@@ -1,38 +0,0 @@
-
-function f(code) {
-    g = eval("(function(){" + code + "})");
-    g()
-}
-f();
-f();
-f();
-f();
-f();
-f();
-f();
-f();
-f();
-f();
-f();
-f();
-f();
-f();
-f();
-f();
-try { f("<x/>.(x=[]);function x(){}(x())"); } catch (e) {}
-
-function f2() {
-    a = {
-        x
-    } = x, (x._)
-    function
-    x()( * :: * )
-}
-try { f2(); } catch (e) {}
-
-function f3() {
-  var x = 0;
-  with ({}) { x = 'three'; }
-  return x;
-}
-f3();
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug652422.js
+++ /dev/null
@@ -1,6 +0,0 @@
-try { (function() {
-    var o = {};
-    with (o) o='recorder not started, ';
-    ('arguments' in o, false,
-                  "property deletion observable")
-})() } catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug652646.js
+++ /dev/null
@@ -1,11 +0,0 @@
-function foo() {
-  try {
-    return 0;
-  } catch (e) {
-    try {
-      return 1;
-    } catch (e) {
-    }
-  }
-}
-foo();
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug653262.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var HAVE_TM = 'tracemonkey' in this;
-var HOTLOOP = HAVE_TM ? tracemonkey : 8;
-with(evalcx(''))(function eval() {}, this.__defineGetter__("x", Function));
-var i = 0;
-var o;
-new(x);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug654668.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var summary = 'foo';
-function X(n) {
-    var y = [];
-    while (summary + y[0]) {
-        break;
-    }
-}
-X();
-
-// Don't crash wthi -m -n -a
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug657197.js
+++ /dev/null
@@ -1,5 +0,0 @@
-try { (function() {
-  new function() {
-    throw [];
-  }
-})() } catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug657225.js
+++ /dev/null
@@ -1,9 +0,0 @@
-
-function reportCompare(expected, actual, description) + ++actual + "'";
-var summary = 'Object.prototype.toLocaleString() should track Object.prototype.toString() ';
-var o = {
-    toString: function () {}
-};
-expect = o;
-actual = o.toLocaleString();
-reportCompare(expect, actual, summary);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug657245.js
+++ /dev/null
@@ -1,4 +0,0 @@
-
-var length = 4294967295;
-var array1 = Array(length);
-array1.pop();
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug657901.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function f() {};
-function g(o) {
-    f = new Function("");
-    eval("");
-}
-g({});
-g({});
-f++;
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug657975.js
+++ /dev/null
@@ -1,79 +0,0 @@
-// |jit-test| debug
-setDebug(true);
-
-// bug 657975
-function f1(){ "use strict"; options('strict'); }
-trap(f1, 0, '')
-f1()
-
-// bug 657979
-function f2(){ with({a:0}){}; }
-trap(f2, 0, '')
-f2()
-
-x = 0;
-
-// bug 657984 #1
-function f3(){ for(y in x); }
-trap(f3, 5, '')
-f3()
-
-// bug 657984 #2
-function f4(){ for(y in x); }
-trap(f4, 10, '')
-f4()
-
-// bug 658464
-function f5() {
-  for ([, x] in 0) {}
-}
-trap(f5, 9, '')
-f5()
-
-// bug 658465
-function f6() {
-  "use strict";
-  print(Math.min(0, 1));
-}
-trap(f6, 10, '')
-f6()
-
-// bug 658491
-function f7() {
-  try { y = w; } catch(y) {}
-}
-trap(f7, 16, '')
-f7()
-
-// bug 658950
-f8 = (function() {
-  let x;
-  yield
-})
-trap(f8, 6, undefined);
-for (a in f8())
-  (function() {})()
-
-// bug 659043
-f9 = (function() {
-  for (let a = 0; a < 0; ++a) {
-    for each(let w in []) {}
-  }
-})
-trap(f9, 27, undefined);
-for (b in f9())
-  (function() {})()
-
-// bug 659233
-f10 = (function() {
-    while (h) {
-        continue
-    }
-})
-trap(f10, 0, '');
-try { f10() } catch (e) {}
-
-// bug 659337
-f11 = Function("for (x = 0; x < 6; x++) { gc() }");
-trap(f11, 25, '');
-f11()
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug658539.js
+++ /dev/null
@@ -1,2 +0,0 @@
-with(newGlobal('same-compartment'))
-new Number()
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug660081.js
+++ /dev/null
@@ -1,1 +0,0 @@
-(function() { "length" in (true && arguments); })()
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug660173.js
+++ /dev/null
@@ -1,4 +0,0 @@
-(function() {}).apply(null, (function() {
-    var x;
-    return (x = arguments);  
-})());
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug660203.js
+++ /dev/null
@@ -1,9 +0,0 @@
-
-function throwsRangeError(t) {
-    try {
-        var date = arguments;
-        date.setTime
-    } catch (err) {
-    }
-}
-throwsRangeError();
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug660204.js
+++ /dev/null
@@ -1,12 +0,0 @@
-
-eval("try { name(); } catch(e) {}");
-function Employee ( name, dept ) {
-  this.name=name || ""
-  this.dept
-}
-function WorkerBee ( name, dept, projs ) {
-  this.base=Employee
-    this.base( name, print("WHAT"))
-}
-new WorkerBee;
-WorkerBee();
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug660538.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// |jit-test| error: SyntaxError;
-
-Error.prototype.__proto__.p = 5;
-f = Function("return( \"\" <arguments for(w in[]))");
-for (i in f()) {}
-
-(function() {
-    for (a in (
-        arguments for (l in [0])
-    ))
-    {}
-})()
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug660597.js
+++ /dev/null
@@ -1,5 +0,0 @@
-
-function foo() {
-  with(foo) this["00"]=function(){}
-}
-new foo;
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug662044.js
+++ /dev/null
@@ -1,12 +0,0 @@
-eval("var OBJ = new MyObject(true); OBJ.valueOf()") 
-function MyObject( value ) {
-  this.valueOf = new Function( "return this.value" );
-}
-eval("\
-var VERSION = \"ECMA_1\";\
-var DATE1 = new Date();\
-var MYOB1 = new MyObject( DATE1 );\
-function MyProtoValuelessObject() {}\
-function Function() {\
-  __proto__[MyProtoValuelessObject] = VERSION;\
-}");
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug662338.js
+++ /dev/null
@@ -1,1 +0,0 @@
-let (parsesSuccessfully = SyntaxError) function () parsesSuccessfully
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug662562.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// |jit-test| error: TypeError
-function f(o) {
-    o.watch("x", this);
-}
-var c = evalcx("");
-f(c);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug662841.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var e = newGlobal("new-compartment");
-for (let w in [0, 0, 0, 0, 0, 0, 0, 0]) {
-    -e;
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug665289.js
+++ /dev/null
@@ -1,4 +0,0 @@
-delete this.Function;
-a = evalcx("lazy");
-a["Object"] = this;
-if (typeof a.isPrototypeOf == "") {}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug665812.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// |jit-test| error: TypeError
-
-(function() {
-    function::d = 0
-    d.(l)
-    function d() {}
-})()
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/builtinLocals.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-/* Resolve 'arguments' and the name of the function itself in the presence of such local variables. */
-
-function f() {
-    return typeof arguments;
-    function arguments() {
-        return 7;
-    }
-}
-assertEq(f(), "object");
-
-function g() {
-    var arguments = 0;
-    return typeof arguments;
-}
-assertEq(g(), "number");
-
-function h() {
-    return typeof h;
-    function h() {
-        return 7;
-    }
-}
-assertEq(h(), "function");
-
-function i() {
-    return typeof i;
-    var i;
-}
-assertEq(i(), "undefined");
-
-function j() {
-    return typeof j;
-}
-assertEq(j(), "function");
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/deleteToString.js
+++ /dev/null
@@ -1,5 +0,0 @@
-
-/* Inheritance of shadowed function properties from Object.prototype. */
-
-delete Function.prototype.toString;
-assertEq(Function.prototype.toString, Object.prototype.toString);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/nestedContinue.js
+++ /dev/null
@@ -1,11 +0,0 @@
-x = 10;
-outer:
-while (x < 10) {
-  while (x < 10) {
-    if (x < 10)
-      continue outer;
-    while (x < 10) {
-      y = 0;
-    }
-  }
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/primitiveProto.js
+++ /dev/null
@@ -1,24 +0,0 @@
-
-function fna() {}
-fna.prototype = undefined;
-new fna;
-
-function fnb() {}
-fnb.prototype = null;
-new fnb;
-
-function fnc() {}
-fnc.prototype = 3;
-new fnc;
-
-function fnd() {}
-fnd.prototype = true;
-new fnd;
-
-function fne() {}
-fne.prototype = "foo";
-new fne;
-
-function fnf() {}
-fnf.prototype = /foo/;
-new fnf;
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/singleton.js
+++ /dev/null
@@ -1,12 +0,0 @@
-
-var a = [1,2,3,4];
-var b = [{a:0,b:1},{a:0,b:1},{a:0,b:1}];
-var c = {a:0,b:4.5};
-var d = [1,2,3,true];
-var e = {a:0,b:1,c:2};
-var f = {a:0,b:1,c:true};
-
-var w = JSON.parse('[1,2,3,4]');
-var x = JSON.parse('{"a":0,"b":true,"c":4.5}');
-var y = JSON.parse('{"d":true,"b":true,"c":4.5}');
-var z = JSON.parse('[{"a":0,"b":1},{"a":0,"b":1},{"a":0,"b":1}]');
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/testArrayConcat.js
+++ /dev/null
@@ -1,10 +0,0 @@
-
-var x = Array(4);
-x[0] = 1;
-x[1] = 2;
-x[2] = 3;
-var y = x.concat();
-assertEq(y[3], undefined);
-
-var z = x.concat(/abc/).pop();
-assertEq(z.source, "abc");
--- a/js/src/jit-test/tests/basic/testBug653396.js
+++ b/js/src/jit-test/tests/basic/testBug653396.js
@@ -1,7 +1,5 @@
-try {
 function g(a, b, c, d) {}
 function f(a, b, c) {
         arguments.length=8.64e15;
         g.apply(this, arguments);
 }f();
-} catch (e) {}
--- a/js/src/jit-test/tests/basic/testCompileScript.js
+++ b/js/src/jit-test/tests/basic/testCompileScript.js
@@ -11,19 +11,17 @@ for (var i = 0; i < nlocals; ++i)
  * and updating the stack limit).
  */
 var arr = [function() {return 0}, function() {return 1}, function() {return 2}];
 var arg = "x";
 var body = localstr +
            "if (x == 0) return; " +
            "arr[3] = (new Function(arg, body));" +
            "for (var i = 0; i < 4; ++i) arr[i](x-1);";
-
-// XXX interpreter bailouts during recursion below can cause us to hit the limit quickly.
-try { (new Function(arg, body))(1000); } catch (e) {}
+(new Function(arg, body))(1000);
 
 /*
  * Also check for OOM in CompileFunction. To avoid taking 5 seconds, use a
  * monster apply to chew up most the stack.
  */
 var gotIn = false;
 var threwOut = false;
 try {
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/testNewWithClone.js
+++ /dev/null
@@ -1,7 +0,0 @@
-with({}) {
-    function f() {
-        this.foo = "bar";
-    }
-    o = new f();
-    assertEq(o.foo, "bar");
-}
--- a/js/src/jit-test/tests/basic/testTrapOnEval.js
+++ b/js/src/jit-test/tests/basic/testTrapOnEval.js
@@ -1,4 +1,4 @@
 // |jit-test| debug
 function f() { eval(''); }
-trap(f, 8, '');
+trap(f, 6, '');
 f();
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/testWith.js
+++ /dev/null
@@ -1,8 +0,0 @@
-
-// basic 'with' functionality
-
-var o = {foo: true};
-with(o) {
-    foo = 10;
-}
-assertEq(o.foo, 10);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/truncateDouble.js
+++ /dev/null
@@ -1,10 +0,0 @@
-
-// check correctness of truncation of doubles slightly outside the int32 range.
-
-function truncate(x) {
-  return x | 0;
-}
-
-assertEq(truncate(0xffffffff), -1);
-assertEq(truncate(0xffffffff + 5000.5), 4999);
-assertEq(truncate(-0xffffffff - 5000.5), -4999);
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/typeMonitorCall.js
+++ /dev/null
@@ -1,19 +0,0 @@
-
-/* Make sure we are checking argument types when going through unknown but monomorphic call sites. */
-
-function foo(x) {
-  return x + 10;
-}
-
-var array = [1,2,3,4,5,6,7,"eight"];
-
-/* Jump through hoops to make 'f' unknown. */
-var f = this[eval("'foo'")];
-
-for (var i = 0; i < array.length; i++) {
-  var res = f(array[i]);
-  if (i != 7)
-    assertEq(res, i + 11);
-  else
-    assertEq(res, "eight10");
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/argumentsOptimize-1.js
+++ /dev/null
@@ -1,14 +0,0 @@
-
-function bar() {
-  foo.arguments.length = 10;
-}
-
-function foo(x) {
-  var a = arguments;
-  var n = 0;
-  bar();
-  assertEq(x, 5);
-  assertEq(a.length, 10);
-}
-
-foo(5);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/argumentsOptimize-2.js
+++ /dev/null
@@ -1,27 +0,0 @@
-
-function foo() {
-  var x = 0;
-  for (var i = arguments.length - 1; i >= 0; i--)
-    x += arguments[i];
-  return x;
-}
-
-function bar() {
-  var x = 0;
-  for (var i = 0; i < arguments.length; i++)
-    x += arguments[i];
-  return x;
-}
-
-function baz(a,b,c,d,e) {
-  var x = 0;
-  for (var i = 0; i < arguments.length; i++)
-    x += arguments[i];
-  return x;
-}
-
-for (var i = 0; i < 10; i++) {
-  assertEq(foo(1,2,3,4,5), 15);
-  assertEq(bar(1,2.5,true,{valueOf:function() { return 10}},"five"), "14.5five");
-  assertEq(baz(1,2,3,4,5), 15);
-}
--- a/js/src/jit-test/tests/jaeger/bug563000/eif-call-newvar.js
+++ b/js/src/jit-test/tests/jaeger/bug563000/eif-call-newvar.js
@@ -1,13 +1,15 @@
 // |jit-test| mjitalways;debug
 setDebug(true);
 
 function callee() {
+  assertJit();
   evalInFrame(1, "var x = 'success'");
 }
 function caller(code) {
+  assertJit();
   eval(code);
   callee();
   return x;
 }
 assertEq(caller('var y = "ignominy"'), "success");
 assertEq(typeof x, "undefined");
--- a/js/src/jit-test/tests/jaeger/bug563000/eif-getter-newvar.js
+++ b/js/src/jit-test/tests/jaeger/bug563000/eif-getter-newvar.js
@@ -1,10 +1,11 @@
 // |jit-test| mjitalways;debug
 setDebug(true);
 
 this.__defineGetter__("someProperty", function () { evalInFrame(1, "var x = 'success'"); });
 function caller(code, obj) {
+  assertJit();
   eval(code); // Make the compiler give up on binding analysis.
   obj.someProperty;
   return x;
 }
 assertEq(caller("var y = 'ignominy'", this), "success");
--- a/js/src/jit-test/tests/jaeger/bug563000/eif-trap-newvar.js
+++ b/js/src/jit-test/tests/jaeger/bug563000/eif-trap-newvar.js
@@ -1,10 +1,11 @@
 // |jit-test| mjitalways;debug
 setDebug(true);
 
 function nop(){}
 function caller(code, obj) {
+  assertJit();
   eval(code); // Make the compiler give up on binding analysis.
   return x;
 }
-trap(caller, 16, "var x = 'success'; nop()");
+trap(caller, 7, "var x = 'success'; nop()");
 assertEq(caller("var y = 'ignominy'", this), "success");
--- a/js/src/jit-test/tests/jaeger/bug563000/eif-trap.js
+++ b/js/src/jit-test/tests/jaeger/bug563000/eif-trap.js
@@ -2,10 +2,10 @@
 setDebug(true);
 
 function nop(){}
 function caller(obj) {
   assertJit();
   var x = "failure";
   return x;
 }
-trap(caller, 18, "x = 'success'; nop()");
+trap(caller, 14, "x = 'success'; nop()");
 assertEq(caller(this), "success");
--- a/js/src/jit-test/tests/jaeger/bug563000/simple-trap-1.js
+++ b/js/src/jit-test/tests/jaeger/bug563000/simple-trap-1.js
@@ -1,10 +1,10 @@
 // |jit-test| debug
 setDebug(true);
 var x = "failure";
 function main() { x = "success"; }
 
 /* The JSOP_STOP in a. */
-trap(main, 10, "");
+trap(main, 11, "");
 main();
 
 assertEq(x, "success");
--- a/js/src/jit-test/tests/jaeger/bug563000/trap-from-add-inline.js
+++ b/js/src/jit-test/tests/jaeger/bug563000/trap-from-add-inline.js
@@ -1,13 +1,13 @@
 // |jit-test| debug
 setDebug(true);
 x = "notset";
 function main() {
   /* The JSOP_STOP in a. */
-  a = { valueOf: function () { trap(main, 38, "success()"); } };
+  a = { valueOf: function () { trap(main, 36, "success()"); } };
   a + "";
   x = "failure";
 }
 function success() { x = "success"; }
 
 main();
 assertEq(x, "success");
--- a/js/src/jit-test/tests/jaeger/bug563000/trap-from-add-ool.js
+++ b/js/src/jit-test/tests/jaeger/bug563000/trap-from-add-ool.js
@@ -1,14 +1,14 @@
 // |jit-test| debug
 setDebug(true);
 x = "notset";
 function main() {
   /* The JSOP_STOP in a. */
-  a = { valueOf: function () { trap(main, 65, "success()"); } };
+  a = { valueOf: function () { trap(main, 57, "success()"); } };
   b = "";
   eval();
   a + b;
   x = "failure";
 }
 function success() { x = "success"; }
 
 main();
--- a/js/src/jit-test/tests/jaeger/bug563000/trap-parent.js
+++ b/js/src/jit-test/tests/jaeger/bug563000/trap-parent.js
@@ -1,14 +1,14 @@
 // |jit-test| debug
 setDebug(true);
 x = "notset";
 function child() {
   /* JSOP_STOP in parent. */
-  trap(parent, 21, "success()");
+  trap(parent, 17, "success()");
 }
 function parent() {
   child();
   x = "failure";
 }
 function success() {
   x = "success";
 }
--- a/js/src/jit-test/tests/jaeger/bug563000/trap-self-as-parent.js
+++ b/js/src/jit-test/tests/jaeger/bug563000/trap-self-as-parent.js
@@ -1,16 +1,16 @@
 // |jit-test| debug
 setDebug(true);
 x = "notset";
 
 function myparent(nested) {
   if (nested) {
     /* noop call in myparent */
-    trap(myparent, 58, "success()");
+    trap(myparent, 50, "success()");
   } else {
     myparent(true);
     x = "failure";
     noop();
   }
 }
 function noop() { }
 function success() { x = "success"; }
--- a/js/src/jit-test/tests/jaeger/bug563000/trap-self-from-trap.js
+++ b/js/src/jit-test/tests/jaeger/bug563000/trap-self-from-trap.js
@@ -2,23 +2,23 @@
 setDebug(true);
 x = "notset";
 
 function doNothing() { }
 
 function myparent(nested) {
   if (nested) {
     /* JSOP_CALL to doNothing in myparent with nested = true. */
-    trap(myparent, 32, "success()");
+    trap(myparent, 24, "success()");
     doNothing();
   } else {
     doNothing();
   }
 }
 /* JSOP_CALL to doNothing in myparent with nested = false. */
-trap(myparent, 47, "myparent(true)");
+trap(myparent, 35, "myparent(true)");
 
 function success() {
   x = "success";
 }
 
 myparent(false);
 assertEq(x, "success");
--- a/js/src/jit-test/tests/jaeger/bug563000/trap-self.js
+++ b/js/src/jit-test/tests/jaeger/bug563000/trap-self.js
@@ -1,12 +1,12 @@
 // |jit-test| debug
 setDebug(true);
 x = "notset";
 function main() {
   /* The JSOP_STOP in a. */
-  trap(main, 31, "success()");
+  trap(main, 25, "success()");
   x = "failure";
 }
 function success() { x = "success"; }
 
 main();
 assertEq(x, "success");
--- a/js/src/jit-test/tests/jaeger/bug563000/untrap-self.js
+++ b/js/src/jit-test/tests/jaeger/bug563000/untrap-self.js
@@ -1,14 +1,14 @@
 // |jit-test| debug
 setDebug(true);
 x = "notset";
 function main() {
   /* JSOP_STOP in main. */
-  untrap(main, 28);
+  untrap(main, 23);
   x = "success";
 }
 function failure() { x = "failure"; }
 
 /* JSOP_STOP in main. */
-trap(main, 28, "failure()");
+trap(main, 23, "failure()");
 main();
 assertEq(x, "success");
--- a/js/src/jit-test/tests/jaeger/bug600139.js
+++ b/js/src/jit-test/tests/jaeger/bug600139.js
@@ -2,9 +2,10 @@
 // vim: set ts=4 sw=4 tw=99 et:
 function f(a, b, c) {
     if (!a.__SSi) {
         throw Components.returnCode = Cr.NS_ERROR_INVALID_ARG;
     }
     this.restoreWindow(a, b, c);
     eval();
 }
+dis(f);
 f(1, 2, 3);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug617433.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// don't crash
-
-function foo(x) {
-  (x >>> 3.14);
-  (x >>> true);
-  (x >>> (0/0));
-  (x >>> 100);
-  (x >>> -10);
-  (x >>> (1/0));
-  (x >>> (void 0));
-}
-foo(10);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug617440.js
+++ /dev/null
@@ -1,11 +0,0 @@
-
-function f() {
-    var x = 1.23;
-    function g() {
-        var y = x++;
-        assertEq(y, 1.23);
-    }
-    g();
-    assertEq(x, 2.23);
-}
-f();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug617458.js
+++ /dev/null
@@ -1,6 +0,0 @@
-
-function f(x) {
-    var a = 4 | x;
-    a = +a;
-}
-f(10);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug617460.js
+++ /dev/null
@@ -1,10 +0,0 @@
-
-function f() {
-    var x = NaN;
-    if (2 > 0) {}
-    var y = {};
-    var z = (1234 - x);
-    y.foo = z;
-    assertEq(x, NaN);
-}
-f();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug617549.js
+++ /dev/null
@@ -1,9 +0,0 @@
-
-function f() {
-    var a, b, c;
-    a = -c;
-    b = c & 2;
-    a = b;
-    a = 123 * a;
-}
-f();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug617558.js
+++ /dev/null
@@ -1,7 +0,0 @@
-
-Array.prototype.__proto__ = Function.prototype;
-var x = [1,2,3];
-x[0];
-
-[].__proto__.foo = true;
-eval("[]");
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug617624.js
+++ /dev/null
@@ -1,7 +0,0 @@
-
-function f() {
-    var x;
-    var a = x;
-    Boolean(a = Number(12.34));
-}
-f();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug618849.js
+++ /dev/null
@@ -1,11 +0,0 @@
-
-function f() {
-    function g() {
-        var b = x;
-        var c = b++ & b;
-        return c;
-    }
-    var x = x--;
-    return g();
-}
-assertEq(f(), 0);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug618850.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function f() {
-    var x = false;
-    NaN ? x = Math.floor() : x = Math.ceil();
-    return x * 12345;
-}
-assertEq(f(), NaN);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug618863.js
+++ /dev/null
@@ -1,23 +0,0 @@
-function f() {
-  for(var i=0; i<3; i++) {
-    var x = -i / 100;
-    assertEq(x * -100, i);
-  }
-}
-f();
-
-function g() {
-  for (var i = 0; i < 2; i++) {
-    var a = i ? true : false;
-    var x = -a / 100;
-    assertEq(x * -100, i);
-  }
-}
-g();
-
-function h() {
-  for (var i = 0; i < 20; i++)
-    var x = (0x7ffffff4 + i) / 100;
-  assertEq(x, 21474836.55);
-}
-h();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug619339.js
+++ /dev/null
@@ -1,3 +0,0 @@
-
-var a;
-assertEq(true && 1.1 + a, NaN);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug619433-1.js
+++ /dev/null
@@ -1,22 +0,0 @@
-
-/* Test compiling JSOP_STRICTEQ on known doubles. */
-
-function foo(x) {
-  return x === x;
-}
-
-for (var i = 0; i < 20; i++) {
-  assertEq(foo(1.2), true);
-  assertEq(foo(NaN), false);
-}
-
-function bar(x) {
-  if (x === x)
-    return true;
-  return false;
-}
-
-for (var i = 0; i < 20; i++) {
-  assertEq(bar(1.2), true);
-  assertEq(bar(NaN), false);
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug619433-2.js
+++ /dev/null
@@ -1,10 +0,0 @@
-
-function foo(x) {
-  var y = 2.5;
-  y = -x;
-  var z = [1,2,y];
-  return x + 5;
-}
-for (var i = 0; i < 20; i++)
-  foo(i);
-assertEq(foo(20), 25);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug621522.js
+++ /dev/null
@@ -1,14 +0,0 @@
-
-/* Don't crash. */
-function f() {
-    var x;
-    x.a;
-    x = {};
-}
-
-try {
-    f();
-    assertEq(0, 1);
-} catch(e) {
-
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug621655.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/* Don't assert. */
-for(p in 0.3) { }
-
-Number.prototype.foo = function() {}
-var arr = [];
-
-for(p in 1.2) {
-    arr.push(p);
-}
-assertEq(arr[0], "foo");
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug639459.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function f() {
-    var a = [].length;
-    return a / a;
-}
-assertEq(f(), NaN);
-
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug639478-1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-
-function f(x) {
-    return (x % 123.45) >> x;
-}
-assertEq(f(-123), -4);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug639478-2.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var y;
-function f() {
-    for(var _ in [3.14]) {
-        y = 3.14;
-        y = y ^ y;
-        return y;
-        
-        function g() {
-        }
-    }
-}
-assertEq(f(), 0);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug639587.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Don't assert. */
-
-function f(o) {
-  o == 1;
-    if (o == 2) {}
-}
-for (var i = 0; i < 20; i++)
-  f(3.14);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug639792.js
+++ /dev/null
@@ -1,8 +0,0 @@
-
-for(var i=0; i<20; i++) {
-    function f(){};
-    x = -1;
-    x = x % 1;
-    assertEq(x, -0);
-}
-
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug639808.js
+++ /dev/null
@@ -1,16 +0,0 @@
-function f() {
-    var x = 1.23;
-    var y = [].length;
-    x = ++y;
-    y - 1;
-}
-f();
-
-function g(q) {
-    var x = 1.23;
-    var y = [].length;
-    x = ++y;
-    if (q)
-      assertEq(y + 5, 6);
-}
-g(1);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug640098.js
+++ /dev/null
@@ -1,15 +0,0 @@
-
-eval("(function(){({6953421313:0})})")();
-
-function f() {
-    var x = {6953421313: 123};
-    assertEq(x[6953421313], 123);
-
-    x[6953421313] = "a";
-    assertEq(x[6953421313], "a");
-
-    var y = {3.3: true};
-    assertEq(y[3.3], true);
-}
-f();
-
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug640102.js
+++ /dev/null
@@ -1,3 +0,0 @@
-try {
-  eval("v>>([]=x)")
-} catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug640614.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function f(x) {
-    x = 2 ^ x++;
-    if (x) {}
-}
-f(1.1);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug642198.js
+++ /dev/null
@@ -1,9 +0,0 @@
-
-function test() {
-    for(var e=1.2; true; e=20.2) {
-        if (e > 10)
-            break;
-    }
-}
-test();
-
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug643653-1.js
+++ /dev/null
@@ -1,10 +0,0 @@
-function f(x) {
-    var a;
-    var b = [1].length;
-    var c = x;
-    var d = b + 1;
-    AA = x;
-    a = d;
-    assertEq(b + d, 3);
-}
-f();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug643653-2.js
+++ /dev/null
@@ -1,58 +0,0 @@
-var HEAP, IHEAP, FHEAP;
-var TOTAL_MEMORY = 50 * 1024 * 1024;
-HEAP = IHEAP = new Int32Array(TOTAL_MEMORY);
-STACK_ROOT = STACKTOP = undefined;
-var _rng;
-var __str2;
-var __str3;
-{
-    var __stackBase__ = STACKTOP;
-    var $n;
-    var $tmp5 = __stackBase__ + 12;
-    var $tmp6 = $n;
-    var $mul7 = ($tmp6) * 3;
-    $this_addr_i23 = $tmp5;
-    $id_addr_i = __str2;
-    $desc_addr_i = __str3;
-    $N_addr_i = $mul7;
-    var $this1_i24 = $this_addr_i23;
-    var $tmp_i25 = $id_addr_i;
-    var $tmp2_i = $desc_addr_i;
-    var $tmp3_i = $N_addr_i;
-    __Z9makeFastaI10RandomizedEvPKcS2_jRT_($tmp_i25, $tmp2_i, $tmp3_i, $this1_i24);
-}
-function __Z9makeFastaI10RandomizedEvPKcS2_jRT_($id, $desc, $N, $output)
-{
-    $output_addr = $output;
-    var $tmp4 = $output_addr;
-    $this_addr_i = $tmp4;
-    var $this1_i = $this_addr_i;
-    var $table_i = $this1_i;
-    var $call_i = __ZN10LineBuffer7genrandER10Cumulativej(0, $table_i, 0);
-}
-function __ZN10LineBuffer7genrandER10Cumulativej($this, $table, $N)
-{
-    var $this_addr_i1;
-    var $pct_addr_i;
-    $table_addr = $table;
-    var $tmp3 = $table_addr;
-    $this_addr_i = _rng;
-    $max_addr_i = 1;
-    var $this1_i = $this_addr_i;
-    var $last_i = $this1_i;
-    var $tmp_i = IHEAP[$last_i];
-    var $mul_i = ($tmp_i) * 3877;
-    var $add_i = ($mul_i) + 29573;
-    var $rem_i = ($add_i) % 139968;
-    var $last2_i = $this1_i;
-    IHEAP[$last2_i] = $rem_i;
-    var $tmp3_i = $max_addr_i;
-    var $last4_i = $this1_i;
-    var $tmp5_i = IHEAP[$last4_i];
-    var $conv_i = ($tmp5_i);
-    var $mul6_i = ($tmp3_i) * ($conv_i);
-    var $div_i = ($mul6_i) / 139968;
-    $this_addr_i1 = $tmp3;
-    $pct_addr_i = $div_i;
-    assertEq($pct_addr_i, NaN);
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug643805.js
+++ /dev/null
@@ -1,50 +0,0 @@
-function _tt_face_get_name() {
-    var __label__ = -1; 
-    var $rec;
-    var $n;
-    while(true) {
-        switch(__label__) {
-        case -1:
-            $rec=0;
-            $n=0;
-        case 0:
-            if ($rec == 20) {
-                __label__ = 2;
-                break;
-            }
-            var $63 = $n;
-            var $64 = $63 + 1;
-            $n = $64;
-            var $65 = $rec;
-            $rec = $rec + 1;
-            assertEq($64 < 30, true);
-            __label__ = 0;
-            break;
-        case 1:
-            $rec = 0;
-        case 2:
-            return;
-        }
-    }
-}
-_tt_face_get_name();
-
-/* Test tracking of lifetimes around backedges in nested loops. */
-function nested() {
-  var x = 100;
-  var i = 0;
-  while (i < 10) {
-    while (i < 10) {
-      i++;
-      if (x < 20)
-        break;
-      if (i > 10) {
-        x = 200;
-        i++;
-      }
-    }
-    if (i > 10)
-      x = 100;
-  }
-}
-nested();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug643829.js
+++ /dev/null
@@ -1,12 +0,0 @@
-function _build_tree() {
-    var $n;
-    var $elems = 20;
-    while (true) {
-        var $tmp18 = $n;
-        var $tmp19 = $elems;
-        var $cmp = ($n | 0) < ($elems | 0);
-        return $cmp;
-    }
-}
-assertEq(_build_tree(), true);
-
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug643913.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function f() {
-    var x;
-    eval("x = 3.14");
-    x = 123;
-    var y = -(-x);
-    assertEq(y, 123);
-}
-f();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug645629.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Don't assert. */
-o1 = {};
-o1 = 2;
-function f(o) {
-    o.hasOwnProperty("x");
-}
-new f(o1);
-f(o1);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug645657.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function f() {
-    var x = 3;
-    var y = 1.2;
-    var z;
-    y = --z;
-    x = z++;
-}
-f();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug645985.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function f(o) {
-    o += "";
-    o.hasOwnProperty("x");
-}
-f({});
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug646001.js
+++ /dev/null
@@ -1,12 +0,0 @@
-function jit(on)
-{
-  if (on && !options().match(/tracejit/)) { }
-}
-try { test(); } catch (e) {}
-function test( 
- ) 
-{
-  for (var j=0;j<5;++j) { switch(1.1) { case 2: case NaN: } }
-  jit(false);
-  reportCompare('xxxxxxx'.test(new j('(x+)(x*)')));
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug646060.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function f0(i) {
-  switch(i) {
-  case "a":
-  case { TITLE: false, VERSION: false }('test')
- : 
-  }
-}
-try { new TestCase(SECTION, 'switch statement', f0("a"), "ab*"); } catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug646411.js
+++ /dev/null
@@ -1,9 +0,0 @@
-__proto__ = Function();
-eval("\
-var MS = 16;\
-addNewTestCase(new Date(1899,11,31,16,0,0), \"new Date(1899,11,31,16,0,0)\",\
-typeof UTC_DAY == 'undefined');\
-function addNewTestCase( DateCase, DateString, ResultArray ) {\
-        ResultArray[MS];\
-}\
-");
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug646495.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function f() {
-    var x = 1;
-    var y;
-    if (x = y = Math) {}
-}
-f();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug647440.js
+++ /dev/null
@@ -1,7 +0,0 @@
-if (false) 
-    function g() {}
-function f() {
-    var x;
-    (x = Infinity) >> x--;
-}
-f();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug647657.js
+++ /dev/null
@@ -1,1 +0,0 @@
-Function("var{}=Array()")()
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug647785.js
+++ /dev/null
@@ -1,4 +0,0 @@
-assertEq(-(!Int32Array(5)), -0);
-assertEq(-(!Math), -0);
-assertEq(-(!{}), -0);
-assertEq(-(![]), -0);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug648004.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var x = eval("gc(); 30");
-var y = x.toString();
-isNaN(x);
-assertEq(y, "30");
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug648230-1.js
+++ /dev/null
@@ -1,13 +0,0 @@
-
-function f() {
-    -null;
-    -null;
-    -null;
-    -null;
-    -null;
-}
-{
-    function g() {};
-}
-f();
-x = Math.abs();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug648230-2.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var i = 1;
-var j = 2;
-function f() {
-    if (false) 
-        function g() {};
-    return i / j;
-}
--null;
--null;
--null;
--null;
--null;
-f();
-
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug648498.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function f(x, y) {
-    return x;
-}
-var a = 3.3;
-a ? f(f(1, 2), 3) : a;
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug648586.js
+++ /dev/null
@@ -1,11 +0,0 @@
-try { eval("\
-    function a(y){y.x}\
-    for each(let d in[\
-        ({}),({}),({}),({}),({}),({}),({}),({}),({}),({})\
-    ]){\
-        try{\
-            a(d)\
-        }catch(e){}\
-    }\
-    n\
-") } catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug648708.js
+++ /dev/null
@@ -1,6 +0,0 @@
-thrown = false
-try {
-    ("".x = Object.seal)
-    "".x.valueOf();
-} catch (e) {thrown = true}
-assertEq(thrown, true);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug649272.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function f(x) {return x;}
-x = f(/abc/);
-eval("this.__defineSetter__(\"x\", function(){}); x = 3;");
-eval("var BUGNUMBER = 233483;");
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug649593.js
+++ /dev/null
@@ -1,10 +0,0 @@
-function RunSingleBenchmark(data) {
-    if (data == null)
-        return { runs: 0, elapsed: 0 };
-    data.runs += 10;
-    return data;
-}
-var data;
-data = RunSingleBenchmark(data);
-data = RunSingleBenchmark(data);
-assertEq(data.runs, 10);
\ No newline at end of file
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug649689.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function f(x) {
-    eval("a = 3");
-    x.p = x.p = a;
-    assertEq(x.p, 3);
-}
-f({p: 2});
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug649775.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var x = [, ];
-var n = [, ];
-var np = 18229;
-sa = Array;
-function copy_(x, y) {
-    var i;
-    var k = x < y ? x.length : y.length;
-    for (i = 0; i < k; i--) {
-        x[i];
-        if (i == -100)
-          return;
-    }
-}
-function mont_(x, y, n, np) {
-    copy_(x, sa);
-}
-mont_(x, x, n, np);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug649824.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var o = {
-    w: 2,
-    x: 3
-};
-var o = 430717;
-o.x = 4;
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug649973.js
+++ /dev/null
@@ -1,2 +0,0 @@
-x = 2147483647;
-(x+10, false) ? [x % x] : [2 * x];
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug650076.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var v0, v1, v2, v3, v4, v5, v6, v7, v8, v9;
-var v10, v11, v12, v13, v14, v15, v16, v17, v18, v19;
-var v20, v21, v22, v23, v24, v25, v26, v27, v28, v29;
-var v30, v31, v32, v33, v34, v35, v36, v37, v38, v39;
-var v40, v41, v42, v43;
-
-function f() {}
-
-v1 = new Date(0);
-v1.setMilliseconds(12);
-v2 = eval("''");
-v3 = "";
-f((v2 + v3).indexOf(v3));
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug650662.js
+++ /dev/null
@@ -1,6 +0,0 @@
-test();
-function test() {
-  var a = [];
-  a*=3;
-  a.length;
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug650663.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var cnBadSyntax = '1=2';
-var obj = new testObject;
-f.call(obj);
-g();
-function testObject() {
-        this.badSyntax = cnBadSyntax;
-}
-function f() {
-    try {
-        eval(this.badSyntax)
-    } catch (e) {}
-}
-function g() {
-        f.call();
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug651147.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var BUGNUMBER = 96284;
-var BUGNUMBER = "410725";
-function iteratorToArray(iterator) {
-    var result = [];
-    for (var i in iterator) BUGNUMBER[result.length];
-}
-try { obj = { a: 1, }('["a", "b"]', iteratorToArray(), 'uneval(iteratorToArray(new Iterator(obj,true)))'); } catch (e) { }
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug652305.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var sjcl = {
-    cipher: {},
-};
-var global = 99;
-sjcl.cipher.aes = function (a) {
-    var b, c, d, e, f = this.h[0][4],
-    g = this.h[1];
-    d = a.slice(0);
-    this.a = [d, []];
-    for (a = 8; a < 60; a++) {
-        c = d[a - 1];
-        if (a % 8 === 0) {
-            c = global;
-            if (0 === 0) {
-                h = 2;
-            }
-        }
-        d[a] = c;
-    }
-    assertEq(this.a[0][50], 99);
-};
-sjcl.cipher.aes.prototype = {
-    h: [[[], [], [], [], [99, 0]], [[67175681, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 65537], [17039621, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 16777472], [83952641, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 65537], [17105156, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 16777472], []]],
-};
-new sjcl.cipher.aes([0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff]);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug652314.js
+++ /dev/null
@@ -1,7 +0,0 @@
-(function() {
-    for (a in [0]) {
-        try {
-            return
-        } catch(e) {}
-    }
-})()
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug652590.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function f() {
-    var x = undefined ? 1 : 4294967295;
-    print(false || x);
-}
-f();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug653243.js
+++ /dev/null
@@ -1,12 +0,0 @@
-try {
-    obj[i] = "a";
-} catch (e) {}
-var obj = {
-    p: 100
-};
-var name = "p";
-var a = [];
-for (var i = 0; i < 10; i++) {
-    a[i] = obj[name]--;
-}
-assertEq(a.join(), '100,99,98,97,96,95,94,93,92,91');
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug653249.js
+++ /dev/null
@@ -1,13 +0,0 @@
-
-function testUnaryImacros() {
-    function checkArg(x) {
-        o = {
-            valueOf: checkArg
-        }
-    }
-    var v = 0;
-    v += +toString;
-    for (var i = 0; i;) {
-        v += [].checkArg.checkArg;
-    }
-}(testUnaryImacros(), "valueOf passed, toString passed");
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug653397.js
+++ /dev/null
@@ -1,16 +0,0 @@
-try {
-    function testSlowArrayPopMultiFrame() {
-        a = undefined;
-        function parent(a, i) { i };
-        function gramps(a, i) {
-            return parent;
-        }
-        var last;
-        for (var i = 0; ; gramps++) {
-            last = gramps(a, i)
-        }
-    }(testSlowArrayPopMultiFrame(), 23);
-    assertEq(0, 1);
-} catch(e) {
-    assertEq(e instanceof TypeError, true);
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug655505.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var a = [, , , , , , ];
-var res = 0;
-exhaustiveSliceTest("exhaustive slice test 1", a);
-function mySlice(a, from, to) {
-    var to2 = to;
-    if (to2 > 0) {
-        res += to2;
-        to2 = to2.length + to;
-    }
-}
-function exhaustiveSliceTest(testname, a) { x = a; }
-for (y = a.length; y >= 0; y--) {
-    mySlice(a, x, y);
-}
-assertEq(res, 21);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug655508.js
+++ /dev/null
@@ -1,15 +0,0 @@
-switch (3) {
-case
-    function () {
-        var x;
-        (function () {})() && false;
-        x = undefined;
-        try {
-            JSON.parse(x)
-        } catch (e) {}
-    }([]):
-case
-    function () {
-        [typeof loopa1]
-    }(0):
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug655810.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function f(arr) {
-    var x = arr[0];
-    if (typeof x) {};
-    Math.abs(x);
-}
-f([1.2]);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug655990.js
+++ /dev/null
@@ -1,12 +0,0 @@
-expect = 0;
-summary = 0;
-test();
-function test() {
-    function f(a, b, c) {
-        return c;
-    }
-    if (gczeal == 'function') actual = f(1.5, 1.25, 1.125)
-    else expect;
-    (expect, actual, summary);
-    var actual = '';
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug656096.js
+++ /dev/null
@@ -1,37 +0,0 @@
-function aes(a) {
-    d = a.slice()
-    for (; a < 28; a++)
-    d[0] = d[0] ^ undefined
-}
-var sjcl = {};
-sjcl.bitArray = {
-    concat: function (a, b) {
-        return d ? a : [];
-    },
-    clamp: function (a, b) {
-        return a
-    }
-};
-function G(a, b, c, d, e, f) {
-    var g = [],
-        h = sjcl.bitArray,
-        f = [];
-    f = h.concat(f, c)
-    if (c) g = []
-    else c = h.concat([], [])
-    h.concat(g, d)
-    h.clamp(f, <x></x> )
-}
-function decrypt(a, b, c, d, e) {
-    G(a, 1, c, d, e, b)
-    var g = [],
-        h = sjcl.bitArray,
-        f = [];
-    h.concat(f, c)
-    if (c) g = []
-    else c = h.concat([], [])
-    h.concat(g, d)
-    h.concat([], c).concat.slice
-}
-aes(sjcl.bitArray.clamp([]));
-decrypt(1, 2, 3);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug656252.js
+++ /dev/null
@@ -1,14 +0,0 @@
-o14 = [undefined].__proto__
-function f18() {
-  try {
-    [] = o[p]
-  } catch (e) {}
-}
-for (var i; i < 20; i++) {
-  ({
-    x: function() {
-      return eval("o14")
-    }
-  }.x().__proto__ = null);
-  f18()
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug656259.js
+++ /dev/null
@@ -1,11 +0,0 @@
-
-function throwsRangeError(t) {
-    try {
-        t: for (t[t++] in object) {
-            t++
-            break t;
-        }
-        date(t)
-    } catch (err) {}
-}
-throwsRangeError(Infinity);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug656591.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// |jit-test| error: TypeError
-(function () {
-    var i = 0; 
-    (function () {
-        var x;
-        (x = "3") || 1;
-        (x = "")(i || x);
-    })();
-})();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug656748.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function f() {
-    var x = -0;
-    x++;
-    if (3 > 2) {};
-    var y = x + 2.14;
-    assertEq(y, 3.14);
-}
-f();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug656914.js
+++ /dev/null
@@ -1,23 +0,0 @@
-try {
-  new MyObject;
-} catch (e) {}
-
-function MyObject() {
-  return;
-  return this;
-}
-
-function Foo(x) {
-  if (x)
-    this.f = x;
-}
-var q = new Foo(false);
-for (a in q) { assertEq(true, false); }
-
-function Bar(x, y) {
-  if (!x)
-    return;
-  this.f = y;
-}
-var q2 = new Bar(false, true);
-for (b in q2) { assertEq(true, false); }
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug657120.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function f() {
-    var x = Object(2);
-    var y = 3.14;
-    assertEq(true && x < y, true);
-}
-f();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug657247.js
+++ /dev/null
@@ -1,5 +0,0 @@
-
-a = new Array;
-for (var i = 0; i != 1000; ++i) a[i] = 17;
-var x = '123' + '\0' + '456';
-(1, a[x], ': 123\\0456');
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug657890.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function f() {};
-var x;
-for(var i=0; i<200; i++) {
-    x = f.bind(x, x, 2);
-    gc();
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug658240.js
+++ /dev/null
@@ -1,11 +0,0 @@
-function f() {
-    var x = 0;
-    for(var i=0; i<5; i++) {
-        (function() {
-          var q = parseFloat("2");
-          x += q;
-        })();
-    }
-    return x;
-}
-assertEq(f(), 10);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug658294.js
+++ /dev/null
@@ -1,15 +0,0 @@
-test();
-function test()
-{
-  try {
-    instances = []
-    for (var i = 0; i != 2; ++i) 
-    instances[i]=constructor
-    var i = 0;
-    var instance = instances[i];
-    var name = instance.name;
-    for (var j = 1; j != instances; ++j) 
-    if (i != j && instance instanceof name[j].constructor) {}
-  } catch(ex) {}
-}
-test();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug658579.js
+++ /dev/null
@@ -1,5 +0,0 @@
-(function () {
-    var x = 1 || 1.2;
-    true ? ~x : x;
-    x >> x;
-})();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug659438.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var o1 = {x: {}};
-function f() {
-    var o = o1;
-    for(var i=0; i<10; i++) {
-        o1 = o.x;
-    }
-}
-f();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug659439.js
+++ /dev/null
@@ -1,16 +0,0 @@
-function bind(f) {
-    return f.call.apply(f.bind, arguments);
-};
-function h(a, b) {
-    a.x;
-}
-function g(a, b) {
-    a.x = b;
-    h(a);
-}
-function f() {
-    for(var i=0; i<20; i++) {
-        g.call(this, {}, bind(function(){}));
-    }
-}
-f();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug659448.js
+++ /dev/null
@@ -1,9 +0,0 @@
-function TestCase(n, d, e, a) {
-    this.expect = e;
-    this.passed = getTestCaseResult(this.expect, this.actual);
-}
-function getTestCaseResult(expect, actual) {}
-new TestCase(
-	TestCase(3000000000.5)
-);
-new TestCase(null,null,	String('Sally and Fred are sure to come'.match(/^[a-z\s]*/i)));
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug659456.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// |jit-test| error: InternalError
-function foo() { return "tracejit,methodjit"; };
-function baz(on) {
-    foo('bar');
-}
-eval("\
-test();\
-function test() {\
-  baz(true);\
-  test();\
-}\
-");
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug660002.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// |jit-test| error: ReferenceError
-(function() {
-    let V = x(x, x = w), x
-})()
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug662072.js
+++ /dev/null
@@ -1,7 +0,0 @@
-(function () {
-    var x;
-    x = arguments.length;
-    return function () {
-        [1][x = arguments.length];
-    };
-}).call().apply();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug662082.js
+++ /dev/null
@@ -1,11 +0,0 @@
-
-function foo(z)
-{
-  var x = 2;
-  if (z) {
-    x = 2.5;
-  }
-  var y = x * 10;
-  assertEq(y, 20);
-}
-foo(false);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/bug663910.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var otherGlobalSameCompartment = newGlobal("same-compartment");
-eval = otherGlobalSameCompartment.eval;
-doesNotNeedParens(1, "if (xx) { }");
-needParens(2, "if (1, xx) { }");
-function doesNotNeedParens(section, pat) {
-    try {
-        f = new Function
-    } catch (e) {}
-    roundTripTest(section, f)
-}
-function needParens(section, pat, exp) {
-    var f, ft;
-    roundTripTest(section, f, exp)
-}
-function roundTripTest(section, f, exp) {
-    uf = "" + f
-    var euf;
-    try {
-      euf = eval("(" + uf + ")");
-    } catch (e) { }
-    + euf
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/clonefun.js
+++ /dev/null
@@ -1,17 +0,0 @@
-
-// Functions which have been marked as singletons should not be cloned.
-
-BeatDetektor = function()
-{
-    this.config = BeatDetektor.config;
-
-    assertEq(this.config.a, 0);
-    assertEq(this.config.b, 1);
-}
-
-BeatDetektor.config_default = { a:0, b:1 };
-BeatDetektor.config = BeatDetektor.config_default;
-
-var bd = new BeatDetektor();
-
-assertEq(bd.config === BeatDetektor.config, true);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/globalOptimize-2.js
+++ /dev/null
@@ -1,10 +0,0 @@
-
-x = 30;
-function foo() {
-  assertEq(x, 30);
-  delete x;
-  y = 20;
-  Object.defineProperty(this, 'x', {value:10});
-  assertEq(x, 10);
-}
-foo();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/globalOptimize-3.js
+++ /dev/null
@@ -1,18 +0,0 @@
-
-y = 30;
-function bar() {
-  assertEq(y, 30);
-  Object.defineProperty(this, 'y', {writable:false});
-  y = 10;
-  assertEq(y, 30);
-}
-bar();
-
-x = 30;
-function foo() {
-  assertEq(x, 30);
-  Object.freeze(this);
-  x = 10;
-  assertEq(x, 30);
-}
-foo();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/globalOptimize-4.js
+++ /dev/null
@@ -1,8 +0,0 @@
-
-x = 30;
-assertEq(x, 30);
-
-for (var i = 0; i < 10000; i++)
-  this[i] = 0;
-
-assertEq(x, 30);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/bug645645.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function f() {
-    f = Math.x;
-}
-f();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/bug645666.js
+++ /dev/null
@@ -1,16 +0,0 @@
-function f1() {
-    gc();
-}
-function f2() {
-    with(this) {};
-    f1();
-}
-function f3() {
-    f2();
-}
-function f4() {
-    f3();
-}
-f3();
-f3();
-f4();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/bug646004.js
+++ /dev/null
@@ -1,9 +0,0 @@
-function reportCompare (expected, actual, description) {}
-function f()
-{
-  f(f, 0x09AA, 0x09B0, f);
-}
-try {
-  reportCompare ("outer", f(),
-                 "Inner function statement should not have been called.");
-} catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/bug646480.js
+++ /dev/null
@@ -1,7 +0,0 @@
-if (true)
-    function f1() {}; 
-function f2() {
-    var y = -8;
-    return y % 2;
-}
-f2() / 3;
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/bug647973.js
+++ /dev/null
@@ -1,11 +0,0 @@
-function f(a1, a2, a3, a4) {
-}
-function g(a1, a2) {
-    var d = new Date(0);
-    f();
-    assertEq(typeof d, 'object');
-}
-g();
-gc();
-f(2, 2, 2, f(2, 2, 2, 12 === 12));
-g(false, false);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/bug651209.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var i = 0;
-try { test(); } catch (e) { }
-function test() {
-  var jstop  = 900;
-  var code = '';
-  code+=createCode(i);
-  eval();
-}
-function createCode(i) {
-  jstop+= +  +  + i + " string.';";
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/bug655954.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// |jit-test| error: TypeError
-foo(); 
-function foo() { 
-    this();
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/bug656221.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function f() {
-    var a = [];
-    a.push(a);
-}
-f();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/doubleArg.js
+++ /dev/null
@@ -1,10 +0,0 @@
-function foo(x, y) {
-  if (y < 0) {}
-  return x * 1000;
-}
-function bar(x, y) {
-  while (false) {}
-  assertEq(foo(x, false), 10500);
-  assertEq(foo(y, false), 11000);
-}
-bar(10.5, 11);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/mathAbs.js
+++ /dev/null
@@ -1,31 +0,0 @@
-
-assertEq(Math.abs(-10), 10);
-assertEq(Math.abs(-2147483648), 2147483648);
-assertEq(Math.abs(2147483648), 2147483648);
-assertEq(Math.abs(-0), 0);
-assertEq(Math.abs(0), 0);
-assertEq(Math.abs(-3.14), 3.14);
-assertEq(Math.abs(NaN), NaN);
-
-/* Inferred as abs(int). */
-function abs1(x) {
-    return Math.abs(x);
-}
-assertEq(abs1(1), 1);
-assertEq(abs1(-1), 1);
-assertEq(abs1(0), 0);
-assertEq(abs1(-123) + abs1(234), 357);
-assertEq(abs1(-2147483648), 2147483648); // recompile to return double
-assertEq(abs1(-2), 2);
-
-/* Inferred as abs(double). */
-function abs2(x) {
-    return Math.abs(x);
-}
-assertEq(abs2(-2.2), 2.2);
-assertEq(abs2(123), 123);
-assertEq(abs2(-456), 456);
-assertEq(abs2(-0), 0);
-assertEq(abs2(1.3), 1.3);
-assertEq(abs2(NaN), NaN);
-
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/mathFloor.js
+++ /dev/null
@@ -1,34 +0,0 @@
-
-assertEq(Math.floor(3.14), 3);
-assertEq(Math.floor(-0), -0);
-assertEq(Math.floor(0), 0);
-assertEq(Math.floor(-1.23), -2);
-assertEq(Math.floor(2147483649), 2147483649);
-assertEq(Math.floor(2147483648.5), 2147483648);
-assertEq(Math.floor(2147483647.1), 2147483647);
-
-/* Inferred as floor(double). */
-function floor1(x) {
-    return Math.floor(x);
-}
-assertEq(floor1(10.3), 10);
-assertEq(floor1(-3.14), -4);
-assertEq(floor1(-0), -0); // recompile to return double
-assertEq(floor1(678.3), 678);
-
-/* Inferred as floor(double). */
-function floor2(x) {
-    return Math.floor(x);
-}
-assertEq(floor2(3.4), 3);
-assertEq(floor2(NaN), NaN); // recompile to return double
-assertEq(floor2(-4.4), -5);
-
-/* Inferred as floor(int). */
-function floor3(x) {
-    return Math.floor(x);
-}
-assertEq(floor3(4), 4);
-assertEq(floor3(-5), -5);
-assertEq(floor3(0), 0);
-
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/mathPow.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-assertEq(Math.pow(100, 2), 10000);
-assertEq(Math.pow(-Infinity, -0.5), 0);
-assertEq(Math.pow(-Infinity,  0.5), Infinity);
-assertEq(Math.pow(Infinity, -0.5), 0);
-assertEq(Math.pow(Infinity,  0.5), Infinity);
-assertEq(Math.pow(NaN, -0.5), NaN);
-assertEq(Math.pow(NaN,  0.5), NaN);
-assertEq(Math.pow(-3.14, -0.5), NaN);
-assertEq(Math.pow(-1.23,  0.5), NaN);
-assertEq(Math.pow(-0, -0.5), Infinity);
-assertEq(Math.pow(-0,  0.5), 0);
-assertEq(Math.pow(-1, -0.5), NaN);
-assertEq(Math.pow(-1,  0.5), NaN);
-assertEq(Math.pow(0, -0.5), Infinity);
-assertEq(Math.pow(0,  0.5), 0);
-assertEq(Math.pow(1, -0.5), 1);
-assertEq(Math.pow(1,  0.5), 1);
-assertEq(Math.pow(100, -0.5), 0.1);
-assertEq(Math.pow(100,  0.5), 10);
-
-/* Inferred as pow(double, double). */
-function pow1(x) {
-    return Math.pow(x, 0.5);
-}
-assertEq(pow1(100), 10);
-assertEq(pow1(144), 12);
-assertEq(pow1(-0), 0);
-assertEq(pow1(0), 0);
-assertEq(pow1(1), 1);
-assertEq(pow1(-1), NaN);
-assertEq(pow1(NaN), NaN);
-assertEq(pow1(-Infinity), Infinity);
-assertEq(pow1(Infinity), Infinity);
-
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/mathRound.js
+++ /dev/null
@@ -1,41 +0,0 @@
-
-assertEq(Math.round(3.14), 3);
-assertEq(Math.round(0.5), 1);
-assertEq(Math.round(-0), -0);
-assertEq(Math.round(0), 0);
-assertEq(Math.round(-1.03), -1);
-assertEq(Math.round(2147483649), 2147483649);
-assertEq(Math.round(2147483647.5), 2147483648);
-assertEq(Math.floor(2147483647.1), 2147483647);
-
-/* Inferred as round(double). */
-function round1(x) {
-    return Math.round(x);
-}
-assertEq(round1(10.3), 10);
-assertEq(round1(-3.14), -3);
-assertEq(round1(-3.5), -3);
-assertEq(round1(-3.6), -4);
-assertEq(round1(3.5), 4);
-assertEq(round1(3.6), 4);
-assertEq(round1(0), 0);
-assertEq(round1(-0), -0); // recompile to return double
-assertEq(round1(12345), 12345);
-assertEq(round1(654.6), 655);
-
-/* Inferred as round(double). */
-function round2(x) {
-    return Math.round(x);
-}
-assertEq(round2(1234.5), 1235);
-assertEq(round2(NaN), NaN); // recompile to return double
-assertEq(round2(4.6), 5);
-
-/* Inferred as round(int). */
-function round3(x) {
-    return Math.round(x);
-}
-assertEq(round3(4), 4);
-assertEq(round3(-5), -5);
-assertEq(round3(0), 0);
-
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/mathSqrt.js
+++ /dev/null
@@ -1,29 +0,0 @@
-
-assertEq(Math.sqrt(-Infinity), NaN);
-assertEq(Math.sqrt(-3.14), NaN);
-assertEq(Math.sqrt(-2), NaN);
-assertEq(Math.sqrt(-0), -0);
-assertEq(Math.sqrt(0), 0);
-assertEq(Math.sqrt(2), Math.SQRT2);
-assertEq(Math.sqrt(49), 7);
-assertEq(Math.sqrt(Infinity), Infinity);
-
-/* Inferred as sqrt(double). */
-function sqrt1(x) {
-    return Math.sqrt(x);
-}
-assertEq(sqrt1(NaN), NaN);
-assertEq(sqrt1(-Infinity), NaN);
-assertEq(sqrt1(Infinity), Infinity);
-assertEq(sqrt1(-0), -0);
-assertEq(sqrt1(2), Math.SQRT2);
-assertEq(sqrt1(16), 4);
-
-/* Inferred as sqrt(int). */
-function sqrt2(x) {
-    return Math.sqrt(x);
-}
-assertEq(sqrt2(4), 2);
-assertEq(sqrt2(169), 13);
-assertEq(sqrt2(0), 0);
-
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/scripted-01.js
+++ /dev/null
@@ -1,17 +0,0 @@
-function bar(x, y) {
-  return x + y;
-}
-
-function foo(x, y) {
-  var a = 0;
-  for (var i = 0; i < 1000; i++) {
-    a += bar(x, y);
-    a += bar(x, y);
-    a += bar(x, y);
-    a += bar(x, y);
-  }
-  return a;
-}
-
-var q = foo(0, 1);
-assertEq(q, 4000);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/scripted-02.js
+++ /dev/null
@@ -1,22 +0,0 @@
-function getter(a, i) {
-  return a[i];
-}
-
-function foo(a, n) {
-  var res = 0;
-  for (var i = 0; i < 10; i++) {
-    res = 0;
-    for (var j = 0; j < n; j++) {
-      res += getter(a, j);
-    }
-  }
-  return res;
-}
-
-var n = 100;
-var a = Array(n);
-for (var i = 0; i < n; i++)
-  a[i] = i;
-
-var q = foo(a, n);
-assertEq(q, 4950);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/scripted-03.js
+++ /dev/null
@@ -1,14 +0,0 @@
-function choose(x, y, z) {
-  return x ? y : z;
-}
-
-function foo(x, y, z) {
-  var a = 0;
-  for (var i = 0; i < 100; i++) {
-    a += choose(x, y, z);
-  }
-  return a;
-}
-
-var q = foo(true, 10, 0);
-assertEq(q, 1000);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/scripted-04.js
+++ /dev/null
@@ -1,12 +0,0 @@
-function adder(x, y) {
-  return x + y;
-}
-
-function foo(x) {
-  for (var i = 0; i < 100; i++)
-    var a = adder(x, i);
-  return a;
-}
-
-var q = foo(0x7ffffff0);
-assertEq(q, 2147483731);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/scripted-05.js
+++ /dev/null
@@ -1,13 +0,0 @@
-function adder(x, y) {
-  return Math.floor(x + y);
-}
-
-function foo(x) {
-  for (var i = 0; i < 100; i++) {
-    var a = adder(x, i);
-  }
-  return a;
-}
-
-var q = foo(0x7ffffff0 + .5);
-assertEq(q, 2147483731);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/scripted-06.js
+++ /dev/null
@@ -1,17 +0,0 @@
-function popper(a) {
-  return a.pop();
-}
-
-function foo(x) {
-  for (var i = 0; i < 10; i++) {
-    var q = popper(x);
-    if (i < 5)
-      assertEq(q, 5 - i);
-    else
-      assertEq(q, undefined);
-  }
-  return q;
-}
-
-var q = foo([1,2,3,4,5]);
-assertEq(q, undefined);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/scripted-07.js
+++ /dev/null
@@ -1,15 +0,0 @@
-function multiple(a) {
-  if (a > 10)
-    return 1;
-  return 0;
-}
-
-function foo(x) {
-  var a = 0;
-  for (var i = 0; i < 100; i++)
-    a += multiple(i);
-  return a;
-}
-
-var q = foo([1,2,3,4,5]);
-assertEq(q, 89);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/scripted-08.js
+++ /dev/null
@@ -1,21 +0,0 @@
-function first(a, b) {
-  return second(a, b);
-}
-
-function second(a, b) {
-  return third(a, b, a + b);
-}
-
-function third(a, b, c) {
-  return a + b + c;
-}
-
-function foo(x) {
-  var a = 0;
-  for (var i = 0; i < 100; i++)
-    a += first(x, i);
-  return a;
-}
-
-var q = foo(10);
-assertEq(q, 11900);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/scripted-09.js
+++ /dev/null
@@ -1,19 +0,0 @@
-function multiple(a) {
-  if (a > 10)
-    return a * 20;
-  return 0;
-}
-
-function deeper(a, b) {
-  return multiple(a + b);
-}
-
-function foo() {
-  var a = 0;
-  for (var i = 0; i < 10; i++)
-    a += deeper(0x7ffffff0, i);
-  return a;
-}
-
-var q = foo();
-assertEq(q, 429496727300);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/scripted-10.js
+++ /dev/null
@@ -1,13 +0,0 @@
-function copied(x, y) {
-  return x + y;
-}
-
-function foo(x) {
-  var a = 0;
-  for (var i = 0; i < 100; i++)
-    a += copied(x, x);
-  return a;
-}
-
-var q = foo(5);
-assertEq(q, 1000);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/scripted-11.js
+++ /dev/null
@@ -1,13 +0,0 @@
-what = 0;
-
-function f(x) {
-  g(x);
-}
-
-function g(x) {
-  var a = <a></a>;
-  eval("what = true");
-}
-
-f(10);
-assertEq(what, true);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/stringCharAt.js
+++ /dev/null
@@ -1,49 +0,0 @@
-
-assertEq("foo".charAt(-123), "");
-assertEq("foo".charAt(-1), "");
-assertEq("foo".charAt(0), "f");
-assertEq("foo".charAt(1), "o");
-assertEq("foo".charAt(2), "o");
-assertEq("foo".charAt(3.4), "");
-assertEq("foo".charAt(), "f");
-assertEq("".charAt(), "");
-assertEq("".charAt(0), "");
-assertEq("abc\u9123".charAt(3), "\u9123"); // char without unit string
-
-/* Inferred as string.charAt(int). */
-function charAt1(x) {
-    return "abc".charAt(x);
-}
-assertEq(charAt1(-1), "");
-assertEq(charAt1(0), "a");
-assertEq(charAt1(1), "b");
-assertEq(charAt1(2), "c");
-assertEq(charAt1(3), "");
-assertEq(charAt1(1234), "");
-
-/* Inferred as string.charAt(double). */
-function charAt2(x) {
-    return "abc".charAt(x);
-}
-assertEq(charAt2(-1.3), "");
-assertEq(charAt2(-0), "a");
-assertEq(charAt2(2), "c");
-assertEq(charAt2(2.3), "c");
-assertEq(charAt2(3.14), "");
-assertEq(charAt2(NaN), "a");
-
-/* Test ropes. */
-function charAt3(s, i) {
-    var s2 = "abcdef" + s + "12345";
-    return s2.charAt(i);
-}
-assertEq(charAt3("abcdef", 14), "3");
-assertEq(charAt3("a" + "b", 1), "b");
-assertEq(charAt3("abcdefg" + "hijklmnop", 10), "e");
-
-/* Other 'this'. */
-var arr = [1, 2];
-arr.charAt = String.prototype.charAt;
-assertEq(arr.charAt(1), ",");
-
-
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/inline/stringCharCodeAt.js
+++ /dev/null
@@ -1,47 +0,0 @@
-
-assertEq("foo".charCodeAt(-123), NaN);
-assertEq("foo".charCodeAt(-0), 102);
-assertEq("foo".charCodeAt(0), 102);
-assertEq("foo".charCodeAt(2), 111);
-assertEq("foo".charCodeAt(3.4), NaN);
-assertEq("foo".charCodeAt(), 102);
-assertEq("".charCodeAt(), NaN);
-assertEq("".charCodeAt(0), NaN);
-
-/* Inferred as string.charCodeAt(int). */
-function charCodeAt1(x) {
-    return "abc".charCodeAt(x);
-}
-assertEq(charCodeAt1(-1), NaN);
-assertEq(charCodeAt1(0), 97);
-assertEq(charCodeAt1(1), 98);
-assertEq(charCodeAt1(2), 99);
-assertEq(charCodeAt1(3), NaN);
-assertEq(charCodeAt1(1234), NaN);
-
-/* Inferred as string.charCodeAt(double). */
-function charCodeAt2(x) {
-    return "abc".charCodeAt(x);
-}
-assertEq(charCodeAt2(-1.3), NaN);
-assertEq(charCodeAt2(-0), 97);
-assertEq(charCodeAt2(2), 99);
-assertEq(charCodeAt2(2.3), 99);
-assertEq(charCodeAt2(3.14), NaN);
-assertEq(charCodeAt2(NaN), 97);
-
-/* Test ropes. */
-function charCodeAt3(s, i) {
-    var s2 = "abcdef" + s + "12345";
-    return s2.charCodeAt(i);
-}
-assertEq(charCodeAt3("abcdef", 14), 51);
-assertEq(charCodeAt3("a" + "b", 1), 98);
-assertEq(charCodeAt3("abcdefg" + "hijklmnop", 10), 101);
-
-/* Other 'this'. */
-var n = new Number(123);
-n.charCodeAt = String.prototype.charCodeAt;
-assertEq(n.charCodeAt(1), 50);
-
-
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/loops/bug651155.js
+++ /dev/null
@@ -1,6 +0,0 @@
-ForIn_2();
-function ForIn_2( object ) {
-  PropertyArray=new Array;
-  var PropertyArray = 'Do not assert: !cx->throwing';
-  for ( i in object ) PropertyArray.length-1;
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/loops/bug654393.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var VERSION = "ECMA_2";
-DoWhile(
-    new DoWhileObject(false, false, false, VERSION)
-);
-function DoWhileObject( out1, out2, out3, in1 ) {
-    this.breakIn = in1
-}
-function DoWhile(object) {
-    do {
-        if (object.breakIn) {}
-    } while(false);
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/loops/bug655854.js
+++ /dev/null
@@ -1,8 +0,0 @@
-
-function foo(a, b, c) {
-  var res = 0;
-  for (var b = 0; b < c; b++)
-    res += a[b];
-  return res;
-}
-assertEq(foo([1,2,3], 0, 10), NaN);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/loops/bug658290.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var SECTION = "15.4.5.2-2";
-addCase(new Array, 0, Math, Math.pow(2, SECTION));
-var arg = "", i = 0;
-var a = eval("new Array(" + arg + ")");
-addCase(a, i, +i + 1, Math.pow(2, 12) + i + 1, true);
-function addCase(object, old_len, set_len, new_len, checkitems) {
-    for (var i = old_len; i < new_len; i++) if (object[i] != 0) {}
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/loops/bug659452.js
+++ /dev/null
@@ -1,5 +0,0 @@
-test();
-function test() {
-    var t = function () function printStatus() {};
-    for (var j = 0; j < 10; j++) t["-1"]
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/loops/bug668643.js
+++ /dev/null
@@ -1,12 +0,0 @@
-
-function foo(a,n) {
-  var x = {a:[]};
-  for (var i = 0; i < n; ) {
-    a[i];
-    x.a[i];
-    a[++i];
-  }
-}
-var a = [1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0];
-var n = a.length;
-foo(a,n);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/loops/hoist-01.js
+++ /dev/null
@@ -1,35 +0,0 @@
-function foo(x, n) {
-  for (var i = 0; i < n; i++)
-    x[i] = i;
-  var q = 0;
-  for (var i = 0; i < 10; i++) {
-    for (var j = 0; j < n; j++)
-      q += x[j];
-  }
-  return q;
-}
-
-var a = foo([], 100);
-assertEq(a, 49500);
-
-function basic1(x) {
-  var q = 0;
-  for (var i = 0; i < 4; i++)
-    q += x[i];
-  return q;
-}
-
-var b = basic1([1,2,3,4]);
-assertEq(b, 10);
-
-ARRAY = [1,2,3,4];
-
-function basic2() {
-  var q = 0;
-  for (var i = 0; i < 4; i++)
-    q += ARRAY[i];
-  return q;
-}
-
-var c = basic2();
-assertEq(c, 10);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/loops/hoist-02.js
+++ /dev/null
@@ -1,12 +0,0 @@
-function foo(x, n) {
-  var a = 0;
-  for (var i = 0; i < n; i++)
-    a += x[3];
-  return a;
-}
-
-var a = foo([1,2,3,4], 100);
-assertEq(a, 400);
-
-var b = foo([1,2], 100);
-assertEq(b, NaN);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/loops/hoist-03.js
+++ /dev/null
@@ -1,12 +0,0 @@
-function foo(x, j, n) {
-  var a = 0;
-  for (var i = 0; i < n; i++)
-    a += x[j];
-  return a;
-}
-
-var a = foo([1,2,3,4], 3, 100);
-assertEq(a, 400);
-
-var b = foo([1,2,3,4], 5, 100);
-assertEq(b, NaN);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/loops/hoist-04.js
+++ /dev/null
@@ -1,18 +0,0 @@
-function bar(x, i) {
-  if (i == 50)
-    x.length = 0;
-}
-
-function foo(x, j, n) {
-  var a = 0;
-  for (var i = 0; i < n; i++) {
-    var q = x[j];
-    bar(x, i);
-    if (typeof q == 'undefined')
-      a++;
-  }
-  return a;
-}
-
-var a = foo([1,2,3,4], 3, 100);
-assertEq(a, 49);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/loops/hoist-05.js
+++ /dev/null
@@ -1,19 +0,0 @@
-function bar(x, i) {
-  if (i == 50)
-    foo.arguments[1] = 20;
-}
-
-function foo(x, j, n) {
-  var a = 0;
-  arguments;
-  for (var i = 0; i < n; i++) {
-    var q = x[j];
-    bar(x, i);
-    if (typeof q == 'undefined')
-      a++;
-  }
-  return a;
-}
-
-var a = foo([1,2,3,4], 3, 100);
-assertEq(a, 49);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/loops/hoist-06.js
+++ /dev/null
@@ -1,14 +0,0 @@
-
-function foo(x, n, y) {
-  var q = 0;
-  for (var j = 0; j < n; j++) {
-    if (x[j] < y)
-      q++;
-  }
-  assertEq(q, 1);
-}
-
-var x = [1,2,3,4,5];
-var y = { valueOf: function() { x.length = 0; return 6; } };
-
-var a = foo(x, 5, y);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/loops/hoist-07.js
+++ /dev/null
@@ -1,17 +0,0 @@
-
-var res = 0;
-
-function foo(x, n, y) {
-  for (var j = 0; j < n; j++) {
-    x[j];
-    y.f;
-  }
-}
-
-var x = [1,2,3,4,5];
-var y = {};
-Object.defineProperty(y, 'f', {get:function() { res++; x.length = 2; }});
-
-var a = foo(x, 5, y);
-
-assertEq(res, 5);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/loops/hoist-08.js
+++ /dev/null
@@ -1,7 +0,0 @@
-
-function foo(x,n) {
-  for (var i = -5; i < n; i++) {
-    x[i] = 10;
-  }
-}
-foo([1,2,3,4,5],5);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/loops/hoist-09.js
+++ /dev/null
@@ -1,11 +0,0 @@
-
-function foo(x, y) {
-  for (var i = 0; i < x.length; i++) {
-    x[i];
-    if (i < 20)
-      y[i + 1] = 0;
-  }
-}
-
-var q = Array(1,2,3,4,5);
-foo(q, []);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/loops/hoist-10.js
+++ /dev/null
@@ -1,39 +0,0 @@
-function foo1(x, n) {
-  var i = 0;
-  while (--n >= 0) {
-    x[i++] = 0;
-  }
-}
-foo1([1,2,3,4,5],5);
-
-function foo2(x, n) {
-  var i = 0;
-  while (--n >= 0) {
-    x[i++] = 0;
-  }
-}
-foo2([1,2,3,4,5],6);
-
-function foo3(x, n) {
-  var i = 0;
-  while (n-- >= 0) {
-    x[i++] = 0;
-  }
-}
-foo3([1,2,3,4,5],5);
-
-function foo4(x, n) {
-  var i = 0;
-  while (--n >= 0) {
-    x[++i] = 0;
-  }
-}
-foo4([1,2,3,4,5],5);
-
-function foo5(x, n) {
-  var i = 0;
-  while (--n >= 0) {
-    x[++i] = 0;
-  }
-}
-foo5([1,2,3,4,5,6],5);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/loops/integer-1.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function foo(x) {
-  for (var i = 0x7ffffff0; i <= x; i++) {
-    var y = i;
-  }
-  return y;
-}
-assertEq(foo(0x7fffffff), 0x7fffffff);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/loops/integer-2.js
+++ /dev/null
@@ -1,10 +0,0 @@
-function foo(x, y, z, a) {
-  for (var i = 0x7fff; i < 0xffff; i++) {
-    var y = ((x + y) + (z + a[0])) | 0;
-  }
-  return y;
-}
-assertEq(foo(0x7fffffff, 0x7fffffff, 0x7fffffff, [0x7fffffff]), 2147385343);
-
-var q = [0x7fffffff];
-assertEq(eval("foo(0x7fffffff, 0x7fffffff, {valueOf:function() {q[0] = 'e4'; return 0;}}, q)"), 438048096);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/loops/property-1.js
+++ /dev/null
@@ -1,19 +0,0 @@
-
-function foo(x, y) {
-  var res = 0;
-  for (var i = 0; i < 10; i++) {
-    res += x.f + y[i];
-  }
-  return res;
-}
-
-var x = {f:0};
-var y = Array(10);
-for (var i = 0; i < 10; i++) {
-  if (i == 5)
-    Object.defineProperty(Object.prototype, 5, {get: function() { x.f = 10; return 5}});
-  else
-    y[i] = i;
-}
-
-assertEq(foo(x, y), 85);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/propertyOptimize-1.js
+++ /dev/null
@@ -1,29 +0,0 @@
-
-function Foo(x)
-{
-  this.f = x + 10;
-}
-
-function Bar()
-{
-  this.g = 0;
-}
-
-Bar.prototype = Foo.prototype;
-
-var x = new Foo(0);
-var y = new Bar();
-
-assertEq(10, eval("x.f"));
-assertEq(undefined, eval("y.f"));
-
-function Other(x)
-{
-  this.f = x + 10;
-}
-
-var a = new Other(0);
-var b = Object.create(Other.prototype);
-
-assertEq(10, eval("a.f"));
-assertEq(undefined, eval("b.f"));
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/propertyOptimize-2.js
+++ /dev/null
@@ -1,16 +0,0 @@
-
-function Foo(x)
-{
-  this.f = x + 10;
-}
-
-var x = new Foo(0);
-assertEq(10, eval("x.f"));
-
-called = false;
-Object.defineProperty(Foo.prototype, 'f', {set: function() { called = true; }});
-
-var y = new Foo(0);
-assertEq(10, eval("x.f"));
-assertEq(undefined, eval("y.f"));
-assertEq(called, true);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/propertyOptimize-3.js
+++ /dev/null
@@ -1,67 +0,0 @@
-
-// Properties cleared in the middle of a single function constructor.
-
-function foo(x, y) {
-  this.f = 0;
-  this.g = x + y;
-  this.h = 2;
-}
-
-var called = false;
-var a = 0;
-var b = {valueOf: function() { Object.defineProperty(Object.prototype, 'g', {set: function() { called = true }}) }};
-var c = new foo(a, b);
-
-assertEq(called, true);
-assertEq(c.g, undefined);
-
-// Properties cleared in the middle of a constructor callee.
-
-function foo2(x, y) {
-  this.a = 0;
-  this.b = 1;
-  bar2.call(this, x, y);
-  this.c = 2;
-}
-function bar2(x, y) {
-  this.d = x + y;
-  this.e = 3;
-}
-
-var called2 = false;
-var xa = 0;
-var xb = {valueOf: function() { Object.defineProperty(Object.prototype, 'e', {set: function() { called2 = true }}) }};
-var xc = new foo2(xa, xb);
-
-assertEq(called2, true);
-assertEq(xc.e, undefined);
-assertEq(xc.c, 2);
-
-// Properties cleared after a constructor callee.
-
-function foo3() {
-  this.aa = 0;
-  this.bb = 1;
-  bar3.call(this);
-  this.cc = 2;
-  baz();
-  xbar3.call(this);
-  this.dd = 3;
-}
-function bar3() {
-  this.ee = 4;
-}
-function xbar3() {
-  this.ff = 5;
-}
-function baz() {
-  eval("xbar3.call = function() { called3 = true }");
-}
-
-var called3 = false;
-var c3 = new foo3();
-assertEq(c3.cc, 2);
-assertEq(c3.ee, 4);
-assertEq(c3.ff, undefined);
-assertEq(c3.dd, 3);
-assertEq(called3, true);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/propertyOptimize-4.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Make sure new script properties can be invalidated on specialized prototype
-// types while they are still being constructed.
-
-function Foo(a, b, c) {
-  this.x = a + b;
-  this.y = c;
-}
-
-updated = false;
-var o = {valueOf: function() {
-    Object.defineProperty(Object.prototype, 'y', {set:function() { updated = true; }})
-  }};
-
-function Bar() {}
-Bar.prototype = new Foo(o, 1, 2);
-assertEq(updated, true);
-assertEq(Bar.prototype.y, undefined);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/arith.js
+++ /dev/null
@@ -1,49 +0,0 @@
-
-/* Handle recompilation of arithmetic operations, and on-stack int -> double conversion. */
-
-function add(x, y)
-{
-  var z = x + y;
-  assertEq(z, 2147483732);
-  assertEq(z - 10, 2147483722);
-}
-add(0x7ffffff0, 100);
-
-function mul(x, y)
-{
-  var z = x * y;
-  assertEq(z, 4294967264);
-}
-mul(0x7ffffff0, 2);
-
-function div1(x, y)
-{
-  var z = x / y;
-  assertEq(z + 10, 20);
-}
-div1(100, 10);
-
-function div2(x, y)
-{
-  var z = x / y;
-  assertEq(z + 10, 20.5);
-}
-div2(105, 10);
-
-function uncopy(x, y)
-{
-  var q = x;
-  x += y;
-  q++;
-  assertEq(q, 2147483633);
-  assertEq(x, 2147483732);
-}
-uncopy(0x7ffffff0, 100);
-
-function addmore(x, y)
-{
-  var q = (x + 10) + (x + y);
-  assertEq(q, 4294967374);
-  x = q;
-}
-addmore(0x7ffffff0, 100);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug617592.js
+++ /dev/null
@@ -1,3 +0,0 @@
-
-var x;
--(x === null);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug621292.js
+++ /dev/null
@@ -1,24 +0,0 @@
-
-/* Don't crash. */
-
-var count = 0;
-
-function callbackfn(v) {
-  if (++count == 98)
-    count = 0x7ffffff0;
-  return arr[0] + count;
-}
-
-function foo() {
-  arr = [1,2,3,4,5];
-  for (var i = 0; i < 50; i++)
-    arr = arr.map(callbackfn);
-}
-foo();
-
-function f(a,b,c) {
-    a = 1; b = 'str'; c = 2.1;
-    return arguments[0];
-}
-for (var i = 0; i < 20; i++)
-  assertEq(f(10,'sss',1), 1);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug621328.js
+++ /dev/null
@@ -1,9 +0,0 @@
-function foo() {
-};
-function f() {
-    var e = foo;
-    a = new e();
-    assertEq(typeof(a), "object");
-    e=a;
-}
-f();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug638977.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function f() {
-    gc();
-    [].unshift(false);
-}
-f();
-f();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug639508.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var o = 2;
-o = o.p;
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug639882.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var x = 2;
-x = -(x == 3);
-
-var y = "";
-typeof(z) + typeof(eval("z = y"));
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug640608.js
+++ /dev/null
@@ -1,10 +0,0 @@
-try {
-{
-    function x() {}
-}
-o = (0).__proto__;
-function f(o) {
-    o._("", function() {})
-}
-f(o)
-} catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug641225.js
+++ /dev/null
@@ -1,151 +0,0 @@
-gczeal(1);
-var o0 = Function.prototype;
-o1 = {};
-var o4 = Error.prototype;
-o5 = new Int32Array(100);
-o6 = Proxy.create({
-});
-o8 = Proxy.createFunction({
-    get: function() {return 10; },
-}, function(){ return {}; }, function(){ return {}; });
-o9 = {};
-var o10 = -500;
-var o12 = new Int32Array(100);
-function f0(o) {
-}
-function f1(o) {
-}
-function f3(o) {
-    with(o) {}
-    o[o5] = o5;
-}
-function f5(o) {
-}for(var f2 in o9) {
-    for(var i1=0; i1<83; i1++) {
-        for(var i3=0; i3<98; i3++) {
-            for(var x in f1) { f1[x]; };
-        }
-        Object.defineProperty(o0, 'constructor', {enumerable: true,unused: 1 });
-        f1(f5);
-        f4(f3);
-        f3(o8);
-        f2(o5);
-        o9.toString(1, 2);
-        f4.caller = o3;
-        f2(o6);
-        f0(f2);
-        f1(f2);
-        f0(f1);
-        var key = Object.getOwnPropertyNames(o9)[2]; if(key) delete o9[key];
-        var props = Object.getOwnPropertyNames(o5);
-        if (props.length > 6) {
-            var prop = props[6];
-            o8[prop] = o5[prop];
-        }
-        f3(f1);
-        f1(f5);
-    }
-    for(var o3 in f1) {
-        f1(o3);
-        f4(o3);
-        o0 == f4;
-        f1(f3);
-        Object.freeze(o12);
-        f0(o9);
-        new f0(o1);
-        o4 = o5.call(o4, o4, o4, o4, o4, o4);
-        f2(o10);
-        var prop = Object.getOwnPropertyNames(o0)[15];
-        if (prop) { Object.defineProperty(o0, prop, {configurable: true,enumerable: true,get: function(){},set: function(){},unused: 1 }); }
-        f3(f1);
-        new f2(o0);
-    }
-    f5(o9);
-    gc();
-    f0(o2);
-    f3(f4);
-    new f4(o7);
-    f1 = new o10(f1, f1, f1, f1);
-    f5(o10);
-    f5(o7);
-    f0(o7);
-    f1(o10);
-    f3(o10);
-    delete f0.constructor;
-    f0(f3);
-    f1 = wrap(f3);
-    f4(f1);
-    delete o1.prototype;
-    f4(o5);
-    f2(f2);
-    o1 + '';
-    f2(f2);
-    f0(o12);
-    f0(o12);
-    f1(o3);
-    o5[3] = 8.3;
-    o10['__proto_' + '_'];
-}
-for(var o2 in f5) {
-    for(var o10 in f3) {
-        delete f2['__proto_' + '_'];
-        o8 = f1.toString;
-        f1(o1);
-        f0(o9);
-        f2(o12);
-        var key = Object.getOwnPropertyNames(o3)[19]; if(key) o9 = o3[key];
-        f1(o10);
-        f4(f1);
-        f1(o1);
-        f1(o7);
-        for(var x in o1) { o1[x]; };
-        f0(o8);
-        f4(o1);
-        f0(o1);
-        f0.p0 = o6;
-        f3(o9);
-        f5(o8);
-        f2 >>> o7;
-        if(o3 === o8) {}
-        f5(o3);
-    }
-    o5[0] = f4;
-    o0.caller = function() { };
-    Object.freeze(f0);
-    f4(o3);
-    o7.p0 = o3;
-    f1(f5);
-    f4(o10);
-    f2(o5);
-    f2(o5);
-    f0(o3);
-    o9.watch('p3', function() {});
-    o8[o8] = o8;
-    f0(o5);
-    f1(o6);
-    f2 = Object.create(o5);
-    var key = Object.getOwnPropertyNames(o11)[23]; if(key) f2 = o11[key];
-    f5(o9);
-    o12 = o6.bind(o12, o12, o12);
-    f5(f4);
-    f1(o1);
-    f0(o11);
-    f1(o11);
-    eval('f4');
-    f4(o1);
-    Object.isExtensible(o7);
-}
-(function() {
-    f1(o12);
-    f5 + '';
-    if(o8 != o3) {}
-})();
-f1(o10);
-f3(f0);
-o4.toSource = function() { };
-var _o = o1;
-var prop = Object.getOwnPropertyNames(_o)[5];
-if (prop) { _o[prop](o2, o2); }
-f3(o0);
-f1(f3);
-Object.isExtensible(f1);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug641269.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// |jit-test| debug
-
-(function() {
-  const x = [][x]
-})()
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug641535.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var o = {};
-o[o.p] = 2;
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug642405.js
+++ /dev/null
@@ -1,13 +0,0 @@
-function startTest() {};
-try {
-}
-catch(ex)
-{
-  actual = ex + '';
-}
-var actual = 'no error';
-var prefValue;
-DESCRIPTION = "var class = true";
-EXPECTED = "error";
-foo(EXPECTED[prefValue], DESCRIPTION[prefValue], startTest[prefValue]);
-function foo() {}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug643182.js
+++ /dev/null
@@ -1,7 +0,0 @@
-x = 123;
-function f() {}
-function g(o) {
-    y = x.p;
-    eval('o');
-}
-g(f);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug643376.js
+++ /dev/null
@@ -1,8 +0,0 @@
-SECTION = 0;
-function TestCase() {}
-function outer_func(x)
-{
-    var y = "inner";
-    new TestCase( SECTION, { SECTION: ++y });
-}
-outer_func(1111);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug643552.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var x = Proxy.create( {get:function(r,name){Proxy = 0;}} );
-try { x.watch('e', function(){}); } catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug643669.js
+++ /dev/null
@@ -1,3 +0,0 @@
-try {(function () {
-    eval("gc().l()")
-      })() } catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug645044.js
+++ /dev/null
@@ -1,4 +0,0 @@
-
-this.__defineGetter__("x", gc);
-x.__proto__ = this;
-__proto__ = 44;
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug646267.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function t(code) {
-    var f = new Function(code);
-    try { f(); } catch (e) { }
-}
-t("");
-t("");
-t("");
-t("this.function::a = 7;");
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug647183.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var SECTION = "";
-var VERSION = "";
-function test() {}
-function writeTestCaseResult( expect, actual, string ) {
-  if (typeof document != "object" ||
-!document.location.href.match(/jsreftest.html/)) {
-  }
-}
-TIME_0000  = now = new Date;
-TIME_NOW = now.valueOf();
-function DaysInYear( y ) {
-function MakeDate( day, time ) {
-
-}
-}
-function TimeClip( t ) {
-  if ( isNaN ) { Number.NaN; }
-}
-function runDSTOffsetCachingTestsFraction(part, parts) { print; };
-test_times=( TIME_NOW, TIME_0000, ( SECTION, VERSION+".getUTCMinutes()", 
-             TIME_NOW.test_times,VERSION.SECTION ) , TIME_0000, TIME_0000,
-             0, 0 );
-try { j = 0( SECTION, TimeClip(1.1), 0 ); } catch (e) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug647199.js
+++ /dev/null
@@ -1,11 +0,0 @@
-TryInWhile( new TryObject( "hello", ThrowException, true ) );
-function TryObject( value, throwFunction, result ) {
-  this.thrower=throwFunction
-}
-function ThrowException() TryInWhile(1);
-function TryInWhile( object ) {
-    try {
-      object.thrower()
-    } catch ( e ) {
-    }  
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug647532.js
+++ /dev/null
@@ -1,4 +0,0 @@
-try { Function("\
-    __defineSetter__(\"x\",Object.keys)\
-    (z=x instanceof[].some)\
-")() } catch (e) { }
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug647547.js
+++ /dev/null
@@ -1,9 +0,0 @@
-DoWhile(new DoWhileObject);
-new DoWhileObject("", Boolean);
-function DoWhileObject( d, e, s ) {
-  this.whileExpression=e;
-}
-function DoWhile( object ) {
-  while ( object.whileExpression ) eval(  );
-  Boolean  
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug647991-1.js
+++ /dev/null
@@ -1,18 +0,0 @@
-function f() {
-    function g() {
-        eval("");
-        gc();
-        Math.abs(4);
-        NaN;
-    }
-    g();
-}
-function h() {
-    var x, y;
-    x = Math.floor(-0);
-    y = parseInt("1");
-}
-
-f();
-h();
-
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug647991-2.js
+++ /dev/null
@@ -1,2 +0,0 @@
-[""][NaN] = 2;
--([][[""][String] = ""] = null);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug648502.js
+++ /dev/null
@@ -1,12 +0,0 @@
-function f(x, y) {
-    -(undefined ? 0 : 0);
-    assertEq(y === y, true);
-    return 0;
-}
-f(1, 2);
-{
-    f(3, 3.14);
-    f(true, f(4, 5));
-
-    function g() {}
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug648567.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var arr = [-10, true];
-true || arr[0];
-
-function g() {
-    var x = arr[12];
-    var y = arr.length;
-    arr[undefined] = x;
-    assertEq(y, 2);
-}
-{
-    function f() {
-        gc();
-        g();        
-    }
-    f();
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug648843.js
+++ /dev/null
@@ -1,9 +0,0 @@
-
-var HOTLOOP = 100;
-function jit(on)
-{
-  options().match
-}
-function options() { return "tracejit,methodjit"; }
-gczeal(2);
-for (i = 0; i < HOTLOOP ; ++i) { jit(jit(42, [])); }
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug648966.js
+++ /dev/null
@@ -1,7 +0,0 @@
-
-function f(x) {
-    gc();
-    -x;
-    -null;
-}
-f();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug649261.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var DESCRIPTION;
-eval("DESCRIPTION += \"Non-character escapes in identifiers negative test.\";");
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug649769.js
+++ /dev/null
@@ -1,16 +0,0 @@
-
-function g(x) {
-    if (!x) {
-        throw 1;
-    }
-}
-
-function f(a, b, c, d) {
-    var x = [].push(3);
-    g(true);
-    assertEq(x, 1);
-}
-f(1.2, 2, 3, 4);
-gc();
-f(1, 2, 3, 4);
-
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug651119.js
+++ /dev/null
@@ -1,51 +0,0 @@
-Object.extend = function(destination, source) {
-    for (var property in source)
-        destination[property] = source[property];
-};
-var Enumerable = {
-    _each: function(iterator) {
-        for (var i = 0, length = this.length; i < length; i++)
-            iterator(this[i]);
-    },
-    each: function(iterator, context) {
-        var index = 0;
-        this._each(function(value) {
-            iterator.call(context, value, index++);
-        });
-    },
-    map: function(iterator, context) {
-        var results = [];
-        this.each(function(value, index) {
-            var res = iterator.call(context, value);
-            results.push(res);
-        });
-        return results;
-    },
-    invoke: function(method) {
-        var args = $A(arguments).slice(1);
-        return this.map(function(value) {
-            return value[method].apply(value, args);
-        });
-    },
-};
-Object.extend(Array.prototype, Enumerable);
-function $A(iterable) {
-    var length = iterable.length || 0, results = new Array(length);
-    while (length--) results[length] = iterable[length];
-    return results;
-}
-function g() {
-    return [1, 2, 3, 4, 5].each(function(part) {
-        return 0;
-    });
-}
-function f() {
-    g();
-    g();
-    g();
-    g();
-    var result = [[2, 1, 3], [6, 5, 4]];    
-    result = result.invoke('invoke', 'toString', 2);
-    result[0].join(', ');
-};
-f();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug653980.js
+++ /dev/null
@@ -1,13 +0,0 @@
-
-function f(code) {
-  try {
-    Function(code)()
-  } catch(r) {}
-} {
-  function x() {}
-}
-f("")
-f("")
-f("")
-f("x::e")
-if (typeof w == "") {}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug654536.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function f() {
-    var x = Object.prototype.hasOwnProperty.call(1);
-    assertEq(x, false);
-    isNaN(2);
-}
-f();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug655949.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var a;
-try {
-    a();
-} catch(e) {
-    assertEq(e instanceof TypeError, true);
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug655998.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function f(x) {
-    var y;
-    gc();
-    ++x.x;
-}
-f(1);
-f.call(2, 3);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug656753.js
+++ /dev/null
@@ -1,20 +0,0 @@
-
-var global = 0;
-
-function foo(i) {
-  global = i;
-  if (global == 8) {
-    eval("global = 'three'");
-    throw global;
-  }
-}
-
-var caught = false;
-try {
-  for (var i = 0; i < 10; i++) {
-    Array.map([i], foo);
- }
-} catch (e) { caught = true; }
-
-assertEq(caught, true);
-assertEq(global, 'three');
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug657288.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// |jit-test| error: TypeError
-new DoWhileObject;
-function DoWhileObject(breakOut, breakIn, iterations, loops) {
-    loops.prototype = new DoWhile;
-    this.looping;
-}
-function DoWhile(object) {
-    do {} while (object);
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug658209.js
+++ /dev/null
@@ -1,10 +0,0 @@
-for (var i=0; i<20; i++) {
-    (function () {
-        var x;
-        (function () {
-            x = /abc/;
-            x++;
-            gc();
-        })();
-    })();
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug658211.js
+++ /dev/null
@@ -1,13 +0,0 @@
-function foo(x) {
-  return bar(x);
-}
-function bar(x) {
-  return x.f + 10;
-}
-var g = Object();
-g.f = 10;
-assertEq(foo(g), 20);
-assertEq(foo(g), 20);
-assertEq(foo(g), 20);
-eval("g.f = 'three'");
-assertEq(foo(g), 'three10');
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug658212.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var gTestcases = Array;
-function TestCase(n, d, e, a) {
-    this.description = d
-    gTestcases[gTc] = this
-}
-TestCase.prototype.dump=function ()  +  +  +
-          + this.description +  +
-               +  + '\n';function printStatus (msg)
-function toPrinted(value) {
-}
-function reportCompare(expected, actual, description) {
-    new TestCase("unknown-test-name", description, expected, actual)
-}
-gTc = 0;;
-function jsTestDriverEnd() {
-    for (var i = 0; i < gTestcases.length; i++)
-    gTestcases[i].dump()
-}
-var summary = 'Do not assert with try/finally inside finally';
-var expect = 'No Crash';
-reportCompare(expect, printStatus, summary);
-jsTestDriverEnd();
-jsTestDriverEnd();
-try {
-    f
-} catch (ex) {
-    actual = ''
-}
-reportCompare(expect, actual, 5);
-jsTestDriverEnd()
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug658561.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var s1 = 'xx';
-for (var x = 0; x < 10 ; ++x ) { 
-  new function() s1++;
-  gc();
-}
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug658777.js
+++ /dev/null
@@ -1,11 +0,0 @@
-function Employee(name, dept) this.name = name || "";
-function WorkerBee(name, dept, projs) {
-    this.base = Employee
-    this.base(name, dept)
-}
-function Engineer(name, projs, machine) {
-    this.base = WorkerBee
-    this.base(name, "engineering", projs)
-    __proto__["a" + constructor] = 1
-}
-new Engineer;
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug659639.js
+++ /dev/null
@@ -1,16 +0,0 @@
-test();
-function iso(d) { new Date(d).toISOString() }
-function check(s,millis) { iso(millis); }
-function dd(year, month, day, hour, minute, second, millis) {
-    return Date.UTC(year, 1, day, hour, minute, second, millis);
-}
-function test() {
-    try {
-        check("", 20092353211)
-        check("", 2009)
-        check("", 0)
-        check("", dd(BUGNUMBER, 7, 23, 19, 53, 21, 1))
-    } catch (e) {}
-}
-var BUGNUMBER = "10278";
-test()
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug659766.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var gTestcases = new Array;
-var gTc = gTestcases;
-function TestCase(n, d, e, a) {
-  this.description=d
-  this.reason=''
-  gTestcases[gTc++]=this
-}
-TestCase.prototype.dump=function () + toPrinted(this.description) + toPrinted(this.reason) + '\n';
-function toPrinted(value) value=value.replace(/\\n/g, 'NL').replace(/[^\x20-\x7E]+/g, escapeString);
-function escapeString (str) {
-  try {
-     err
-  } catch(ex) { }
-}
-function jsTestDriverEnd() {
-  for (var i = 0; i < gTestcases.length; i++)
-  gTestcases[i].dump()
-}
-var SECTION = "dowhile-007";
-DoWhile();
-function DoWhile( object ) result1=false;
-new TestCase(
-    SECTION,
-    "break one: ",
-    result1 
-);
-jsTestDriverEnd();
-new TestCase( SECTION, "'�O� �:i��'.match(new RegExp('.+'))", [], '�O� �:i��');
-jsTestDriverEnd();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug660737.js
+++ /dev/null
@@ -1,10 +0,0 @@
-(function() {
-    function f(l) {
-        w++
-    }
-    for each(let w in ['', '', 0]) {
-        try {
-            f(w)
-        } catch (e) {}
-    }
-})()
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug661859.js
+++ /dev/null
@@ -1,18 +0,0 @@
-function TestCase(n, d, e, a) this.expect = e;
-function reportCompare(expected, actual, description) {
-    typeof actual
-}
-expect = 1;
-var summary = 'Do not assert: top < ss->printer->script->depth';
-var actual = 'No Crash';
-var expect = 'No Crash';
-test();
-function test() {
-    try {
-        p = [1].some(function (y) test()) ? 4 : 0x0041
-    } catch (ex) {}
-    reportCompare(expect, actual, summary)
-}
-test();
-TestCase();
-test()
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/bug663690.js
+++ /dev/null
@@ -1,14 +0,0 @@
-
-function g(c) {
-  b = b = h(c);
-}
-function j(s) {
-  return Function(s)
-}
-function h(c) {
-  return j(c)()
-}
-g()
-var a
-Boolean.__proto__[a] = []
-g("return gc()")
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/callic.js
+++ /dev/null
@@ -1,27 +0,0 @@
-
-/* Recompilation while being processed by a call IC. */
-
-var g;
-function foo() {
-  for (g = 0; g < 5; g++) {
-    bar();
-  }
-  function bar() {
-    with ({}) {
-      eval("g = undefined;");
-    }
-  }
-}
-foo();
-
-assertEq(g, NaN);
-
-/* Recompilation while being processed by a native call IC. */
-
-function native() {
-  var x;
-  x = x;
-  x = Math.ceil(NaN);
-  assertEq(x, NaN);
-}
-native();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/exotic.js
+++ /dev/null
@@ -1,74 +0,0 @@
-
-// Test exotic ways of triggering recompilation.
-
-// Lowered native call.
-
-var x = 0;
-var y = true;
-for (var i = 0; i < 20; i++) {
-  x += Array.map.apply(undefined, [[0], function(x) { if (i == 10) eval("y = 20"); return 1; }])[0];
-}
-assertEq(x, 20);
-assertEq(y, 20);
-
-// Recompilation triggered by local function.
-
-var o = {};
-function what(q) {
-  function inner() { return q; }
-  o.f = inner;
-  var a = o.f();
-  return a;
-}
-for (var i = 0; i < 10; i++) {
-  var a = what(i);
-  assertEq(a, i);
-}
-
-// Lowered scripted call to apply returning code pointer.
-
-var global = 3;
-function foo(x, y) {
-  var q = x.apply(null, y);
-  if (q != 10)
-    assertEq(global, true);
-}
-foo(function(a) { global = a; return 10; }, [1]);
-foo(function(a) { global = a; return 10; }, [1]);
-foo(function(a) { global = a; return 10; }, [1]);
-assertEq(global, 1);
-foo(function(a) { global = a; return 3; }, [true]);
-assertEq(global, true);
-
-// Lowered scripted call returning NULL.
-
-var oglobal = 3;
-function xfoo(x, y) {
-  var q = x.apply(null, y);
-  if (q != 10)
-    assertEq(oglobal, true);
-}
-xfoo(function(a) { oglobal = a; return 10; }, [1]);
-xfoo(function(a) { oglobal = a; return 10; }, [1]);
-xfoo(function(a) { oglobal = a; return 10; }, [1]);
-assertEq(oglobal, 1);
-xfoo(function(a) { <x></x>; oglobal = a; return 3; }, [true]);
-assertEq(oglobal, true);
-
-// Recompilation out of SplatApplyArgs.
-
-weirdarray = [,,1,2,3];
-Object.defineProperty(weirdarray, 0, {get: function() { vglobal = 'true'; }});
-
-var vglobal = 3;
-function yfoo(x, y) {
-  var q = x.apply(null, y);
-  if (q != 10)
-    assertEq(vglobal, 'true');
-  else
-    assertEq(vglobal, 3);
-}
-yfoo(function(a) { return 10; }, [1]);
-yfoo(function(a) { return 10; }, [1]);
-yfoo(function(a) { return 10; }, [1]);
-yfoo(function() { return 0; }, weirdarray);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/flush.js
+++ /dev/null
@@ -1,18 +0,0 @@
-
-/* Handle flushing of scripted call ICs pointing to recompiled functions. */
-
-function add(x, y) {
-  var z = x + y;
-  return String(x + y);
-}
-
-function foo() {
-  var x = 0x7ffffff0;
-  var res = "";
-  for (var i = 0; i < 20; i++) {
-    res += add(x, i) + ",";
-    res += add(x, i) + ",";
-  }
-  assertEq(res, "2147483632,2147483632,2147483633,2147483633,2147483634,2147483634,2147483635,2147483635,2147483636,2147483636,2147483637,2147483637,2147483638,2147483638,2147483639,2147483639,2147483640,2147483640,2147483641,2147483641,2147483642,2147483642,2147483643,2147483643,2147483644,2147483644,2147483645,2147483645,2147483646,2147483646,2147483647,2147483647,2147483648,2147483648,2147483649,2147483649,2147483650,2147483650,2147483651,2147483651,");
-}
-foo();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/getelem.js
+++ /dev/null
@@ -1,26 +0,0 @@
-
-/* Unexpected values out of GETELEM */
-
-function foo() {
-  var x = [1,2,3];
-  var y;
-  var z = x[y];
-  y = 10;
-  assertEq(z, "twelve");
-}
-Array.prototype["undefined"] = "twelve";
-foo();
-
-function fna() {
-  var a = {};
-  a[true] = 1;
-  assertEq(a["true"], 1);
-}
-fna();
-
-function fnb() {
-  var a = [];
-  a[1.1] = 2;
-  assertEq(a["1.1"], 2);
-}
-fnb();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/incdec.js
+++ /dev/null
@@ -1,92 +0,0 @@
-
-/* Handle recompilation on overflow of inc/dec operations. */
-
-function local()
-{
-  var j = 0x7ffffff0;
-  for (var i = 0; i < 100; i++)
-    j++;
-  assertEq(j, 2147483732);
-}
-local();
-
-function olocal()
-{
-  var j = 0x7ffffff0;
-  for (var i = 0; i < 100; i++) {
-    if (j++ == 5000)
-      break;
-  }
-  assertEq(j, 2147483732);
-}
-olocal();
-
-function arg(j)
-{
-  for (var i = 0; i < 100; i++)
-    j++;
-  assertEq(j, 2147483732);
-}
-arg(0x7ffffff0);
-
-function oarg(j)
-{
-  for (var i = 0; i < 100; i++) {
-    if (j++ == 5000)
-      break;
-  }
-  assertEq(j, 2147483732);
-}
-oarg(0x7ffffff0);
-
-// basic global inc/dec correctness
-var x = 1.23;
-x = x--;
-x = x++;
-x = ++x;
-x = --x;
-assertEq(x, 1.23);
-
-var g = 0x7ffffff0;
-function glob()
-{
-  for (var i = 0; i < 100; i++)
-    g++;
-  assertEq(g, 2147483732);
-}
-glob();
-
-function gname()
-{
-  n = 0x7ffffff0;
-  for (var i = 0; i < 100; i++)
-    n++;
-  assertEq(n, 2147483732);
-}
-gname();
-
-function prop()
-{
-  var v = {f: 0x7ffffff0};
-  for (var i = 0; i < 100; i++)
-    v.f++;
-  assertEq(v.f, 2147483732);
-}
-prop();
-
-function elem(v, f)
-{
-  for (var i = 0; i < 100; i++)
-    v[f]++;
-  assertEq(v.f, 2147483732);
-}
-elem({f: 0x7ffffff0}, "f");
-
-function name()
-{
-  var v = 0x7ffffff0;
-  var i;
-  eval("for (i = 0; i < 100; i++) v++");
-  assertEq(v + 10, 2147483742);
-}
-name();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/inlinestubs.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// rejoining after recompilation from CompileFunction or a native called by an inlined frame.
-
-var global = 0;
-var arr = [
-           function() { return 0; },
-           function() { return 1; },
-           function() { return 2; },
-           function() { return 3; },
-           function() { return 4; },
-           function() { return 5; },
-           function() { return 6; },
-           function() { return 7; },
-           function() { global = -"three"; return 8; }
-           ];
-function wrap_call(i) {
-  var fn = arr["" + i];
-  return fn();
-}
-function foo1() {
-  var res = 0;
-  for (var i = 0; i < arr.length; i++) {
-    res += wrap_call(i);
-    var expected = (i == arr.length - 1) ? NaN : 10;
-    assertEq(global + 10, expected);
-  }
-}
-foo1();
-
-var callfn = Function.call;
-function wrap_floor(x, y) {
-  var z = x;
-  if (y)
-    z = {}; // trick the compiler into not inlining the floor() call.
-  return Math.floor(z);
-}
-
-function foo2(x, y) {
-  var z = 0;
-  for (var i = 0; i < y; i++)
-    z = wrap_floor(x + i, false);
-  assertEq(z + 10, 2147483661);
-}
-foo2(0x7ffffff0 + .5, 20);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/memory-01.js
+++ /dev/null
@@ -1,12 +0,0 @@
-
-function foo(n) {
-    for (var i = 0; i < n; i++) {}
-    return i;
-}
-
-assertEq(foo(1000), 1000);
-
-gc();
-
-eval("assertEq(foo(1000.5), 1001)");
-
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/memory-02.js
+++ /dev/null
@@ -1,19 +0,0 @@
-
-var g = 10;
-
-function bar(n) {
-    return g;
-}
-
-function foo(n, v) {
-    for (var i = 0; i < n; i++)
-	assertEq(bar(i), v);
-}
-
-foo(10, 10);
-
-gc();
-
-eval("g = 10.5");
-
-foo(10, 10.5);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/memory-03.js
+++ /dev/null
@@ -1,6 +0,0 @@
-
-eval("var x = 10; function foo() { return x; }");
-
-assertEq(foo(), 10);
-gc();
-assertEq(foo(), 10);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/memory-04.js
+++ /dev/null
@@ -1,8 +0,0 @@
-
-function foo(x, y) {
-    gc();
-    var z = x + y;
-    print(z);
-}
-
-foo(0x7ffffff0, 100);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/native.js
+++ /dev/null
@@ -1,26 +0,0 @@
-
-/* Handle recompilations triggered by native calls. */
-
-function dofloor(v)
-{
-  var res = "";
-  for (var i = 0; i < 10; i++) {
-    var q = Math.floor(v + i);
-    res += q + ",";
-  }
-  assertEq(res, "2147483642,2147483643,2147483644,2147483645,2147483646,2147483647,2147483648,2147483649,2147483650,2147483651,");
-}
-dofloor(0x7ffffffa + .5);
-
-function mapfloor(a)
-{
-  var b = a.map(function(v) { return Math.floor(v); });
-
-  var res = "";
-  for (var i = 0; i < b.length; i++)
-    res += b[i] + ",";
-  return res;
-}
-mapfloor([1,2]);
-mapfloor([3,4]);
-assertEq(mapfloor([0x7ffffffa + 2.5, 0x7ffffffa + 20.5]), "2147483644,2147483662,");
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/nativemulti.js
+++ /dev/null
@@ -1,21 +0,0 @@
-
-/* Recompilation that requires patching the same native stub multiple times. */
-
-var first = 0;
-var second = 0;
-
-function foreachweird(a, f, vfirst, vsecond)
-{
-  a.forEach(f);
-  assertEq(first, vfirst);
-  assertEq(second, vsecond);
-}
-
-function weird() {
-  eval("first = 'one';");
-  eval("second = 'two';");
-}
-
-foreachweird([0], function() {}, 0, 0);
-foreachweird([0], function() {}, 0, 0);
-foreachweird([0], weird, 'one', 'two');
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/nativestack.js
+++ /dev/null
@@ -1,25 +0,0 @@
-
-/* Recompilation that requires patching the same native stub multiple times on one stack. */
-
-var first = 0;
-var second = 0;
-
-function eacher(f, vfirst, vsecond) {
-  var a = [0];
-  a.forEach(f);
-  assertEq(first, vfirst);
-  assertEq(second, vsecond);
-}
-
-function one() {
-  eacher(two, 'one', 'two');
-}
-
-function two() {
-  eval("first = 'one';");
-  eval("second = 'two';");
-}
-
-eacher(function () {}, 0, 0);
-eacher(function () {}, 0, 0);
-eacher(one, 'one', 'two');
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/patchdouble.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// only fix doubles for slots which the recompiled script thinks are doubles.
-function foo(x) {
-  var y = x & 0xffff;
-  y = (y * (x * 1000));
-  assertEq(y, 140735340806145000);
-}
-foo(0x7fffffff);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/property.js
+++ /dev/null
@@ -1,26 +0,0 @@
-
-/* Handle recompilation on undefined properties and array holes. */
-
-var v = {};
-if (typeof v == 'string')
-  v.x = 0;
-function prop(v)
-{
-  var z = v.x + 1;
-  assertEq(z, NaN);
-}
-prop(v);
-
-v = [];
-v[0] = 0;
-v[1] = 1;
-v[3] = 3;
-v[4] = 4;
-function elem(x)
-{
-  var x = "";
-  for (var i = 0; i < 5; i++)
-    x += v[i];
-  assertEq(x, "01undefined34");
-}
-elem(v);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/propic.js
+++ /dev/null
@@ -1,24 +0,0 @@
-
-/* Recompilation while being processed by property ICs. */
-
-var ga = 10;
-var gb = 10;
-
-Object.defineProperty(Object.prototype, "a", {
-    set: function(a) { eval("ga = true;"); },
-    get: function() { eval("gb = true;"); }
-  });
-
-function foo() {
-  var x = {};
-  x.a = 10;
-  assertEq(ga + 1, 2);
-}
-foo();
-
-function bar() {
-  var x = {};
-  var a = x.a;
-  assertEq(gb + 1, 2);
-}
-bar();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/staticoverflow.js
+++ /dev/null
@@ -1,26 +0,0 @@
-
-// overflows occurring during constant folding
-
-var y = -null - y;
-assertEq(y, NaN);
-
-var x = -(void 0);
-assertEq(x, NaN);
-
-function overdiv() {
-  for(var i=0; i<25; i++) {
-    var a, b;
-    function f() { 
-    }
-    a = f();
-    b = (123 ^ 1) / 1234;
-  }
-}
-overdiv();
-
-function overadd() {
-  var a = 0x7ffffff0;
-  var b = 100;
-  return a + b;
-}
-overadd();
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/recompile/undef.js
+++ /dev/null
@@ -1,61 +0,0 @@
-
-/* Handle recompilation on undefined variables. */
-
-function local()
-{
-  var x;
-  x++;
-  assertEq(x, NaN);
-  x = 0;
-}
-local();
-
-function name(v)
-{
-  var x;
-  with (v) {
-    x++;
-    assertEq(x, NaN);
-  }
-  assertEq(x, NaN);
-  x = 0;
-}
-name({});
-
-function letname(v)
-{
-  if (v) {
-    let x;
-    with (v) {
-      x = "twelve";
-    }
-    assertEq(x, "twelve");
-  }
-}
-letname({});
-
-function upvar()
-{
-  var x;
-  function inner() {
-    x++;
-    assertEq(x, NaN);
-  }
-  inner();
-}
-upvar();
-
-var x;
-var y;
-
-function global()
-{
-  x++;
-  assertEq(x, NaN);
-  var z = 2 + y;
-  assertEq(z, NaN);
-}
-global();
-
-x = 0;
-y = 0;
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/regalloc-double.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// register allocation involving doubles.
-
-function foo(a,b) {
-  var c;
-  if (a < b) {
-    c = a + 1;
-  } else {
-    c = 0.5;
-  }
-  return c;
-}
-assertEq(foo(0, 1), 1);
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/regalloc-live.js
+++ /dev/null
@@ -1,41 +0,0 @@
-
-// test local/arg liveness analysis in presence of many locals
-
-function foo(a, b, c) {
-  var x = 0, y = 0, z = 0;
-  if (a < b) {
-    x = a + 0;
-    y = b + 0;
-    z = c + 0;
-  } else {
-    x = a;
-    y = b;
-    z = c;
-  }
-  return x + y + z;
-}
-assertEq(foo(1, 2, 3), 6);
-
-// restore liveness correctly before switch statements
-
-function foo(a, b, c) {
-  var x = 0, y = 0, z = 0;
-  if (a < b) {
-    x = a + 0;
-    y = b + 0;
-    z = c + 0;
-  } else {
-    switch (c) {
-    case 1:
-    case 2:
-    case 3:
-    case 4:
-    case 5: return 0;
-    }
-    x = 0;
-    y = 0;
-    z = 0;
-  }
-  return x + y + z;
-}
-assertEq(foo(1, 2, 3), 6);
--- a/js/src/jit-test/tests/jaeger/testForOps.js
+++ b/js/src/jit-test/tests/jaeger/testForOps.js
@@ -7,63 +7,61 @@ function assertObjectsEqual(obj1, obj2) 
     assertEq(obj1.c, obj2.c);
     assertEq(obj1.d, obj2.d);
     assertEq(obj2.a, 1);
     assertEq(obj2.b, "bee");
     assertEq(obj2.c, "crab");
     assertEq(obj2.d, 12);
 }
 
-// :XXX: below calls to assertJit can throw us out of JIT code for some TI settings.
-
 function forName(obj) {
-    // assertJit();
+    assertJit();
     eval('');
     var r = { };
     for (x in obj)
         r[x] = obj[x];
     return r;
 }
 
 function forGlobalName(obj) {
-    // assertJit();
+    assertJit();
     var r = { };
     for (x in obj)
         r[x] = obj[x];
     return r;
 }
 
 function forProp(obj) {
-    // assertJit();
+    assertJit();
     var r = { };
     var c = { };
     for (c.x in obj)
         r[c.x] = obj[c.x];
     return r;
 }
 
 function forElem(obj, x) {
-    // assertJit();
+    assertJit();
     var r = { };
     var c = { };
     for (c[x] in obj)
         r[c[x]] = obj[c[x]];
     return r;
 }
 
 function forLocal(obj) {
-    // assertJit();
+    assertJit();
     var r = { };
     for (var x in obj)
         r[x] = obj[x];
     return r;
 }
 
 function forArg(obj, x) {
-    // assertJit();
+    assertJit();
     var r = { };
     for (x in obj)
         r[x] = obj[x];
     return r;
 }
 
 var obj = { a: 1, b: "bee", c: "crab", d: 12 };
 assertObjectsEqual(obj, forName(obj));
deleted file mode 100644
--- a/js/src/jit-test/tests/jaeger/undoAdd.js
+++ /dev/null
@@ -1,25 +0,0 @@
-
-/* Test undoing addition in overflow paths when under heavy register pressure. */
-
-function add1(x, y, a, b, res) { var nres = res + 0; var z = (x + a) + (y + b); assertEq(z, nres); }
-function add2(x, y, a, b, res) { var nres = res + 0; var z = (x + a) + (y + b); assertEq(z, nres); }
-function add3(x, y, a, b, res) { var nres = res + 0; var z = (x + a) + (y + b); assertEq(z, nres); }
-add1(0x7ffffff0, 100, 0, 0, 2147483732);
-add2(-1000, -0x80000000, 0, 0, -2147484648);
-add3(-0x80000000, -1000, 0, 0, -2147484648);
-
-function cadd1(x, a, b, res) {
-  var nres = res + 0;
-  var nb = b + 0;
-  var z = (x + a) + 1000;
-  assertEq(z, nres + nb);
-}
-cadd1(0x7ffffff0, 0, 0, 2147484632);
-
-function cadd2(x, a, b, res) {
-  var nres = res + 0;
-  var nb = b + 0;
-  var z = (x + a) + (-0x80000000);
-  assertEq(z, nres + nb);
-}
-cadd2(-1000, 0, 0, -2147484648);
--- a/js/src/jsanalyze.cpp
+++ b/js/src/jsanalyze.cpp
@@ -37,36 +37,54 @@
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "jsanalyze.h"
 #include "jsautooplen.h"
 #include "jscompartment.h"
 #include "jscntxt.h"
 
-#include "jsinferinlines.h"
-#include "jsobjinlines.h"
+namespace js {
+namespace analyze {
+
+/////////////////////////////////////////////////////////////////////
+// Script
+/////////////////////////////////////////////////////////////////////
 
 void
-JSScript::makeAnalysis(JSContext *cx)
+Script::destroy()
 {
-    JS_ASSERT(!analysis_);
-    analysis_ = js::ArenaNew<js::analyze::ScriptAnalysis>(cx->compartment->pool, this);
+    JS_FinishArenaPool(&pool);
 }
 
-namespace js {
-namespace analyze {
+template <typename T>
+inline T *
+ArenaArray(JSArenaPool &pool, unsigned count)
+{
+    void *v;
+    JS_ARENA_ALLOCATE(v, &pool, count * sizeof(T));
+    return (T *) v;
+}
+
+template <typename T>
+inline T *
+ArenaNew(JSArenaPool &pool)
+{
+    void *v;
+    JS_ARENA_ALLOCATE(v, &pool, sizeof(T));
+    return new (v) T();
+}
 
 /////////////////////////////////////////////////////////////////////
 // Bytecode
 /////////////////////////////////////////////////////////////////////
 
 bool
-Bytecode::mergeDefines(JSContext *cx, ScriptAnalysis *script, bool initial,
-                       unsigned newDepth, uint32 *newArray, unsigned newCount)
+Bytecode::mergeDefines(JSContext *cx, Script *script, bool initial, unsigned newDepth,
+                       uint32 *newArray, unsigned newCount)
 {
     if (initial) {
         /*
          * Haven't handled any incoming edges to this bytecode before.
          * Define arrays are copy on write, so just reuse the array for this bytecode.
          */
         stackDepth = newDepth;
         defineArray = newArray;
@@ -111,18 +129,17 @@ Bytecode::mergeDefines(JSContext *cx, Sc
             }
             if (!found) {
                 /*
                  * Get a mutable copy of the defines.  This can end up making
                  * several copies for a bytecode if it has many incoming edges
                  * with progressively smaller sets of defined variables.
                  */
                 if (!owned) {
-                    uint32 *reallocArray =
-                        ArenaArray<uint32>(cx->compartment->pool, defineCount);
+                    uint32 *reallocArray = ArenaArray<uint32>(script->pool, defineCount);
                     if (!reallocArray) {
                         script->setOOM(cx);
                         return false;
                     }
                     memcpy(reallocArray, defineArray, defineCount * sizeof(uint32));
                     defineArray = reallocArray;
                     owned = true;
                 }
@@ -131,130 +148,99 @@ Bytecode::mergeDefines(JSContext *cx, Sc
                 defineArray[i--] = defineArray[--defineCount];
             }
         }
     }
 
     return true;
 }
 
-#ifdef DEBUG
-void
-PrintBytecode(JSContext *cx, JSScript *script, jsbytecode *pc)
-{
-    printf("#%u:", script->id());
-    void *mark = JS_ARENA_MARK(&cx->tempPool);
-    Sprinter sprinter;
-    INIT_SPRINTER(cx, &sprinter, &cx->tempPool, 0);
-    js_Disassemble1(cx, script, pc, pc - script->code, true, &sprinter);
-    fprintf(stdout, "%s", sprinter.base);
-    JS_ARENA_RELEASE(&cx->tempPool, mark);
-}
-#endif
-
 /////////////////////////////////////////////////////////////////////
-// Bytecode Analysis
+// Analysis
 /////////////////////////////////////////////////////////////////////
 
 inline bool
-ScriptAnalysis::addJump(JSContext *cx, unsigned offset,
-                        unsigned *currentOffset, unsigned *forwardJump,
-                        unsigned stackDepth, uint32 *defineArray, unsigned defineCount)
+Script::addJump(JSContext *cx, unsigned offset,
+                unsigned *currentOffset, unsigned *forwardJump,
+                unsigned stackDepth, uint32 *defineArray, unsigned defineCount)
 {
     JS_ASSERT(offset < script->length);
 
-    Bytecode *&code = codeArray[offset];
-    bool initial = (code == NULL);
+    Bytecode *&bytecode = code[offset];
+    bool initial = (bytecode == NULL);
     if (initial) {
-        code = ArenaNew<Bytecode>(cx->compartment->pool);
-        if (!code) {
+        bytecode = ArenaNew<Bytecode>(pool);
+        if (!bytecode) {
             setOOM(cx);
             return false;
         }
     }
 
-    if (!code->mergeDefines(cx, this, initial, stackDepth, defineArray, defineCount))
+    if (!bytecode->mergeDefines(cx, this, initial, stackDepth, defineArray, defineCount))
         return false;
-    code->jumpTarget = true;
+    bytecode->jumpTarget = true;
 
     if (offset < *currentOffset) {
-        jsbytecode *pc = script->code + offset;
-        UntrapOpcode untrap(cx, script, pc);
-
-        if (JSOp(*pc) == JSOP_TRACE || JSOp(*pc) == JSOP_NOTRACE)
-            code->loopHead = true;
-
-        /* Scripts containing loops are never inlined. */
-        isInlineable = false;
-
         /* Don't follow back edges to bytecode which has already been analyzed. */
-        if (!code->analyzed) {
+        if (!bytecode->analyzed) {
             if (*forwardJump == 0)
                 *forwardJump = *currentOffset;
             *currentOffset = offset;
         }
     } else if (offset > *forwardJump) {
         *forwardJump = offset;
     }
 
     return true;
 }
 
 inline void
-ScriptAnalysis::setLocal(uint32 local, uint32 offset)
+Script::setLocal(uint32 local, uint32 offset)
 {
-    JS_ASSERT(local < script->nfixed);
+    JS_ASSERT(local < localCount());
     JS_ASSERT(offset != LOCAL_CONDITIONALLY_DEFINED);
 
     /*
      * It isn't possible to change the point when a variable becomes unconditionally
      * defined, or to mark it as unconditionally defined after it has already been
      * marked as having a use before def.  It *is* possible to mark it as having
      * a use before def after marking it as unconditionally defined.  In a loop such as:
      *
      * while ((a = b) != 0) { x = a; }
      *
      * When walking through the body of this loop, we will first analyze the test
      * (which comes after the body in the bytecode stream) as unconditional code,
      * and mark a as definitely defined.  a is not in the define array when taking
      * the loop's back edge, so it is treated as possibly undefined when written to x.
      */
-    JS_ASSERT(definedLocals[local] == LOCAL_CONDITIONALLY_DEFINED ||
-              definedLocals[local] == offset || offset == LOCAL_USE_BEFORE_DEF);
+    JS_ASSERT(locals[local] == LOCAL_CONDITIONALLY_DEFINED ||
+              locals[local] == offset || offset == LOCAL_USE_BEFORE_DEF);
 
-    definedLocals[local] = offset;
+    locals[local] = offset;
 }
 
-void
-ScriptAnalysis::checkAliasedName(JSContext *cx, jsbytecode *pc)
+static inline ptrdiff_t
+GetJumpOffset(jsbytecode *pc, jsbytecode *pc2)
 {
-    /*
-     * Check to see if an accessed name aliases a local or argument in the
-     * current script, and mark that local/arg as escaping. We don't need to
-     * worry about marking locals/arguments in scripts this is nested in, as
-     * the escaping name will be caught by the parser and the nested local/arg
-     * will be marked as closed.
-     */
+    uint32 type = JOF_OPTYPE(*pc);
+    if (JOF_TYPE_IS_EXTENDED_JUMP(type))
+        return GET_JUMPX_OFFSET(pc2);
+    return GET_JUMP_OFFSET(pc2);
+}
 
-    JSAtom *atom;
-    if (JSOp(*pc) == JSOP_DEFFUN) {
-        JSFunction *fun = script->getFunction(js_GetIndexFromBytecode(cx, script, pc, 0));
-        atom = fun->atom;
-    } else {
-        JS_ASSERT(JOF_TYPE(js_CodeSpec[*pc].format) == JOF_ATOM);
-        atom = script->getAtom(js_GetIndexFromBytecode(cx, script, pc, 0));
-    }
+static inline unsigned
+GetBytecodeLength(jsbytecode *pc)
+{
+    JSOp op = (JSOp)*pc;
+    JS_ASSERT(op < JSOP_LIMIT);
+    JS_ASSERT(op != JSOP_TRAP);
 
-    uintN index;
-    BindingKind kind = script->bindings.lookup(cx, atom, &index);
-
-    if (kind == ARGUMENT)
-        escapedSlots[ArgSlot(index)] = true;
-    else if (kind == VARIABLE)
-        escapedSlots[LocalSlot(script, index)] = true;
+    if (js_CodeSpec[op].length != -1)
+        return js_CodeSpec[op].length;
+    return js_GetVariableBytecodeLength(pc);
 }
 
 // return whether op bytecodes do not fallthrough (they may do a jump).
 static inline bool
 BytecodeNoFallThrough(JSOp op)
 {
     switch (op) {
       case JSOP_GOTO:
@@ -275,100 +261,83 @@ BytecodeNoFallThrough(JSOp op)
       case JSOP_GOSUBX:
         // these fall through indirectly, after executing a 'finally'.
         return false;
       default:
         return false;
     }
 }
 
-void
-ScriptAnalysis::analyzeBytecode(JSContext *cx)
+/* Untrap a single PC, and retrap it at scope exit. */
+struct UntrapOpcode
 {
-    JS_ASSERT(cx->compartment->activeAnalysis);
-    JS_ASSERT(!ranBytecode());
-    JSArenaPool &pool = cx->compartment->pool;
+    jsbytecode *pc;
+    bool trap;
+
+    UntrapOpcode(JSContext *cx, JSScript *script, jsbytecode *pc)
+        : pc(pc), trap(JSOp(*pc) == JSOP_TRAP)
+    {
+        if (trap)
+            *pc = JS_GetTrapOpcode(cx, script, pc);
+    }
+
+    ~UntrapOpcode()
+    {
+        if (trap)
+            *pc = JSOP_TRAP;
+    }
+};
+
+void
+Script::analyze(JSContext *cx, JSScript *script)
+{
+    JS_ASSERT(!code && !locals);
+    this->script = script;
+
+    JS_InitArenaPool(&pool, "script_analyze", 256, 8);
 
     unsigned length = script->length;
-    unsigned nargs = script->fun ? script->fun->nargs : 0;
-
-    numSlots = TotalSlots(script);
+    unsigned nfixed = localCount();
 
-    codeArray = ArenaArray<Bytecode*>(pool, length);
-    definedLocals = ArenaArray<uint32>(pool, script->nfixed);
-    escapedSlots = ArenaArray<JSPackedBool>(pool, numSlots);
+    code = ArenaArray<Bytecode*>(pool, length);
+    locals = ArenaArray<uint32>(pool, nfixed);
 
-    if (!codeArray || !definedLocals || !escapedSlots) {
+    if (!code || !locals) {
         setOOM(cx);
         return;
     }
 
-    PodZero(codeArray, length);
+    PodZero(code, length);
 
-    for (unsigned i = 0; i < script->nfixed; i++)
-        definedLocals[i] = LOCAL_CONDITIONALLY_DEFINED;
+    for (unsigned i = 0; i < nfixed; i++)
+        locals[i] = LOCAL_CONDITIONALLY_DEFINED;
 
     /*
-     * Populate arg and local slots which can escape and be accessed in ways
-     * other than through ARG* and LOCAL* opcodes (though arguments can still
-     * be indirectly read but not written through 'arguments' properties).
-     * All escaping locals are treated as having possible use-before-defs.
+     * Treat locals as having a possible use-before-def if they could be accessed
+     * by debug code or by eval, or if they could be accessed by an inner script.
      */
 
-    PodZero(escapedSlots, numSlots);
-
-    if (script->usesEval || script->usesArguments || script->compartment->debugMode) {
-        for (unsigned i = 0; i < nargs; i++)
-            escapedSlots[ArgSlot(i)] = true;
-    } else {
-        for (unsigned i = 0; i < script->nClosedArgs; i++) {
-            unsigned arg = script->getClosedArg(i);
-            JS_ASSERT(arg < nargs);
-            escapedSlots[ArgSlot(arg)] = true;
-        }
+    if (script->usesEval || cx->compartment->debugMode) {
+        for (uint32 i = 0; i < nfixed; i++)
+            setLocal(i, LOCAL_USE_BEFORE_DEF);
     }
 
-    if (script->usesEval || script->compartment->debugMode) {
-        for (unsigned i = 0; i < script->nfixed; i++) {
-            escapedSlots[LocalSlot(script, i)] = true;
-            setLocal(i, LOCAL_USE_BEFORE_DEF);
-        }
-    } else {
-        for (uint32 i = 0; i < script->nClosedVars; i++) {
-            unsigned local = script->getClosedVar(i);
-            escapedSlots[LocalSlot(script, local)] = true;
-            setLocal(local, LOCAL_USE_BEFORE_DEF);
-        }
+    for (uint32 i = 0; i < script->nClosedVars; i++) {
+        uint32 slot = script->getClosedVar(i);
+        if (slot < nfixed)
+            setLocal(slot, LOCAL_USE_BEFORE_DEF);
     }
 
-    /* Maximum number of locals we will keep track of in defined variables analysis. */
-    static const uint32 LOCAL_LIMIT = 50;
-    for (unsigned i = LOCAL_LIMIT; i < script->nfixed; i++)
-        setLocal(i, LOCAL_USE_BEFORE_DEF);
-
     /*
      * If the script is in debug mode, JS_SetFrameReturnValue can be called at
      * any safe point.
      */
     if (cx->compartment->debugMode)
         usesRval = true;
 
-    isInlineable = true;
-    if (script->nClosedArgs || script->nClosedVars || script->nfixed >= LOCAL_LIMIT ||
-        (script->fun && script->fun->isHeavyweight()) ||
-        script->usesEval || script->usesArguments || cx->compartment->debugMode) {
-        isInlineable = false;
-    }
-
-    modifiesArguments_ = false;
-    if (script->nClosedArgs || (script->fun && script->fun->isHeavyweight()))
-        modifiesArguments_ = true;
-
-    canTrackVars = true;
-
     /*
      * If we are in the middle of one or more jumps, the offset of the highest
      * target jumping over this bytecode.  Includes implicit jumps from
      * try/catch/finally blocks.
      */
     unsigned forwardJump = 0;
 
     /*
@@ -380,292 +349,253 @@ ScriptAnalysis::analyzeBytecode(JSContex
     /* Fill in stack depth and definitions at initial bytecode. */
     Bytecode *startcode = ArenaNew<Bytecode>(pool);
     if (!startcode) {
         setOOM(cx);
         return;
     }
 
     startcode->stackDepth = 0;
-    codeArray[0] = startcode;
+    code[0] = startcode;
 
     unsigned offset, nextOffset = 0;
     while (nextOffset < length) {
         offset = nextOffset;
 
         JS_ASSERT(forwardCatch <= forwardJump);
 
         /* Check if the current forward jump/try-block has finished. */
         if (forwardJump && forwardJump == offset)
             forwardJump = 0;
         if (forwardCatch && forwardCatch == offset)
             forwardCatch = 0;
 
-        Bytecode *code = maybeCode(offset);
+        Bytecode *&bytecode = code[offset];
         jsbytecode *pc = script->code + offset;
 
         UntrapOpcode untrap(cx, script, pc);
 
         JSOp op = (JSOp)*pc;
         JS_ASSERT(op < JSOP_LIMIT);
 
         /* Immediate successor of this bytecode. */
         unsigned successorOffset = offset + GetBytecodeLength(pc);
 
         /*
          * Next bytecode to analyze.  This is either the successor, or is an
          * earlier bytecode if this bytecode has a loop backedge.
          */
         nextOffset = successorOffset;
 
-        if (!code) {
+        if (!bytecode) {
             /* Haven't found a path by which this bytecode is reachable. */
             continue;
         }
 
-        if (code->analyzed) {
+        if (bytecode->analyzed) {
             /* No need to reanalyze, see Bytecode::mergeDefines. */
             continue;
         }
 
-        code->analyzed = true;
+        bytecode->analyzed = true;
 
         if (forwardCatch)
-            code->inTryBlock = true;
+            bytecode->inTryBlock = true;
 
-        if (untrap.trap) {
-            code->safePoint = true;
-            isInlineable = canTrackVars = false;
-        }
-
-        unsigned stackDepth = code->stackDepth;
-        uint32 *defineArray = code->defineArray;
-        unsigned defineCount = code->defineCount;
+        unsigned stackDepth = bytecode->stackDepth;
+        uint32 *defineArray = bytecode->defineArray;
+        unsigned defineCount = bytecode->defineCount;
 
         if (!forwardJump) {
             /*
              * There is no jump over this bytecode, nor a containing try block.
              * Either this bytecode will definitely be executed, or an exception
              * will be thrown which the script does not catch.  Either way,
              * any variables definitely defined at this bytecode will stay
              * defined throughout the rest of the script.  We just need to
              * remember the offset where the variable became unconditionally
              * defined, rather than continue to maintain it in define arrays.
              */
-            code->unconditional = true;
             for (unsigned i = 0; i < defineCount; i++) {
                 uint32 local = defineArray[i];
-                JS_ASSERT_IF(definedLocals[local] != LOCAL_CONDITIONALLY_DEFINED &&
-                             definedLocals[local] != LOCAL_USE_BEFORE_DEF,
-                             definedLocals[local] <= offset);
-                if (definedLocals[local] == LOCAL_CONDITIONALLY_DEFINED)
+                JS_ASSERT_IF(locals[local] != LOCAL_CONDITIONALLY_DEFINED &&
+                             locals[local] != LOCAL_USE_BEFORE_DEF,
+                             locals[local] <= offset);
+                if (locals[local] == LOCAL_CONDITIONALLY_DEFINED)
                     setLocal(local, offset);
             }
-            defineArray = code->defineArray = NULL;
-            defineCount = code->defineCount = 0;
+            defineArray = bytecode->defineArray = NULL;
+            defineCount = bytecode->defineCount = 0;
         }
 
-        unsigned nuses = GetUseCount(script, offset);
-        unsigned ndefs = GetDefCount(script, offset);
+        unsigned nuses, ndefs;
+        if (js_CodeSpec[op].nuses == -1)
+            nuses = js_GetVariableStackUses(op, pc);
+        else
+            nuses = js_CodeSpec[op].nuses;
+
+        if (js_CodeSpec[op].ndefs == -1)
+            ndefs = js_GetEnterBlockStackDefs(cx, script, pc);
+        else
+            ndefs = js_CodeSpec[op].ndefs;
 
         JS_ASSERT(stackDepth >= nuses);
         stackDepth -= nuses;
         stackDepth += ndefs;
 
         switch (op) {
 
-          case JSOP_RETURN:
-          case JSOP_STOP:
-            numReturnSites_++;
-            break;
-
           case JSOP_SETRVAL:
           case JSOP_POPV:
             usesRval = true;
-            isInlineable = false;
             break;
 
           case JSOP_NAME:
           case JSOP_CALLNAME:
           case JSOP_BINDNAME:
           case JSOP_SETNAME:
           case JSOP_DELNAME:
           case JSOP_INCNAME:
           case JSOP_DECNAME:
           case JSOP_NAMEINC:
           case JSOP_NAMEDEC:
           case JSOP_FORNAME:
-          case JSOP_QNAMEPART:
-          case JSOP_QNAMECONST:
-            checkAliasedName(cx, pc);
             usesScope = true;
-            isInlineable = false;
-            break;
-
-          case JSOP_DEFFUN:
-          case JSOP_DEFVAR:
-          case JSOP_DEFCONST:
-          case JSOP_SETCONST:
-            checkAliasedName(cx, pc);
-            /* FALLTHROUGH */
-
-          case JSOP_ENTERWITH:
-            isInlineable = canTrackVars = false;
             break;
 
-          case JSOP_THIS:
-            usesThis = true;
-            break;
+          /* Watch for opcodes the method JIT doesn't compile. */
+          case JSOP_GOSUB:
+          case JSOP_GOSUBX:
+          case JSOP_IFCANTCALLTOP:
+          case JSOP_FILTER:
+          case JSOP_ENDFILTER:
+          case JSOP_TABLESWITCHX:
+          case JSOP_LOOKUPSWITCHX:
+            hadFailure = true;
+            return;
 
-          case JSOP_CALL:
-          case JSOP_NEW:
-            /* Only consider potentially inlineable calls here. */
-            hasCalls = true;
-            break;
-
-          case JSOP_TABLESWITCH:
-          case JSOP_TABLESWITCHX: {
-            isInlineable = canTrackVars = false;
+          case JSOP_TABLESWITCH: {
             jsbytecode *pc2 = pc;
-            unsigned jmplen = (op == JSOP_TABLESWITCH) ? JUMP_OFFSET_LEN : JUMPX_OFFSET_LEN;
             unsigned defaultOffset = offset + GetJumpOffset(pc, pc2);
-            pc2 += jmplen;
+            pc2 += JUMP_OFFSET_LEN;
             jsint low = GET_JUMP_OFFSET(pc2);
             pc2 += JUMP_OFFSET_LEN;
             jsint high = GET_JUMP_OFFSET(pc2);
             pc2 += JUMP_OFFSET_LEN;
 
             if (!addJump(cx, defaultOffset, &nextOffset, &forwardJump,
                          stackDepth, defineArray, defineCount)) {
                 return;
             }
-            getCode(defaultOffset).switchTarget = true;
-            getCode(defaultOffset).safePoint = true;
 
             for (jsint i = low; i <= high; i++) {
                 unsigned targetOffset = offset + GetJumpOffset(pc, pc2);
                 if (targetOffset != offset) {
                     if (!addJump(cx, targetOffset, &nextOffset, &forwardJump,
                                  stackDepth, defineArray, defineCount)) {
                         return;
                     }
                 }
-                getCode(targetOffset).switchTarget = true;
-                getCode(targetOffset).safePoint = true;
-                pc2 += jmplen;
+                pc2 += JUMP_OFFSET_LEN;
             }
             break;
           }
 
-          case JSOP_LOOKUPSWITCH:
-          case JSOP_LOOKUPSWITCHX: {
-            isInlineable = canTrackVars = false;
+          case JSOP_LOOKUPSWITCH: {
             jsbytecode *pc2 = pc;
-            unsigned jmplen = (op == JSOP_LOOKUPSWITCH) ? JUMP_OFFSET_LEN : JUMPX_OFFSET_LEN;
             unsigned defaultOffset = offset + GetJumpOffset(pc, pc2);
-            pc2 += jmplen;
+            pc2 += JUMP_OFFSET_LEN;
             unsigned npairs = GET_UINT16(pc2);
             pc2 += UINT16_LEN;
 
             if (!addJump(cx, defaultOffset, &nextOffset, &forwardJump,
                          stackDepth, defineArray, defineCount)) {
                 return;
             }
-            getCode(defaultOffset).switchTarget = true;
-            getCode(defaultOffset).safePoint = true;
 
             while (npairs) {
                 pc2 += INDEX_LEN;
                 unsigned targetOffset = offset + GetJumpOffset(pc, pc2);
                 if (!addJump(cx, targetOffset, &nextOffset, &forwardJump,
                              stackDepth, defineArray, defineCount)) {
                     return;
                 }
-                getCode(targetOffset).switchTarget = true;
-                getCode(targetOffset).safePoint = true;
-                pc2 += jmplen;
+                pc2 += JUMP_OFFSET_LEN;
                 npairs--;
             }
             break;
           }
 
           case JSOP_TRY: {
             /*
              * Everything between a try and corresponding catch or finally is conditional.
              * Note that there is no problem with code which is skipped by a thrown
              * exception but is not caught by a later handler in the same function:
              * no more code will execute, and it does not matter what is defined.
              */
-            isInlineable = canTrackVars = false;
             JSTryNote *tn = script->trynotes()->vector;
             JSTryNote *tnlimit = tn + script->trynotes()->length;
             for (; tn < tnlimit; tn++) {
                 unsigned startOffset = script->main - script->code + tn->start;
                 if (startOffset == offset + 1) {
                     unsigned catchOffset = startOffset + tn->length;
 
                     /* This will overestimate try block code, for multiple catch/finally. */
                     if (catchOffset > forwardCatch)
                         forwardCatch = catchOffset;
 
                     if (tn->kind != JSTRY_ITER) {
                         if (!addJump(cx, catchOffset, &nextOffset, &forwardJump,
                                      stackDepth, defineArray, defineCount)) {
                             return;
                         }
-                        getCode(catchOffset).exceptionEntry = true;
-                        getCode(catchOffset).safePoint = true;
+                        code[catchOffset]->exceptionEntry = true;
                     }
                 }
             }
             break;