Initial comments on Kona draft

Waldemar Horwat waldemar at
Fri Nov 14 17:54:57 PST 2008

More comments.


11.1.5:  This means that I can override a getter with a value property or specify two getters for the same property even in strict mode.  We had agreed that strict mode disallowed such things.

11.2.1:  "where <identifier-name-string> is a string literal containing the same sequence of characters as the IdentifierName.":  The meaning is ambiguous in the presence of escape codes.

11.3.1, 11.3.2:  All four of the return statemets are wrong in different ways.  Some return the preincremented value.  Some return an lvalue instead of an rvalue.

11.5:  What's the corresponding Decimal operation?  There are a bunch of different remainder options.

11.8.5:  You're treating Unicode character codes as Decimal numbers.  Which characters have Unicode numbers that are Numbers, and which ones have Unicode numbers that are Decimals?

If you fix this and apply the same contagion rules as for +, -, *, etc., then you'll have the issue that 1e-400m > 0m but 1e-400m > 0 is false.  The contagion rules need rethinking.

11.9.3:  The contagion here is from Number to Decimal.  This is inconsistent with +, -, *, etc., where the contagion is from Decimal to Number.  It should be the same for all arithmetic operations.

11.9.6:  Don't need to call ToDecimal on values that are already Decimals.  The strict mode restrictions are ambiguous.  What happens in this case, where g does not exist?

g = (function(){throw "foo"})();

What about this?

g = eval("var g = 5; 2");

More information about the Es-discuss mailing list