Skip to content

Commit

Permalink
work on evanw#184 fix instrumentation "constructor requires new" error
Browse files Browse the repository at this point in the history
  • Loading branch information
stoand committed Mar 12, 2023
1 parent 1889dd6 commit 3192976
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions internal/js_printer/js_printer.go
Original file line number Diff line number Diff line change
Expand Up @@ -1812,10 +1812,13 @@ func (p *printer) printExpr(expr js_ast.Expr, level js_ast.L, flags printExprFla
enableInstLocal = false
}

if flags == forbidCall {
if flags & parentWasNew != 0 {
enableInstLocal = false
}

// clear parentWasNew bit
flags = flags&^parentWasNew;

if enableInstLocal {
p.instrumentExprStart(expr.Loc)
}
Expand Down Expand Up @@ -2082,7 +2085,7 @@ func (p *printer) printExpr(expr js_ast.Expr, level js_ast.L, flags printExprFla
p.addSourceMapping(expr.Loc)
p.print("new")
p.printSpace()
p.printExpr(e.Target, js_ast.LNew, forbidCall)
p.printExpr(e.Target, js_ast.LNew, forbidCall | parentWasNew)

// Omit the "()" when minifying, but only when safe to do so
isMultiLine := !p.options.MinifyWhitespace && ((e.IsMultiLine && len(e.Args) > 0) ||
Expand Down Expand Up @@ -4626,6 +4629,7 @@ func Print(tree js_ast.AST, symbols js_ast.SymbolMap, r renamer.Renamer, options

p := &printer{
fileIndex: len(files),
// isRuntime: file == "<runtime>" || strings.Contains(file, "node_modules"),
isRuntime: file == "<runtime>",
instrumentedExpr: []InstrumentedExpr{},
instrumentedBlock: []InstrumentedBlock{},
Expand Down

0 comments on commit 3192976

Please sign in to comment.