Closed Bug 736315 Opened 12 years ago Closed 11 years ago

IonMonkey: Create JSOP_BAIL and a bail statement for the shell.

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 899735

People

(Reporter: sstangl, Unassigned)

Details

(Whiteboard: [ion:t])

IonMonkey should be able to handle bailing from arbitrary points in the code. Currently it is difficult to test this, since bailout behavior is highly dependent on implementation details that change frequently. There is no good way to cause a bailout that will necessarily remain valid in the future.

For the purpose of writing test cases involving bailout behavior, and for facilitating fuzzing, we should have a dedicated statement to force a bailout.
Identically, some tests are relying on the fact that we are switching between different frame types.  and it would be nice to have  JSOP_DONOTCOMPILE (ALL|ION|JM).  If you don't want to lose JSOP slots, you can just use one with an immediate value such as:

JSOP_TESTSUITE [ BAILOUT | DO_NOT_IONIZE | … ]
some tricks that are very stable:

|with| prevents compilation in either JIT
|try| prevents compilation in IonMonkey

a bailout can be triggered with: 0()
Related: bug 723985 (adding a "use nojit" directive). But it's at whole-script granularity.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.