@@ -224,6 +224,7 @@ type parser struct {
224
224
exportsRef ast.Ref
225
225
requireRef ast.Ref
226
226
moduleRef ast.Ref
227
+ defineRef ast.Ref
227
228
importMetaRef ast.Ref
228
229
promiseRef ast.Ref
229
230
regExpRef ast.Ref
@@ -14615,6 +14616,7 @@ func (p *parser) visitExprInOut(expr js_ast.Expr, in exprIn) (js_ast.Expr, exprO
14615
14616
if p.options.mode == config.ModeBundle && !p.isFileConsideredToHaveESMExports {
14616
14617
p.recordUsage(p.moduleRef)
14617
14618
p.recordUsage(p.exportsRef)
14619
+ p.recordUsage(p.defineRef)
14618
14620
}
14619
14621
14620
14622
// Mark this scope and all parent scopes as containing a direct eval.
@@ -17520,10 +17522,12 @@ func (p *parser) prepareForVisitPass() {
17520
17522
// CommonJS-style exports
17521
17523
p.exportsRef = p.declareCommonJSSymbol(ast.SymbolHoisted, "exports")
17522
17524
p.moduleRef = p.declareCommonJSSymbol(ast.SymbolHoisted, "module")
17525
+ p.defineRef = p.declareCommonJSSymbol(ast.SymbolHoisted, "define")
17523
17526
} else {
17524
17527
// ESM-style exports
17525
17528
p.exportsRef = p.newSymbol(ast.SymbolHoisted, "exports")
17526
17529
p.moduleRef = p.newSymbol(ast.SymbolHoisted, "module")
17530
+ p.defineRef = p.newSymbol(ast.SymbolHoisted, "define")
17527
17531
}
17528
17532
17529
17533
// Handle "@jsx" and "@jsxFrag" pragmas now that lexing is done
@@ -17939,6 +17943,7 @@ func (p *parser) toAST(before, parts, after []js_ast.Part, hashbang string, dire
17939
17943
exportsKind := js_ast.ExportsNone
17940
17944
usesExportsRef := p.symbols[p.exportsRef.InnerIndex].UseCountEstimate > 0
17941
17945
usesModuleRef := p.symbols[p.moduleRef.InnerIndex].UseCountEstimate > 0
17946
+ usesDefineRef := p.symbols[p.defineRef.InnerIndex].UseCountEstimate > 0
17942
17947
17943
17948
if p.esmExportKeyword.Len > 0 || p.esmImportMeta.Len > 0 || p.topLevelAwaitKeyword.Len > 0 {
17944
17949
exportsKind = js_ast.ExportsESM
@@ -17975,6 +17980,7 @@ func (p *parser) toAST(before, parts, after []js_ast.Part, hashbang string, dire
17975
17980
Symbols: p.symbols,
17976
17981
ExportsRef: p.exportsRef,
17977
17982
ModuleRef: p.moduleRef,
17983
+ DefineRef: p.defineRef,
17978
17984
WrapperRef: wrapperRef,
17979
17985
Hashbang: hashbang,
17980
17986
Directives: directives,
@@ -17995,6 +18001,7 @@ func (p *parser) toAST(before, parts, after []js_ast.Part, hashbang string, dire
17995
18001
// CommonJS features
17996
18002
UsesExportsRef: usesExportsRef,
17997
18003
UsesModuleRef: usesModuleRef,
18004
+ UsesDefineRef: usesDefineRef,
17998
18005
ExportsKind: exportsKind,
17999
18006
18000
18007
// ES6 features
0 commit comments