JSStackFrame Evisceration

This would leave sizeof(JSStackFrame) == 6 words.

Members to remove

Sorted in estimated order of benefit / difficulty:

Task Size (wks) Assignee Note
argc/argv 1.5 lw Requires CallSegment (CallStack) changes, educate decompiler
thisv .5 lw Depends on argv/argc
fun, script .5 lw Depends on thisv
ncode 3 dvander Merge it with savedPC in method-jit. Requires building map HW PC --> bytecode (which we sortof already heave
XdisplaySave 1 cdleary Remove display optimization for great justice!
hookData .2 Just use js::Invoke and use a local variable
annotation 3 sayrer Trivial if we can remove callers in nsScriptSecurityManager. Alas, that is not trivial, so this is going to take a while.
callerVersion .5 cdleary Mostly the challenge is just understanding the actual use case.
blockChain 1 lw A bit tricky
rval 1 Tricky
imacpc 1 cdleary Leave uninitialized in call path and use JSStackFrame::flags to indicate whether there is or is not an imacpc.

Method-jit changes

  • PIC for fast natives calls
  • PIC/fast path for interpreted inline call