Location
Mozilla Foundation 1981 Landings Drive Building K Mountain View, CA 94043-0801 USA
See a street map of our location for driving directions. Once there, see this satellite image to locate Building K within the complex.
Times
Sept. 21: 12pm-5pm PDT (we will dine out around 7pm). Sept. 22: 10am-5pm PDT
Attendees
Jeff Dyer, Adobe
Steven Johnson, Adobe
Dan Smith, Adobe
Ed Smith, Adobe
Michael O’Brien, Mbedthis
Brendan Eich, Mozilla
Graydon Hoare, Mozilla
Dave Herman, Northeastern
Lars Hansen, Opera
Iain Lamb, Yahoo!
Julien Lecomte, Yahoo!
Agenda
Notes
yield
should make yield e and let (h) e use the same nonterminal for e
either: over-parenthesize
or: non-terminal for e is AssignmentExpression
resolved: use AssignmentExpression
documentation comments
lars: why not use a comment?
doug’s proposal does not reflect as doc
how does this relate to decorators?
-
we have resolved to eliminate reference types in the spec
should we restrict optional reference types in the grammar? no
should we make the spec’s normative grammar be LL(1) or LR(1)? yes
jeff to take on formalizing the grammar, mob will help
proposals review
-
class A.<T> extends T { ... } should not be allowed
similar such questions may arise
dave: C# type non-erasure vs. Java erasure
-
raised issues of spec language and completeness
build on E3 or try to improve it w/ a significantly different metalang?
take E3 metalang and clean it up a bit (a la ECMA-357)
dave to try writing a few more accessible spec styles for some productions
proposals, continued
expression closures, still reviewing
multiple compilation units - need to prove the two propositions
security wrappers - does it do enough to be worth its cost?
for ([k] in o) => SyntaxError
for ([k,v,u] in o) => SyntaxError
for ([k,,,] in o) => ok
for ([k,,] in o) => ok
for ([k,v] in o) => ok
bug fixes
brendan: remove eval bug fixes, it has its own page
brendan: generic statics for Array and String should be split out
jeff: escaped newlines in string literals ok
-
update to leave typeof null === “object”
update to change typeof class === “object”
BUT: typeof String === “function” for backward compat
informative words expressing regret
day two
-
ok (discussion around clarity of implementation choice, how choice is one way or the other for all inputs, depending on input).
resolved: format conrol chars are not stripped from source input, therefore are preserved in string and regexp literals
-
Brendan to clean up, move most to discussion, present minimal proposal
Iain: why not define a range generator function?
Discussion about +, <, == etc. for Array – put them in a new namespace that
new code can use: use namespace operators.
-
Array.prototype.toJSONString
Object.prototype.toJSONString
String.prototype.parseJSON
String.prototype.trim (free-riding on JSON here)
-
lars/dave: namespace() and name() should be in ClassType not Type
dave: use iterators instead of arrays
dave: note to use [T] instead of no-longer-proposed Array.<T>
dave: should reflect public methods and fields, structural fields, etc.
InterfaceType? sure; InterfaceType.implementedBy()