remove support for const (#1910)

As this is not part of ES5.
This commit is contained in:
Alex Lam S.L
2017-05-12 14:57:41 +08:00
committed by GitHub
parent ac73c5d421
commit c391576d52
20 changed files with 36 additions and 591 deletions

View File

@@ -916,9 +916,6 @@ function parse($TEXT, options) {
case "var":
return tmp = var_(), semicolon(), tmp;
case "const":
return tmp = const_(), semicolon(), tmp;
case "with":
if (S.input.has_directive("use strict")) {
croak("Strict mode may not include a with statement");
@@ -1153,16 +1150,13 @@ function parse($TEXT, options) {
});
};
function vardefs(no_in, in_const) {
function vardefs(no_in) {
var a = [];
for (;;) {
a.push(new AST_VarDef({
start : S.token,
name : as_symbol(in_const ? AST_SymbolConst : AST_SymbolVar),
value : is("operator", "=")
? (next(), expression(false, no_in))
: in_const && S.input.has_directive("use strict")
? croak("Missing initializer in const declaration") : null,
name : as_symbol(AST_SymbolVar),
value : is("operator", "=") ? (next(), expression(false, no_in)) : null,
end : prev()
}));
if (!is("punc", ","))
@@ -1175,15 +1169,7 @@ function parse($TEXT, options) {
var var_ = function(no_in) {
return new AST_Var({
start : prev(),
definitions : vardefs(no_in, false),
end : prev()
});
};
var const_ = function() {
return new AST_Const({
start : prev(),
definitions : vardefs(false, true),
definitions : vardefs(no_in),
end : prev()
});
};