JavaScript:SpiderMonkey:PathToFirefox4

From MozillaWiki
Jump to: navigation, search

Shipping This Year's JS Work

We have 6 weeks to land all major remaining work for Firefox 4. This means we must have everything on this page completed by September 1. There is no wiggle room in this part of the schedule.

JaegerMonkey

The goal for JaegerMonkey is to land all major optimizations and have reasonable conformance (minor regressions ok) to put in a beta.

Task Size (wks) Candidate Assignee
more x86 optimizations 6 all
JM Browser: Green Tinderbox 6 dmandelin
Tracer Integration 2 dvander
X64 JIT Backend 2 (sstangl / ??)
JSStackFrame Evisceration  ??? lwagner et al.

Debugger

jdbg2 work will be postponed until september 1, since we will not have compelling client consumers ready for Firefox 4. In the meantime, we'll make sure Firebug works better than it does at the moment, thanks to JM integration.

Task Size (wks) Candidate Assignee
hook up JM to original JSDBGAPI 2 adrake
make sure Firebug actually works 1 jimb / adrake / honza
spec draft JSON protocol so that work can start on jsdbg2 consumers .5 jimb

ES5

Firefox 4 will purport to conform to all of ES5, including strict mode. All known bugs will be fixed.

Task Size (wks) Candidate Assignee
Object.preventExtensions, Object.seal, Object.freeze 1 (gated on scope removal) Jeff Walden
Function.prototype.bind 1 Jeff Walden
Make JSON not accept trailing commas 0 (gated on a branch landing and release) Jeff Walden
Detect cyclic JSON objects per-spec 0.2 (awaiting review) Jeff Walden
Make [].toString, [].toLocaleString generic 0.2 (r+'d, to be landed) Jeff Walden
/a/.lastIndex shouldn't coerce to number 0.2 (awaiting review) Jeff Walden
Function.prototype.apply should accept anything arraylike 0.1 Jeff Walden
getter/setter literal syntax isn't function-argument-list syntax 0.2 Jeff Walden
Ignore the second argument to eval 0.1 Jeff Walden
parseInt and octal tightening-up 0.1 Jeff Walden
Assertion defining global property with {set:void 0}, then accessing it by name 0.4? Jeff Walden
Crash using a non-configurable property 0.6? Jeff Walden
Assertion defining accessor over method-valued property 0.1 Jeff Walden
match/replace shouldn't update lastIndex regex property 0.3 Jeff Walden
ES5 strict mode: arguments.caller and arguments.callee poison pills 0.6 (3 days) Jim Blandy
ES5 strict mode: eval code gets its own variable environment 0.8 (4 days) Jim Blandy
ES5 strict mode: this not generally coerced to an object 1 Jim Blandy
Assignment to readonly properties should throw a TypeError in strict mode, ES5 strict mode: deleting non-configurable property should throw a TypeError, ES5 strict mode: assignments to undeclared variables not permitted 0.8 (4 days) Jim Blandy
ES5 strict mode: function instances have no magic 'caller' or 'arguments' properties 0.4 (2 days) Jim Blandy
ES5 strict mode: arguments objects of strict mode functions must copy argument values 1 Jim Blandy
Make strict mode (new in ES5) disable undetected document.all emulation 0.4 (2 days) Jim Blandy
ES5 strict mode: extra warning for duplicated prop names in object initializer 0.2 (1 days) Jim Blandy

Compartments

Task Size (wks) Candidate Assignee
Implement brain transplants 0 gal
innner/outer SH 0 blake
window? bug outer window? 0 blake
Shake out bugs in compartments, re-enable compartment assertions 3 (with large variance) mrbkap/jorendorff/gal
Compartmental GC 3 gwagner
Implement MT wrappers  ? gal

VM fixes

Task Size (wks) Candidate Assignee
JSScope removal 2 Brendan
JSObject reorganization 1 Brendan / Luke Wagner
lock removal 2 Brendan / Andreas

Blockers that must be fixed by September 1