We definitely should remove version= usage when we can. We could also
migrate any version=1.7 hold-outs to 1.8 as an intermediate step, if
that's worthwhile.
The only engine source files containing JSVERSION are
frontend/Parser.cpp
frontend/Parser.h
jsapi.cpp
jscntxt.cpp
jscntxt.h
jspubtd.h
jsscript.cpp
shell/js.cpp
vm/GlobalObject.cpp
vm/Keywords.h
vm/SelfHosting.cpp
If I'm not mistaken, the only actual version tests among these are
frontend/Parser.cpp: if (version == JSVERSION_1_7 && !forEach &&
!forOf) {
frontend/Parser.cpp: if (version == JSVERSION_1_7 && !forEach &&
!forOf)
frontend/Parser.cpp: if (versionNumber() == JSVERSION_1_7) {
frontend/Parser.cpp: if (versionNumber() != JSVERSION_ECMA_3) {
frontend/Parser.cpp: if (versionNumber() == JSVERSION_1_7 &&
frontend/Parser.h: return versionNumber() >= JSVERSION_1_6;
The last is to allow 'for each(...)' from E4X (ECMA-357). That's a
separately actionable cleanup item, which I think we could do now that
for-of is implemented.
This one from the middle of the grep output:
frontend/Parser.cpp: if (versionNumber() != JSVERSION_ECMA_3) {
is about a de-facto semicolon insertion rule that ES5 codified (ASI
after do-while). We should just do it unconditionally.
The rest are JS1.7 cruft, see this recurring comment:
// In JS 1.7 only, for (var [K, V] in EXPR) has a special meaning.
Here is where migrating away from JS1.7 and even from opt-in versioning
ASAP would help.
The only other version tests are to enable 'let' and 'yield' as
keywords. ES6 (1JS) proposes different and opt-in-free ways to handle
these. We could use two bugs and independent efforts.
/be
David Bruant wrote:
Hi,
I've been thinking about Dave Herman's comment one the generator bug
[1] for a couple of days. Specifically:
"The explicit versioning is Mozilla-specific, and is basically a
failed experiment; the overwhelming majority of the web doesn't use
it. The HTML5 zeitgeist and the "One JavaScript" (1JS) movement,
meanwhile, have moved away from opt-in versioning as an anti-pattern."
So maybe it is time to slowly remove Mozilla-specific versioning?
David
[1] https://bugzilla.mozilla.org/show_bug.cgi?id=666399#c56
_______________________________________________
dev-tech-js-engine-internals mailing list
dev-tech-js-engine-internals@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals
_______________________________________________
dev-tech-js-engine-internals mailing list
dev-tech-js-engine-internals@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals