Skip to content

Commit 6636f84

Browse files
committed
merge the "const" and "let" features
1 parent ed97dee commit 6636f84

File tree

5 files changed

+12
-28
lines changed

5 files changed

+12
-28
lines changed

internal/compat/js_table.go

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ const (
6060
ClassPrivateStaticMethod
6161
ClassStaticBlocks
6262
ClassStaticField
63-
Const
63+
ConstAndLet
6464
DefaultArgument
6565
Destructuring
6666
DynamicImport
@@ -72,7 +72,6 @@ const (
7272
Hashbang
7373
ImportAssertions
7474
ImportMeta
75-
Let
7675
LogicalAssignment
7776
NestedRestBinding
7877
NewTarget
@@ -266,7 +265,7 @@ var jsTable = map[JSFeature]map[Engine][]versionRange{
266265
Opera: {{start: v{60, 0, 0}}},
267266
Safari: {{start: v{14, 1, 0}}},
268267
},
269-
Const: {
268+
ConstAndLet: {
270269
Chrome: {{start: v{49, 0, 0}}},
271270
Edge: {{start: v{14, 0, 0}}},
272271
ES: {{start: v{2015, 0, 0}}},
@@ -378,17 +377,6 @@ var jsTable = map[JSFeature]map[Engine][]versionRange{
378377
Opera: {{start: v{51, 0, 0}}},
379378
Safari: {{start: v{11, 1, 0}}},
380379
},
381-
Let: {
382-
Chrome: {{start: v{49, 0, 0}}},
383-
Edge: {{start: v{14, 0, 0}}},
384-
ES: {{start: v{2015, 0, 0}}},
385-
Firefox: {{start: v{51, 0, 0}}},
386-
IE: {{start: v{11, 0, 0}}},
387-
IOS: {{start: v{11, 0, 0}}},
388-
Node: {{start: v{6, 0, 0}}},
389-
Opera: {{start: v{36, 0, 0}}},
390-
Safari: {{start: v{11, 0, 0}}},
391-
},
392380
LogicalAssignment: {
393381
Chrome: {{start: v{85, 0, 0}}},
394382
Edge: {{start: v{85, 0, 0}}},

internal/js_parser/js_parser.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4299,7 +4299,7 @@ func (p *parser) parseExprOrLetStmt(opts parseStmtOpts) (js_ast.Expr, js_ast.Stm
42994299
if opts.lexicalDecl != lexicalDeclAllowAll {
43004300
p.forbidLexicalDecl(letRange.Loc)
43014301
}
4302-
p.markSyntaxFeature(compat.Let, letRange)
4302+
p.markSyntaxFeature(compat.ConstAndLet, letRange)
43034303
decls := p.parseAndDeclareDecls(js_ast.SymbolOther, opts)
43044304
return js_ast.Expr{}, js_ast.Stmt{Loc: letRange.Loc, Data: &js_ast.SLocal{
43054305
Kind: js_ast.LocalLet,
@@ -6193,7 +6193,7 @@ func (p *parser) parseStmt(opts parseStmtOpts) js_ast.Stmt {
61936193
if opts.lexicalDecl != lexicalDeclAllowAll {
61946194
p.forbidLexicalDecl(loc)
61956195
}
6196-
p.markSyntaxFeature(compat.Const, p.lexer.Range())
6196+
p.markSyntaxFeature(compat.ConstAndLet, p.lexer.Range())
61976197
p.lexer.Next()
61986198

61996199
if p.options.ts.Parse && p.lexer.Token == js_lexer.TEnum {
@@ -6442,7 +6442,7 @@ func (p *parser) parseStmt(opts parseStmtOpts) js_ast.Stmt {
64426442
initOrNil = js_ast.Stmt{Loc: initLoc, Data: &js_ast.SLocal{Kind: js_ast.LocalVar, Decls: decls}}
64436443

64446444
case js_lexer.TConst:
6445-
p.markSyntaxFeature(compat.Const, p.lexer.Range())
6445+
p.markSyntaxFeature(compat.ConstAndLet, p.lexer.Range())
64466446
p.lexer.Next()
64476447
decls = p.parseAndDeclareDecls(js_ast.SymbolConst, parseStmtOpts{})
64486448
initOrNil = js_ast.Stmt{Loc: initLoc, Data: &js_ast.SLocal{Kind: js_ast.LocalConst, Decls: decls}}
@@ -7523,7 +7523,7 @@ func (p *parser) visitStmts(stmts []js_ast.Stmt, kind stmtsKind) []js_ast.Stmt {
75237523
// Reuse memory from "before"
75247524
before = before[:0]
75257525
kind := js_ast.LocalLet
7526-
if p.options.unsupportedJSFeatures.Has(compat.Let) {
7526+
if p.options.unsupportedJSFeatures.Has(compat.ConstAndLet) {
75277527
kind = js_ast.LocalVar
75287528
}
75297529
if len(letDecls) > 0 {

internal/js_parser/js_parser_lower.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,8 @@ func (p *parser) markSyntaxFeature(feature compat.JSFeature, r logger.Range) (di
7171
case compat.NewTarget:
7272
name = "new.target"
7373

74-
case compat.Const:
75-
name = "const"
76-
77-
case compat.Let:
78-
name = "let"
74+
case compat.ConstAndLet:
75+
name = p.source.TextForRange(r)
7976

8077
case compat.Class:
8178
name = "class syntax"

internal/runtime/runtime.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import (
1616
const SourceIndex = uint32(0)
1717

1818
func CanUseES6(unsupportedFeatures compat.JSFeature) bool {
19-
return !unsupportedFeatures.Has(compat.Let) && !unsupportedFeatures.Has(compat.ForOf)
19+
return !unsupportedFeatures.Has(compat.ConstAndLet) && !unsupportedFeatures.Has(compat.ForOf)
2020
}
2121

2222
func code(isES6 bool) string {

scripts/compat-table.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ const features = {
3131
'destructuring, assignment': { target: 'Destructuring' },
3232
'destructuring, parameters': { target: 'Destructuring' },
3333
'new.target': { target: 'NewTarget' },
34-
'const': { target: 'Const' },
35-
'let': { target: 'Let' },
34+
'const': { target: 'ConstAndLet' },
35+
'let': { target: 'ConstAndLet' },
3636
'arrow functions': { target: 'Arrow' },
3737
'class': { target: 'Class' },
3838
'generators': { target: 'Generator' },
@@ -135,13 +135,12 @@ mergeVersions('ObjectAccessors', { es5: true })
135135
mergeVersions('ArraySpread', { es2015: true })
136136
mergeVersions('Arrow', { es2015: true })
137137
mergeVersions('Class', { es2015: true })
138-
mergeVersions('Const', { es2015: true })
138+
mergeVersions('ConstAndLet', { es2015: true })
139139
mergeVersions('DefaultArgument', { es2015: true })
140140
mergeVersions('Destructuring', { es2015: true })
141141
mergeVersions('DynamicImport', { es2015: true })
142142
mergeVersions('ForOf', { es2015: true })
143143
mergeVersions('Generator', { es2015: true })
144-
mergeVersions('Let', { es2015: true })
145144
mergeVersions('NewTarget', { es2015: true })
146145
mergeVersions('ObjectExtensions', { es2015: true })
147146
mergeVersions('RegExpStickyAndUnicodeFlags', { es2015: true })

0 commit comments

Comments
 (0)