tests/test.sh exit code (0 → resolved); the classification below is post-hoc and cannot change it.rg -n "asyncGenerator|yieldStar|forAwait|async generator|async-generator|AsyncGenerator" internal scripts tests cmd
Chunk ID: b96eb8
Wall time: 0.0000 seconds
Process exited with code 2
Original token count: 3250
Output:
rg: scripts: No such file or directory (os error 2)
rg: tests: No such file or directory (os error 2)
internal/bundler_tests/bundler_lower_test.go:2998:func TestLowerAsyncGenerator(t *testing.T) {
internal/bundler_tests/bundler_lower_test.go:3053: UnsupportedJSFeatures: compat.AsyncGenerator,
internal/bundler_tests/bundler_lower_test.go:3058:func TestLowerAsyncGeneratorNoAwait(t *testing.T) {
internal/bundler_tests/bundler_lower_test.go:3113: UnsupportedJSFeatures: compat.AsyncGenerator | compat.AsyncAwait,
internal/compat/js_table.go:67: AsyncGenerator
internal/compat/js_table.go:131: "async-generator": AsyncGenerator,
internal/compat/js_table.go:249: AsyncGenerator: {
internal/compat/js_table.go:250: // Note: The latest version of "Hermes" failed this test: Asynchronous Iterators: async generators
internal/compat/js_table.go:251: // Note: The latest version of "IE" failed this test: Asynchronous Iterators: async generators
internal/compat/js_table.go:252: // Note: The latest version of "Rhino" failed this test: Asynchronous Iterators: async generators
internal/bundler_tests/snapshots/snapshots_lower.txt:24: for (var iter = __forAwait(b), more, temp, error; more = !(temp = await iter.next()).done; more = !1) {
internal/bundler_tests/snapshots/snapshots_lower.txt:1177:TestLowerAsyncGenerator
internal/bundler_tests/snapshots/snapshots_lower.txt:1180: return __asyncGenerator(this, null, function* () {
internal/bundler_tests/snapshots/snapshots_lower.txt:1185: yield* __yieldStar(x);
internal/bundler_tests/snapshots/snapshots_lower.txt:1188: for (var iter = __forAwait(y), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:1202: for (var iter2 = __forAwait(y), more2, temp2, error2; more2 = !(temp2 = yield new __await(iter2.next())).done; more2 = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:1233: return __asyncGenerator(this, null, function* () {
internal/bundler_tests/snapshots/snapshots_lower.txt:1238: yield* __yieldStar(x);
internal/bundler_tests/snapshots/snapshots_lower.txt:1241: for (var iter = __forAwait(y), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:1255: for (var iter2 = __forAwait(y), more2, temp2, error2; more2 = !(temp2 = yield new __await(iter2.next())).done; more2 = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:1286: return __asyncGenerator(this, null, function* () {
internal/bundler_tests/snapshots/snapshots_lower.txt:1291: yield* __yieldStar(x);
internal/bundler_tests/snapshots/snapshots_lower.txt:1294: for (var iter = __forAwait(y), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:1308: for (var iter2 = __forAwait(y), more2, temp2, error2; more2 = !(temp2 = yield new __await(iter2.next())).done; more2 = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:1340: return __asyncGenerator(this, null, function* () {
internal/bundler_tests/snapshots/snapshots_lower.txt:1345: yield* __yieldStar(x);
internal/bundler_tests/snapshots/snapshots_lower.txt:1348: for (var iter = __forAwait(y), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:1362: for (var iter2 = __forAwait(y), more2, temp2, error2; more2 = !(temp2 = yield new __await(iter2.next())).done; more2 = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:1395: return __asyncGenerator(this, null, function* () {
internal/bundler_tests/snapshots/snapshots_lower.txt:1400: yield* __yieldStar(x);
internal/bundler_tests/snapshots/snapshots_lower.txt:1403: for (var iter = __forAwait(y), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:1417: for (var iter2 = __forAwait(y), more2, temp2, error2; more2 = !(temp2 = yield new __await(iter2.next())).done; more2 = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:1457:TestLowerAsyncGeneratorNoAwait
internal/bundler_tests/snapshots/snapshots_lower.txt:1460: return __asyncGenerator(this, null, function* () {
internal/bundler_tests/snapshots/snapshots_lower.txt:1465: yield* __yieldStar(x);
internal/bundler_tests/snapshots/snapshots_lower.txt:1468: for (var iter = __forAwait(y), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:1482: for (var iter2 = __forAwait(y), more2, temp2, error2; more2 = !(temp2 = yield new __await(iter2.next())).done; more2 = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:1513: return __asyncGenerator(this, null, function* () {
internal/bundler_tests/snapshots/snapshots_lower.txt:1518: yield* __yieldStar(x);
internal/bundler_tests/snapshots/snapshots_lower.txt:1521: for (var iter = __forAwait(y), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:1535: for (var iter2 = __forAwait(y), more2, temp2, error2; more2 = !(temp2 = yield new __await(iter2.next())).done; more2 = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:1566: return __asyncGenerator(this, null, function* () {
internal/bundler_tests/snapshots/snapshots_lower.txt:1571: yield* __yieldStar(x);
internal/bundler_tests/snapshots/snapshots_lower.txt:1574: for (var iter = __forAwait(y), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:1588: for (var iter2 = __forAwait(y), more2, temp2, error2; more2 = !(temp2 = yield new __await(iter2.next())).done; more2 = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:1620: return __asyncGenerator(this, null, function* () {
internal/bundler_tests/snapshots/snapshots_lower.txt:1625: yield* __yieldStar(x);
internal/bundler_tests/snapshots/snapshots_lower.txt:1628: for (var iter = __forAwait(y), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:1642: for (var iter2 = __forAwait(y), more2, temp2, error2; more2 = !(temp2 = yield new __await(iter2.next())).done; more2 = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:1675: return __asyncGenerator(this, null, function* () {
internal/bundler_tests/snapshots/snapshots_lower.txt:1680: yield* __yieldStar(x);
internal/bundler_tests/snapshots/snapshots_lower.txt:1683: for (var iter = __forAwait(y), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:1697: for (var iter2 = __forAwait(y), more2, temp2, error2; more2 = !(temp2 = yield new __await(iter2.next())).done; more2 = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:2077: for (var iter = __forAwait(y), more, temp, error; more = !(temp = yield iter.next()).done; more = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:2094: for (var iter = __forAwait(y), more, temp, error; more = !(temp = yield iter.next()).done; more = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:2111: for (var iter = __forAwait(y), more, temp, error; more = !(temp = yield iter.next()).done; more = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:2128: for (var iter = __forAwait(y), more, temp, error; more = !(temp = yield iter.next()).done; more = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:2145: label: for (var iter = __forAwait(y), more, temp, error; more = !(temp = yield iter.next()).done; more = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:2162: label: for (var iter = __forAwait(y), more, temp, error; more = !(temp = yield iter.next()).done; more = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:2185: for (var iter = __forAwait(y), more, temp, error; more = !(temp = await iter.next()).done; more = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:2202: for (var iter = __forAwait(y), more, temp, error; more = !(temp = await iter.next()).done; more = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:2219: for (var iter = __forAwait(y), more, temp, error; more = !(temp = await iter.next()).done; more = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:2236: for (var iter = __forAwait(y), more, temp, error; more = !(temp = await iter.next()).done; more = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:2253: label: for (var iter = __forAwait(y), more, temp, error; more = !(temp = await iter.next()).done; more = false) {
internal/bundler_tests/snapshots/snapshots_lower.txt:2270: label: for (var iter = __forAwait(y), more, temp, error; more = !(temp = await iter.next()).done; more = false) {
internal/bundler/bundler.go:2965: fixInvalidUnsupportedJSFeatureOverrides(options, compat.AsyncAwait, compat.AsyncGenerator|compat.ForAwait|compat.TopLevelAwait)
internal/bundler/bundler.go:2966: fixInvalidUnsupportedJSFeatureOverrides(options, compat.Generator, compat.AsyncGenerator)
internal/runtime/runtime.go:38: // __asyncGenerator
internal/runtime/runtime.go:412: // These help for lowering async generator functions
internal/runtime/runtime.go:417: export var __asyncGenerator = (__this, __arguments, generator) => {
internal/runtime/runtime.go:437: export var __yieldStar = value => {
internal/runtime/runtime.go:469: export var __forAwait = (obj, it, method) =>
internal/js_parser/js_parser.go:10832: // Returning undefined is implicit except when inside an async generator
internal/js_parser/js_parser.go:11062: (p.options.unsupportedJSFeatures.Has(compat.AsyncGenerator) && p.fnOrArrowDataVisit.isGenerator) {
internal/js_parser/js_parser.go:11072: // Lower "for await" if it's unsupported if it's in a lowered async generator
internal/js_parser/js_parser.go:11074: (p.options.unsupportedJSFeatures.Has(compat.AsyncGenerator) && p.fnOrArrowDataVisit.isGenerator)) {
internal/js_parser/js_parser.go:14765: // "yield* x" turns into "yield* __yieldStar(x)" when lowering async generator functions
internal/js_parser/js_parser.go:14766: if e.IsStar && p.options.unsupportedJSFeatures.Has(compat.AsyncGenerator) && p.fnOrArrowDataVisit.isGenerator {
internal/js_parser/js_parser.go:14767: e.ValueOrNil = p.callRuntime(expr.Loc, "__yieldStar", []js_ast.Expr{e.ValueOrNil})
internal/js_parser/js_parser_lower.go:72: case compat.AsyncGenerator:
internal/js_parser/js_parser_lower.go:73: name = "async generator functions"
internal/js_parser/js_parser_lower.go:249: feature = compat.AsyncGenerator
internal/js_parser/js_parser_lower.go:343: // Lower async functions and async generator functions
internal/js_parser/js_parser_lower.go:344: if *isAsync && (p.options.unsupportedJSFeatures.Has(compat.AsyncAwait) || (isGenerator != nil && *isGenerator && p.options.unsupportedJSFeatures.Has(compat.AsyncGenerator))) {
internal/js_parser/js_parser_lower.go:478: // "async function* foo(a, b) { stmts }" => "function foo(a, b) { return __asyncGenerator(this, null, function* () { stmts }) }"
internal/js_parser/js_parser_lower.go:479: name = "__asyncGenerator"
internal/js_parser/js_parser_lower.go:1050: // "await x" turns into "yield __await(x)" when lowering async generator functions
internal/js_parser/js_parser_lower.go:1051: if p.fnOrArrowDataVisit.isGenerator && (p.options.unsupportedJSFeatures.Has(compat.AsyncAwait) || p.options.unsupportedJSFeatures.Has(compat.AsyncGenerator)) {
internal/js_parser/js_parser_lower.go:1078: // for (var iter = __forAwait(y), more, temp, error; more = !(temp = await iter.next()).done; more = false) {
internal/js_parser/js_parser_lower.go:1166: ValueOrNil: p.callRuntime(loc, "__forAwait", []js_ast.Expr{loop.Value})},
internal/js_parser/js_parser_lower.go:1892: (p.options.unsupportedJSFeatures.Has(compat.AsyncGenerator) && p.fnOrArrowDataVisit.isGenerator)))) {
internal/js_parser/js_parser_lower_test.go:785:func TestAsyncGeneratorFns(t *testing.T) {
internal/js_parser/js_parser_lower_test.go:802: expectParseErrorWithUnsupportedFeatures(t, compat.AsyncGenerator, "async function* gen() {}", err)
internal/js_parser/js_parser_lower_test.go:803: expectParseErrorWithUnsupportedFeatures(t, compat.AsyncGenerator, "(async function* () {});", err)
internal/js_parser/js_parser_lower_test.go:804: expectParseErrorWithUnsupportedFeatures(t, compat.AsyncGenerator, "({ async *foo() {} });", err)
sed -n '1,260p' internal/runtime/runtime.go
Chunk ID: 24f5a9
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 2542
Output:
package runtime
// This is esbuild's runtime code. It contains helper functions that are
// automatically injected into output files to implement certain features. For
// example, the "**" operator is replaced with a call to "__pow" when targeting
// ES2015. Tree shaking automatically removes unused code from the runtime.
import (
"[code-host]/evanw/esbuild/internal/compat"
"[code-host]/evanw/esbuild/internal/logger"
)
// The runtime source is always at a special index. The index is always zero
// but this constant is always used instead to improve readability and ensure
// all code that references this index can be discovered easily.
const SourceIndex = uint32(0)
func Source(unsupportedJSFeatures compat.JSFeature) logger.Source {
// Note: These helper functions used to be named similar things to the helper
// functions from the TypeScript compiler. However, people sometimes use these
// two projects in combination and TypeScript's implementation of these helpers
// causes name collisions. Some examples:
//
// * The "tslib" library will overwrite esbuild's helper functions if the bundled
// code is run in the global scope: https://[code-host]/evanw/esbuild/issues/1102
//
// * Running the TypeScript compiler on esbuild's output to convert ES6 to ES5
// will also overwrite esbuild's helper functions because TypeScript doesn't
// change the names of its helper functions to avoid name collisions:
// https://[code-host]/microsoft/TypeScript/issues/43296
//
// These can both be considered bugs in TypeScript. However, they are unlikely
// to be fixed and it's simplest to just avoid using the same names to avoid
// these bugs. Forbidden names (from "tslib"):
//
// __assign
// __asyncDelegator
// __asyncGenerator
// __asyncValues
// __await
// __awaiter
// __classPrivateFieldGet
// __classPrivateFieldSet
// __createBinding
// __decorate
// __exportStar
// __extends
// __generator
// __importDefault
// __importStar
// __makeTemplateObject
// __metadata
// __param
// __read
// __rest
// __spread
// __spreadArray
// __spreadArrays
// __values
//
// Note: The "__objRest" function has a for-of loop which requires ES6, but
// transforming destructuring to ES5 isn't even supported so it's ok.
text := `
var __create = Object.create
var __freeze = Object.freeze
var __defProp = Object.defineProperty
var __defProps = Object.defineProperties
var __getOwnPropDesc = Object.getOwnPropertyDescriptor // Note: can return "undefined" due to a Safari bug
var __getOwnPropDescs = Object.getOwnPropertyDescriptors
var __getOwnPropNames = Object.getOwnPropertyNames
var __getOwnPropSymbols = Object.getOwnPropertySymbols
var __getProtoOf = Object.getPrototypeOf
var __hasOwnProp = Object.prototype.hasOwnProperty
var __propIsEnum = Object.prototype.propertyIsEnumerable
var __reflectGet = Reflect.get
var __reflectSet = Reflect.set
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for('Symbol.' + name)
var __typeError = msg => { throw TypeError(msg) }
export var __pow = Math.pow
var __defNormalProp = (obj, key, value) => key in obj
? __defProp(obj, key, {enumerable: true, configurable: true, writable: true, value})
: obj[key] = value
export var __spreadValues = (a, b) => {
for (var prop in b ||= {})
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop])
if (__getOwnPropSymbols)
`
// Avoid "of" when not using ES6
if !unsupportedJSFeatures.Has(compat.ForOf) {
text += `
for (var prop of __getOwnPropSymbols(b)) {
`
} else {
text += `
for (var props = __getOwnPropSymbols(b), i = 0, n = props.length, prop; i < n; i++) {
prop = props[i]
`
}
text += `
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop])
}
return a
}
export var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b))
// Update the "name" property on the function or class for "--keep-names"
export var __name = (target, value) => __defProp(target, 'name', { value, configurable: true })
// This fallback "require" function exists so that "typeof require" can
// naturally be "function" even in non-CommonJS environments since esbuild
// emulates a CommonJS environment (issue #1202). However, people want this
// shim to fall back to "globalThis.require" even if it's defined later
// (including property accesses such as "require.resolve") so we need to
// use a proxy (issue #1614).
export var __require =
/* @__PURE__ */ (x =>
typeof require !== 'undefined' ? require :
typeof Proxy !== 'undefined' ? new Proxy(x, {
get: (a, b) => (typeof require !== 'undefined' ? require : a)[b]
}) : x
)(function(x) {
if (typeof require !== 'undefined') return require.apply(this, arguments)
throw Error('Dynamic require of "' + x + '" is not supported')
})
// This is used for glob imports
export var __glob = map => path => {
var fn = map[path]
if (fn) return fn()
throw new Error('Module not found in bundle: ' + path)
}
// For object rest patterns
export var __restKey = key => typeof key === 'symbol' ? key : key + ''
export var __objRest = (source, exclude) => {
var target = {}
for (var prop in source)
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
target[prop] = source[prop]
if (source != null && __getOwnPropSymbols)
`
// Avoid "of" when not using ES6
if !unsupportedJSFeatures.Has(compat.ForOf) {
text += `
for (var prop of __getOwnPropSymbols(source)) {
`
} else {
text += `
for (var props = __getOwnPropSymbols(source), i = 0, n = props.length, prop; i < n; i++) {
prop = props[i]
`
}
text += `
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
target[prop] = source[prop]
}
return target
}
// This is for lazily-initialized ESM code. This has two implementations, a
// compact one for minified code and a verbose one that generates friendly
// names in V8's profiler and in stack traces.
export var __esm = (fn, res) => function __init() {
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res
}
export var __esmMin = (fn, res) => () => (fn && (res = fn(fn = 0)), res)
// Wraps a CommonJS closure and returns a require() function. This has two
// implementations, a compact one for minified code and a verbose one that
// generates friendly names in V8's profiler and in stack traces.
export var __commonJS = (cb, mod) => function __require() {
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = {exports: {}}).exports, mod), mod.exports
}
export var __commonJSMin = (cb, mod) => () => (mod || cb((mod = {exports: {}}).exports, mod), mod.exports)
// Used to implement ESM exports both for "require()" and "import * as"
export var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true })
}
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === 'object' || typeof from === 'function')
`
// Avoid "let" when not using ES6
if !unsupportedJSFeatures.Has(compat.ForOf) && !unsupportedJSFeatures.Has(compat.ConstAndLet) {
text += `
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable })
`
} else {
text += `
for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
key = keys[i]
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: (k => from[k]).bind(null, key), enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable })
}
`
}
text += `
return to
}
// This is used to implement "export * from" statements. It copies properties
// from the imported module to the current module's ESM export object. If the
// current module is an entry point and the target format is CommonJS, we
// also copy the properties to "module.exports" in addition to our module's
// internal ESM export object.
export var __reExport = (target, mod, secondTarget) => (
__copyProps(target, mod, 'default'),
secondTarget && __copyProps(secondTarget, mod, 'default')
)
// Converts the module from CommonJS to ESM. When in node mode (i.e. in an
// ".mjs" file, package.json has "type: module", or the "__esModule" export
// in the CommonJS file is falsy or missing), the "default" property is
// overridden to point to the original CommonJS exports object instead.
export var __toESM = (mod, isNodeMode, target) => (
target = mod != null ? __create(__getProtoOf(mod)) : {},
__copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule
? __defProp(target, 'default', { value: mod, enumerable: true })
: target,
mod)
)
// Converts the module from ESM to CommonJS. This clones the input module
// object with the addition of a non-enumerable "__esModule" property set
// to "true", which overwrites any existing export named "__esModule".
export var __toCommonJS = mod => __copyProps(__defProp({}, '__esModule', { value: true }), mod)
// For TypeScript experimental decorators
// - kind === undefined: class
// - kind === 1: method, parameter
// - kind === 2: field
export var __decorateClass = (decorators, target, key, kind) => {
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target
for (var i = decorators.length - 1, decorator; i >= 0; i--)
if (decorator = decorators[i])
result = (kind ? decorator(target, key, result) : decorator(result)) || result
if (kind && result) __defProp(target, key, result)
return result
}
git status --short
Chunk ID: f6ae69 Wall time: 0.0000 seconds Process exited with code 128 Original token count: 18 Output: fatal: not a git repository (or any of the parent directories): .git
sed -n '400,485p' internal/runtime/runtime.go
Chunk ID: 228179
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 650
Output:
var rejected = value => {
try {
step(generator.throw(value))
} catch (e) {
reject(e)
}
}
var step = x => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected)
step((generator = generator.apply(__this, __arguments)).next())
})
}
// These help for lowering async generator functions
export var __await = function (promise, isYieldStar) {
this[0] = promise
this[1] = isYieldStar
}
export var __asyncGenerator = (__this, __arguments, generator) => {
var resume = (k, v, yes, no) => {
try {
var x = generator[k](v), isAwait = (v = x.value) instanceof __await, done = x.done
Promise.resolve(isAwait ? v[0] : v)
.then(y => isAwait
? resume(k === 'return' ? k : 'next', v[1] ? { done: y.done, value: y.value } : y, yes, no)
: yes({ value: y, done }))
.catch(e => resume('throw', e, yes, no))
} catch (e) {
no(e)
}
}, method = k => it[k] = x => new Promise((yes, no) => resume(k, x, yes, no)), it = {}
return generator = generator.apply(__this, __arguments),
it[__knownSymbol('asyncIterator')] = () => it,
method('next'),
method('throw'),
method('return'),
it
}
export var __yieldStar = value => {
var obj = value[__knownSymbol('asyncIterator')], isAwait = false, method, it = {}
if (obj == null) {
obj = value[__knownSymbol('iterator')]()
method = k => it[k] = x => obj[k](x)
} else {
obj = obj.call(value)
method = k => it[k] = v => {
if (isAwait) {
isAwait = false
if (k === 'throw') throw v
return v
}
isAwait = true
return {
done: false,
value: new __await(new Promise(resolve => {
var x = obj[k](v)
if (!(x instanceof Object)) __typeError('Object expected')
resolve(x)
}), 1),
}
}
}
return it[__knownSymbol('iterator')] = () => it,
method('next'),
'throw' in obj ? method('throw') : it.throw = x => { throw x },
'return' in obj && method('return'),
it
}
// This helps for lowering for-await loops
export var __forAwait = (obj, it, method) =>
(it = obj[__knownSymbol('asyncIterator')])
? it.call(obj)
: (obj = obj[__knownSymbol('iterator')](),
it = {},
method = (key, fn) =>
(fn = obj[key]) && (it[key] = arg =>
new Promise((yes, no, done) => (
arg = fn.call(obj, arg),
done = arg.done,
Promise.resolve(arg.value)
.then(value => yes({ value, done }), no)
))),
method('next'),
method('return'),
it)
sed -n '2980,3130p' internal/bundler_tests/bundler_lower_test.go
Chunk ID: d8a689
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 949
Output:
files: map[string]string{
"/entry.ts": `
namespace ns {
export let a = b
using c = d
export let e = f
}
`,
},
entryPaths: []string{"/entry.ts"},
options: config.Options{
Mode: config.ModePassThrough,
AbsOutputDir: "/out",
UnsupportedJSFeatures: compat.Using,
},
})
}
func TestLowerAsyncGenerator(t *testing.T) {
lower_suite.expectBundled(t, bundled{
files: map[string]string{
"/entry.ts": `
async function* foo() {
yield
yield x
yield *x
await using x = await y
for await (let x of y) {}
for await (await using x of y) {}
}
foo = async function* () {
yield
yield x
yield *x
await using x = await y
for await (let x of y) {}
for await (await using x of y) {}
}
foo = { async *bar () {
yield
yield x
yield *x
await using x = await y
for await (let x of y) {}
for await (await using x of y) {}
} }
class Foo { async *bar () {
yield
yield x
yield *x
await using x = await y
for await (let x of y) {}
for await (await using x of y) {}
} }
Foo = class { async *bar () {
yield
yield x
yield *x
await using x = await y
for await (let x of y) {}
for await (await using x of y) {}
} }
async function bar() {
await using x = await y
for await (let x of y) {}
for await (await using x of y) {}
}
`,
},
entryPaths: []string{"/entry.ts"},
options: config.Options{
Mode: config.ModePassThrough,
AbsOutputDir: "/out",
UnsupportedJSFeatures: compat.AsyncGenerator,
},
})
}
func TestLowerAsyncGeneratorNoAwait(t *testing.T) {
lower_suite.expectBundled(t, bundled{
files: map[string]string{
"/entry.ts": `
async function* foo() {
yield
yield x
yield *x
await using x = await y
for await (let x of y) {}
for await (await using x of y) {}
}
foo = async function* () {
yield
yield x
yield *x
await using x = await y
for await (let x of y) {}
for await (await using x of y) {}
}
foo = { async *bar () {
yield
yield x
yield *x
await using x = await y
for await (let x of y) {}
for await (await using x of y) {}
} }
class Foo { async *bar () {
yield
yield x
yield *x
await using x = await y
for await (let x of y) {}
for await (await using x of y) {}
} }
Foo = class { async *bar () {
yield
yield x
yield *x
await using x = await y
for await (let x of y) {}
for await (await using x of y) {}
} }
async function bar() {
await using x = await y
for await (let x of y) {}
for await (await using x of y) {}
}
`,
},
entryPaths: []string{"/entry.ts"},
options: config.Options{
Mode: config.ModePassThrough,
AbsOutputDir: "/out",
UnsupportedJSFeatures: compat.AsyncGenerator | compat.AsyncAwait,
},
})
}
// https://[code-host]/evanw/esbuild/issues/3768
func TestJavaScriptDecoratorsBundleIssue3768(t *testing.T) {
lower_suite.expectBundled(t, bundled{
files: map[string]string{
"/base-instance-method.js": `class Foo { @dec foo() { return Foo } }`,
"/base-instance-field.js": `class Foo { @dec foo = Foo }`,
"/base-instance-accessor.js": `class Foo { @dec accessor foo = Foo }`,
"/base-static-method.js": `class Foo { @dec static foo() { return Foo } }`,
"/base-static-field.js": `class Foo { @dec static foo = Foo }`,
"/base-static-accessor.js": `class Foo { @dec static accessor foo = Foo }`,
"/derived-instance-method.js": `class Foo extends Bar { @dec foo() { return Foo } }`,
rg -n "expectBundled|snapshots_lower|TestLowerAsyncGenerator|runtime" internal/bundler_tests internal/js_parser -g '*.go'
Chunk ID: 5c33ba
Wall time: 0.0001 seconds
Process exited with code 0
Original token count: 27201
Output:
Total output lines: 1143
internal/bundler_tests/bundler_dce_test.go:16: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:41: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:66: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:91: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:116: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:141: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:166: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:195: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:224: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:252: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:280: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:305: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:330: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:355: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:380: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:405: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:430: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:462: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:494: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:525: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:561: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:593: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:625: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:656: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:692: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:726: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:751: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:775: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:804: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:829: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:855: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:896: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:928: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:968: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1000: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1038: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1055: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1072: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1093: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1114: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1135: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1153: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1226: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1251: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1279: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1316: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1409: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1434: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1521: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1565: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1594: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1618: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1659: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1698: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1737: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1767: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1828: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1846: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1864: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1882: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1908: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1941: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1958: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:1977: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:2081: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:2151: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:2171: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:2195: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:2214: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:2259: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:2305: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:2329: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:2348:// Calls to the runtime "__publicField" function are not considered side effects
internal/bundler_tests/bundler_dce_test.go:2350: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:2384: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:2420: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:2454: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:2635: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:2770: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:2841: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:2861: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:3035: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:3184: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:3213: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:3273: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:3399: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:3491: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:3548: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:3590: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:3633: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:3650: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:3710: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:3774: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:3804: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:3835: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:3865: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:3895: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:3925: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:3955: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:3985: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4015: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4043: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4072: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4118: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4258: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4391: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4524: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4578: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4606: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4648: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4676: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4703: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4737: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4776: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4800: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4833: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4863: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4884: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4917: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4936: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4952: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_dce_test.go:4982: dce_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_glob_test.go:14: glob_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_glob_test.go:40: glob_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_glob_test.go:67: glob_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_glob_test.go:94: glob_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_glob_test.go:122: glob_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_glob_test.go:150: glob_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_glob_test.go:179: glob_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_glob_test.go:209: glob_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_glob_test.go:224: glob_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_glob_test.go:259: glob_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:19: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:36: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:64: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:109: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:150: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:191: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:232: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:272: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:294: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:316: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:337: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:359: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:384: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:405: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:456: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:507: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:558: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:608: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:650: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:692: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:733: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:757: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:781: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:826: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:859: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:875: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:899: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:936: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1012: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1088: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1154: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1220: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1272: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1324: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1369: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1414: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1459: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1504: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1535: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1567: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1588: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1612: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1635: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1664: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1692: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1734: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1776: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1824: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1872: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1898: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1915: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1946: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:1967: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2002: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2022: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2042: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2062: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2088: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2114: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2140: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2166: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2191: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2219: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2242: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2263: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2294: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2326: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2344: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2367: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2390: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2419: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2443: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2510: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2578: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2646: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2710: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2759: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2808: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2979: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:2998:func TestLowerAsyncGenerator(t *testing.T) {
internal/bundler_tests/bundler_lower_test.go:2999: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:3058:func TestLowerAsyncGeneratorNoAwait(t *testing.T) {
internal/bundler_tests/bundler_lower_test.go:3059: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:3120: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_lower_test.go:3149: lower_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_importphase_test.go:14: importphase_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_importphase_test.go:46: importphase_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_importphase_test.go:85: importphase_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_importphase_test.go:124: importphase_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_importphase_test.go:158: importphase_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_importphase_test.go:192: importphase_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_importphase_test.go:226: importphase_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_importphase_test.go:258: importphase_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_importphase_test.go:297: importphase_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_importphase_test.go:336: importphase_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_importphase_test.go:370: importphase_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_importphase_test.go:404: importphase_suite.expectBundled(t, bundled{
internal/bundler_t…17201 tokens truncated…bundler_tests/bundler_default_test.go:2157: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2208: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2241: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2286: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2321: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2346: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2398: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2423: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2457: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2476: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2495: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2514: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2533: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2552: default_suite.expectBundledUnix(t, bundled{
internal/bundler_tests/bundler_default_test.go:2569: default_suite.expectBundledWindows(t, bundled{
internal/bundler_tests/bundler_default_test.go:2588: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2607: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2631: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2666: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2688: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2750: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2783: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2817: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2849: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2882: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2919: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2946: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2975: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:2996: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3015: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3041: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3058: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3075: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3092: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3109: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3124: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3142: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3157: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3175: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3197: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3223: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3249: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3264: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3281: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3298: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3319: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3335: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3349: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3386: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3423: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3460: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3497: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3534: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3562: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3583: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3604: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3625: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3725: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3744: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3763: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3783: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3803: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3876: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3929: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3946: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3962: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3978: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:3998: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4015: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4035: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4052: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4069: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4086: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4101: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4116: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4133: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4150: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4170: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4187: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4207: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4224: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4267: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4296: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4325: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4355: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4449: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4532: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4560: default_suite.expectBundledUnix(t, bundled{
internal/bundler_tests/bundler_default_test.go:4663: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4717: default_suite.expectBundledUnix(t, bundled{
internal/bundler_tests/bundler_default_test.go:4732: default_suite.expectBundledWindows(t, bundled{
internal/bundler_tests/bundler_default_test.go:4750: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4794: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4894: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4976: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:4999: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5025: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5052: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5091: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5126: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5175: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5194: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5215: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5256: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5291: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5321: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5378: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5433: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5467: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5511: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5583: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5638: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5675: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5758: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5789: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5824: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5854: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5879: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5906: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5933: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5954: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5975: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:5994: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6016: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6058: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6138: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6178: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6226: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6266: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6314: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6364: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6414: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6509: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6521: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6533: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6564: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6593: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6615: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6638: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6673: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6711: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6737: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6772: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6796: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6816: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6848: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6876: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6927: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6946: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:6975: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7018: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7058: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7114: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7174: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7195: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7220: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7246: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7266: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7293: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7338: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7370: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7395: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7415: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7437: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7545: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7563: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7582: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7607: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7628: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7656: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7685: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7733: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7782: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7799: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7822: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7855: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7885: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7911: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7947: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:7985: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:8036: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:8066: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:8155: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:8202: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:8235: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:8300: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:8334: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:8377: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:8397: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:8563: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:8587: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:8623: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:8662: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:8683: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:8743: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:8784: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:8815: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:8857: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:8915: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:8944: "react/jsx-dev-runtime": true,
internal/bundler_tests/bundler_default_test.go:8953: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:9013: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:9074: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:9096: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:9122: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:9150: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:9187: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:9209: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:9236: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:9256: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:9275: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:9295: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:9315: default_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:9343: css_suite.expectBundled(t, bundled{
internal/bundler_tests/bundler_default_test.go:9383: css_suite.expectBundled(t, bundled{
rg --files | rg 'runtime|lower|compat|snapshots|js_table'
Chunk ID: 9ddafb Wall time: 0.0000 seconds Process exited with code 0 Original token count: 291 Output: pkg/cli/cli_js_table.go pkg/api/api_js_table.go internal/bundler_tests/bundler_lower_test.go internal/bundler_tests/snapshots/snapshots_dce.txt internal/bundler_tests/snapshots/snapshots_splitting.txt internal/bundler_tests/snapshots/snapshots_lower.txt internal/bundler_tests/snapshots/snapshots_yarnpnp.txt internal/bundler_tests/snapshots/snapshots_css.txt internal/bundler_tests/snapshots/snapshots_packagejson.txt internal/bundler_tests/snapshots/snapshots_importphase.txt internal/bundler_tests/snapshots/snapshots_ts.txt internal/bundler_tests/snapshots/snapshots_default.txt internal/bundler_tests/snapshots/snapshots_tsconfig.txt internal/bundler_tests/snapshots/snapshots_glob.txt internal/bundler_tests/snapshots/snapshots_importstar.txt internal/bundler_tests/snapshots/snapshots_loader.txt internal/bundler_tests/snapshots/snapshots_importstar_ts.txt internal/js_parser/js_parser_lower_class.go internal/js_parser/js_parser_lower.go internal/js_parser/js_parser_lower_test.go internal/compat/compat.go internal/compat/css_table.go internal/compat/js_table.go internal/compat/compat_test.go internal/runtime/runtime.go internal/runtime/runtime_test.go
sed -n '1,240p' internal/runtime/runtime_test.go
Chunk ID: 9c0fec
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 228
Output:
package runtime_test
import (
"testing"
"[code-host]/evanw/esbuild/internal/compat"
"[code-host]/evanw/esbuild/internal/config"
"[code-host]/evanw/esbuild/internal/js_parser"
"[code-host]/evanw/esbuild/internal/logger"
"[code-host]/evanw/esbuild/internal/runtime"
)
func TestUnsupportedFeatures(t *testing.T) {
for key, feature := range compat.StringToJSFeature {
t.Run(key, func(t *testing.T) {
source := runtime.Source(feature)
log := logger.NewDeferLog(logger.DeferLogAll, nil)
js_parser.Parse(log, source, js_parser.OptionsFromConfig(&config.Options{
UnsupportedJSFeatures: feature,
TreeShaking: true,
}))
if log.HasErrors() {
msgs := "Internal error: failed to parse runtime:\n"
for _, msg := range log.Done() {
msgs += msg.String(logger.OutputOptions{IncludeSource: true}, logger.TerminalInfo{})
}
t.Fatal(msgs[:len(msgs)-1])
}
})
}
}
rg -n "snapshots|UPDATE|ESBUILD" internal/*_tests internal -g '*_test.go'
Chunk ID: c02520
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 298
Output:
internal/bundler_tests/bundler_test.go:4:// "snapshots" directory. This allows test results to be updated easily without
internal/bundler_tests/bundler_test.go:6:// "UPDATE_SNAPSHOTS=1 make test" and commit the updated values. Make sure to
internal/bundler_tests/bundler_test.go:225:const snapshotsDir = "snapshots"
internal/bundler_tests/bundler_test.go:238: s.path = snapshotsDir + "/snapshots_" + s.name + ".txt"
internal/bundler_tests/bundler_test.go:260: _, globalUpdateSnapshots = os.LookupEnv("UPDATE_SNAPSHOTS")
internal/bundler_tests/bundler_test.go:280: os.Mkdir(snapshotsDir, 0755)
internal/bundler_tests/bundler_test.go:4:// "snapshots" directory. This allows test results to be updated easily without
internal/bundler_tests/bundler_test.go:6:// "UPDATE_SNAPSHOTS=1 make test" and commit the updated values. Make sure to
internal/bundler_tests/bundler_test.go:225:const snapshotsDir = "snapshots"
internal/bundler_tests/bundler_test.go:238: s.path = snapshotsDir + "/snapshots_" + s.name + ".txt"
internal/bundler_tests/bundler_test.go:260: _, globalUpdateSnapshots = os.LookupEnv("UPDATE_SNAPSHOTS")
internal/bundler_tests/bundler_test.go:280: os.Mkdir(snapshotsDir, 0755)
go test ./internal/runtime
Chunk ID: 9e0fda Wall time: 1.6778 seconds Process exited with code 0 Original token count: 14 Output: ok [code-host]/evanw/esbuild/internal/runtime 0.079s
go test ./cmd/...
Chunk ID: f29fa3 Wall time: 1.8570 seconds Process exited with code 0 Original token count: 15 Output: ? [code-host]/evanw/esbuild/cmd/esbuild [no test files]
cat >/tmp/ag-case.js <<'EOF'
let trace=[];
let tick;
const gate = new Promise(r => tick = r);
async function* inner(){
trace.push('inner start');
try {
trace.push('before yield await');
const back = yield await gate.then(() => (trace.push('await done'), 'first'));
trace.push('after first ' + back);
yield 'second';
} finally {
trace.push('finally before cleanup');
const back = yield 'cleanup';
trace.push('finally after cleanup ' + back);
}
}
async function* outer(){
trace.push('outer start');
yield* inner();
trace.push('outer after yieldstar');
}
async function main(){
let it=outer();
trace.push('before calls');
let p1=it.next();
trace.push('after next1');
let p2=it.return('done');
trace.push('after return');
p1.then(x=>trace.push('p1 '+JSON.stringify(x)), e=>trace.push('p1err '+e));
p2.then(x=>trace.push('p2 '+JSON.stringify(x)), e=>trace.push('p2err '+e));
trace.push('before resolve');
tick();
trace.push('after resolve');
await Promise.allSettled([p1,p2]);
trace.push('after all');
console.log(JSON.stringify(trace));
}
main();
EOF
node /tmp/ag-case.jsChunk ID: c8c1f9
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 66
Output:
["before calls","outer start","inner start","before yield await","after next1","after return","before resolve","after resolve","await done","p1 {\"value\":\"first\",\"done\":false}","finally before cleanup","p2 {\"value\":\"cleanup\",\"done\":false}","after all"]
go run ./cmd/esbuild /tmp/ag-case.js --bundle --target=es2017 --format=cjs --outfile=/tmp/ag-case.out.js && node /tmp/ag-case.out.js
Chunk ID: 3028b4
Wall time: 0.0813 seconds
Process exited with code 0
Original token count: 70
Output:
../tmp/ag-case.out.js 3.1kb
⚡ Done in 1ms
["before calls","outer start","inner start","before yield await","after next1","after return","before resolve","after resolve","p2err TypeError: Iterator result done is not an object","await done","p1 {\"done\":true}","after all"]
node - <<'EOF'
async function* g(){ yield Promise.resolve(1); }
g().next().then(console.log)
EOFChunk ID: 59c70e
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 7
Output:
{ value: 1, done: false }
node - <<'EOF'
let t=[]; async function* g(){t.push('start'); let x=yield 'a'; t.push('after '+x); yield 'b'}; let it=g(); t.push('before'); let p1=it.next(); t.push('after p1'); let p2=it.next('X'); t.push('after p2'); p1.then(x=>t.push('p1 '+JSON.stringify(x))); p2.then(x=>t.push('p2 '+JSON.stringify(x))); Promise.resolve().then(()=>t.push('micro')); setTimeout(()=>console.log(t),0)
EOFChunk ID: e38944
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 37
Output:
[
'before',
'start',
'after p1',
'after p2',
'after X',
'micro',
'p1 {"value":"a","done":false}',
'p2 {"value":"b","done":false}'
]
node - <<'EOF'
let trace=[];let tick;const gate=new Promise(r=>tick=r);async function* g(){try{trace.push('try');let a=yield await gate.then(()=>{trace.push('await');return 'first'});trace.push('after '+a);yield 'second'}finally{trace.push('finally before');let b=yield 'cleanup';trace.push('finally after '+b)}};(async()=>{let it=g();let p1=it.next();let p2=it.next('two');let p3=it.return('done');let p4=it.next('after');for (let [n,p] of [['p1',p1],['p2',p2],['p3',p3],['p4',p4]]) p.then(x=>trace.push(n+' '+JSON.stringify(x)),e=>trace.push(n+'err '+e));tick();await Promise.allSettled([p1,p2,p3,p4]);console.log(JSON.stringify(trace))})()
EOFChunk ID: 1ef8ed
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 59
Output:
["try","await","after two","p1 {\"value\":\"first\",\"done\":false}","p2 {\"value\":\"second\",\"done\":false}","finally before","finally after after","p3 {\"value\":\"cleanup\",\"done\":false}","p4 {\"value\":\"done\",\"done\":true}"]
node - <<'EOF'
function* g(){try{yield 1}finally{console.log('finally'); let x=yield 'await'; console.log('after await',x); yield 'cleanup'}} let it=g(); console.log(it.next()); console.log(it.return('done')); console.log(it.return('X'));
let it2=g(); it2.next(); console.log('---'); console.log(it2.return('done')); console.log(it2.next('X'));
EOFChunk ID: 8e3d95
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 47
Output:
{ value: 1, done: false }
finally
{ value: 'await', done: false }
{ value: 'X', done: true }
---
finally
{ value: 'await', done: false }
after await X
{ value: 'cleanup', done: false }
node - <<'EOF'
function wrap(obj){let isAwait=false,it={}; let method=k=>it[k]=v=>{ if(isAwait){isAwait=false; console.log('handoff',k,v); if(k==='throw') throw v; return v } isAwait=true; console.log('call inner',k,v); return {done:false,value:'AWAIT '+k}}; it[Symbol.iterator]=()=>it; method('next'); method('return'); return it;}
function* g(){ try { let r=yield* wrap(); console.log('yieldstar result',r); return 'outerret'} finally {console.log('outer finally')} }
let it=g(); console.log('n1',it.next()); console.log('r',it.return('done')); console.log('after using next',it.next({done:false,value:'cleanup'}));
let it2=g(); console.log('---'); console.log('n1',it2.next()); console.log('r',it2.return('done')); console.log('after using return',it2.return({done:false,value:'cleanup'}));
EOFChunk ID: 12e8fb
Wall time: 0.0000 seconds
Process exited with code 1
Original token count: 197
Output:
call inner next undefined
n1 { done: false, value: 'AWAIT next' }
handoff return done
outer finally
[stdin]:2
function* g(){ try { let r=yield* wrap(); console.log('yieldstar result',r); return 'outerret'} finally {console.log('outer finally')} }
^
TypeError: Iterator result done is not an object
at g ([stdin]:2:35)
at g.return (<anonymous>)
at [stdin]:3:67
at runScriptInThisContext (node:internal/vm:209:10)
at node:internal/process/execution:446:12
at [stdin]-wrapper:6:24
at runScriptInContext (node:internal/process/execution:444:60)
at evalFunction (node:internal/process/execution:279:30)
at evalTypeScript (node:internal/process/execution:291:3)
at node:internal/main/eval_stdin:53:5
Node.js v22.23.0
node - <<'EOF'
function wrap(){let isAwait=false,it={}; let method=k=>it[k]=v=>{ if(isAwait){isAwait=false; console.log('handoff',k,v); if(k==='throw') throw v; return v } isAwait=true; console.log('call inner',k,v); return {done:false,value:'AWAIT '+k}}; it[Symbol.iterator]=()=>it; method('next'); method('return'); return it;}
function* g(){ try { let r=yield* wrap(); console.log('yieldstar result',r); return 'outerret'} finally {console.log('outer finally')} }
let it=g(); console.log('n1',it.next()); console.log('complete handoff',it.next({done:false,value:'first'})); console.log('r',it.return('done')); console.log('after using next',it.next({done:false,value:'cleanup'}));
let it2=g(); console.log('---'); console.log('n1',it2.next()); console.log('complete handoff',it2.next({done:false,value:'first'})); console.log('r',it2.return('done')); console.log('after using return',it2.return({done:false,value:'cleanup'}));
EOFChunk ID: a6f589
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 163
Output:
call inner next undefined
n1 { done: false, value: 'AWAIT next' }
handoff next { done: false, value: 'first' }
complete handoff { done: false, value: 'first' }
call inner return done
r { done: false, value: 'AWAIT return' }
handoff next { done: false, value: 'cleanup' }
after using next { done: false, value: 'cleanup' }
---
call inner next undefined
n1 { done: false, value: 'AWAIT next' }
handoff next { done: false, value: 'first' }
complete handoff { done: false, value: 'first' }
call inner return done
r { done: false, value: 'AWAIT return' }
handoff return { done: false, value: 'cleanup' }
after using return { done: false, value: 'cleanup' }
node - <<'EOF'
function wrap(){let isAwait=false,it={}; let method=k=>it[k]=v=>{ if(isAwait){isAwait=false; console.log('handoff',k,v); if(k==='throw') throw v; return v } isAwait=true; console.log('call inner',k,v); return {done:false,value:'AWAIT '+k}}; it[Symbol.iterator]=()=>it; method('next'); method('return'); return it;}
function* g(){ try { let r=yield* wrap(); console.log('yieldstar result',r); return 'outerret'} finally {console.log('outer finally')} }
for (let method of ['next','return']) { let it=g(); console.log('---'+method); console.log(it.next()); console.log(it.next({done:false,value:'first'})); console.log(it.return('done')); console.log(it[method]({done:true,value:'innerdone'})); }
EOFChunk ID: 791017
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 161
Output:
---next
call inner next undefined
{ done: false, value: 'AWAIT next' }
handoff next { done: false, value: 'first' }
{ done: false, value: 'first' }
call inner return done
{ done: false, value: 'AWAIT return' }
handoff next { done: true, value: 'innerdone' }
yieldstar result innerdone
outer finally
{ value: 'outerret', done: true }
---return
call inner next undefined
{ done: false, value: 'AWAIT next' }
handoff next { done: false, value: 'first' }
{ done: false, value: 'first' }
call inner return done
{ done: false, value: 'AWAIT return' }
handoff return { done: true, value: 'innerdone' }
outer finally
{ value: 'innerdone', done: true }
node - <<'EOF'
async function* inner(){ yield 'a'; return 'innerret' } async function* outer(){ let r=yield* inner(); console.log('r',r); return 'outerret' } (async()=>{let it=outer(); console.log(await it.next()); console.log(await it.return('done'));})()
EOFChunk ID: ff55bb
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 15
Output:
{ value: 'a', done: false }
{ value: 'done', done: true }
node - <<'EOF'
function wrap(){let isAwait=false,it={}; let method=k=>it[k]=v=>{ if(isAwait){isAwait=false; console.log('handoff',k,v); if(k==='throw') throw v; return v } isAwait=true; console.log('call inner',k,v); return {done:false,value:'AWAIT '+k}}; it[Symbol.iterator]=()=>it; method('next'); method('throw'); return it;}
function* g(){ try { let r=yield* wrap(); console.log('yieldstar result',r); return 'outerret'} catch(e){ console.log('outer catch', e); yield 'outer recovery' } }
for (let method of ['next','throw']) { let it=g(); console.log('---'+method); console.log(it.next()); console.log(it.next({done:false,value:'first'})); console.log(it.throw('err')); try{console.log(it[method]({done:false,value:'recovery'}));}catch(e){console.log('caught',e)} }
EOFChunk ID: feeaa5
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 159
Output:
---next
call inner next undefined
{ done: false, value: 'AWAIT next' }
handoff next { done: false, value: 'first' }
{ done: false, value: 'first' }
call inner throw err
{ done: false, value: 'AWAIT throw' }
handoff next { done: false, value: 'recovery' }
{ done: false, value: 'recovery' }
---throw
call inner next undefined
{ done: false, value: 'AWAIT next' }
handoff next { done: false, value: 'first' }
{ done: false, value: 'first' }
call inner throw err
{ done: false, value: 'AWAIT throw' }
handoff throw { done: false, value: 'recovery' }
outer catch { done: false, value: 'recovery' }
{ value: 'outer recovery', done: false }
node - <<'EOF'
async function* g(){ return Promise.resolve(1) } async function* h(){ yield Promise.resolve(2) } (async()=>{console.log(await g().next()); console.log(await h().next())})()
EOFChunk ID: 8df6e2
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 13
Output:
{ value: 1, done: true }
{ value: 2, done: false }
node - <<'EOF'
let t=[]; async function* g(){ t.push('start'); yield 'a'; t.push('after'); yield 'b'} (async()=>{let it=g(); await it.next(); t.push('before second'); let p=it.next(); t.push('after second'); await p; console.log(t)})()
EOFChunk ID: 3b6a60 Wall time: 0.0000 seconds Process exited with code 0 Original token count: 14 Output: [ 'start', 'before second', 'after', 'after second' ]
rg -n "node|exec.Command|Run\(|NodeJS|js" internal/*_tests internal -g '*_test.go'
Chunk ID: ea54ca
Wall time: 0.0003 seconds
Process exited with code 0
Original token count: 262144
Output:
Total output lines: 10824
internal/bundler_tests/bundler_dce_test.go:18: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:22: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:26: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:32: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:35: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:43: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:47: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:51: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:57: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:60: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:68: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:72: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:76: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:82: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:85: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:93: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:97: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:101: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:107: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:110: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:118: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:122: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:126: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:132: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:135: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:143: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:147: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:151: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:157: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:160: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:168: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:173: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:177: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:183: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:186: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:188: expectedScanLog: `Users/user/project/src/entry.js: WARNING: Ignoring this import because "Users/user/project/node_modules/demo-pkg/index.js" was marked as having no side effects
internal/bundler_tests/bundler_dce_test.go:189:Users/user/project/node_modules/demo-pkg/package.json: NOTE: "sideEffects" is false in the enclosing "package.json" file:
internal/bundler_tests/bundler_dce_test.go:197: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:202: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:206: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:212: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:215: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:217: expectedScanLog: `Users/user/project/src/entry.js: WARNING: Ignoring this import because "Users/user/project/node_modules/demo-pkg/index.js" was marked as having no side effects
internal/bundler_tests/bundler_dce_test.go:218:Users/user/project/node_modules/demo-pkg/package.json: NOTE: "sideEffects" is false in the enclosing "package.json" file:
internal/bundler_tests/bundler_dce_test.go:226: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:230: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:234: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:240: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:243: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:245: expectedScanLog: `Users/user/project/src/entry.js: WARNING: Ignoring this import because "Users/user/project/node_modules/demo-pkg/index.js" was marked as having no side effects
internal/bundler_tests/bundler_dce_test.go:246:Users/user/project/node_modules/demo-pkg/package.json: NOTE: "sideEffects" is false in the enclosing "package.json" file:
internal/bundler_tests/bundler_dce_test.go:254: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:258: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:262: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:268: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:271: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:273: expectedScanLog: `Users/user/project/src/entry.js: WARNING: Ignoring this import because "Users/user/project/node_modules/demo-pkg/index.js" was marked as having no side effects
internal/bundler_tests/bundler_dce_test.go:274:Users/user/project/node_modules/demo-pkg/package.json: NOTE: "sideEffects" is false in the enclosing "package.json" file:
internal/bundler_tests/bundler_dce_test.go:282: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:286: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:290: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:296: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:299: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:307: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:311: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:315: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:321: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:324: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:332: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:336: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:340: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:346: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:349: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:357: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:361: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:365: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:371: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:374: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:382: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:386: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:390: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:396: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:399: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:407: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:411: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:415: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:417: "sideEffects": ["./index.js"]
internal/bundler_tests/bundler_dce_test.go:421: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:424: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:432: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:436: "~/project/node_modules/demo-pkg/index-main.js": `
internal/bundler_tests/bundler_dce_test.go:440: "~/project/node_modules/demo-pkg/index-module.js": `
internal/bundler_tests/bundler_dce_test.go:444: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:446: "main": "index-main.js",
internal/bundler_tests/bundler_dce_test.go:447: "module": "index-module.js",
internal/bundler_tests/bundler_dce_test.go:448: "sideEffects": ["./index-main.js"]
internal/bundler_tests/bundler_dce_test.go:452: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:455: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:464: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:468: "~/project/node_modules/demo-pkg/index-main.js": `
internal/bundler_tests/bundler_dce_test.go:472: "~/project/node_modules/demo-pkg/index-module.js": `
internal/bundler_tests/bundler_dce_test.go:476: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:478: "main": "index-main.js",
internal/bundler_tests/bundler_dce_test.go:479: "module": "index-module.js",
internal/bundler_tests/bundler_dce_test.go:480: "sideEffects": ["./index-main.js"]
internal/bundler_tests/bundler_dce_test.go:484: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:487: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:496: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:500: "~/project/node_modules/demo-pkg/index-main.js": `
internal/bundler_tests/bundler_dce_test.go:504: "~/project/node_modules/demo-pkg/index-module.js": `
internal/bundler_tests/bundler_dce_test.go:508: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:510: "main": "index-main.js",
internal/bundler_tests/bundler_dce_test.go:511: "module": "index-module.js",
internal/bundler_tests/bundler_dce_test.go:512: "sideEffects": ["./index-main.js"]
internal/bundler_tests/bundler_dce_test.go:516: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:519: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:527: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:532: "~/project/src/require-demo-pkg.js": `
internal/bundler_tests/bundler_dce_test.go:533: // This causes "index-main.js" to be selected
internal/bundler_tests/bundler_dce_test.go:536: "~/project/node_modules/demo-pkg/index-main.js": `
internal/bundler_tests/bundler_dce_test.go:540: "~/project/node_modules/demo-pkg/index-module.js": `
internal/bundler_tests/bundler_dce_test.go:544: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:546: "main": "index-main.js",
internal/bundler_tests/bundler_dce_test.go:547: "module": "index-module.js",
internal/bundler_tests/bundler_dce_test.go:548: "sideEffects": ["./index-main.js"]
internal/bundler_tests/bundler_dce_test.go:552: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:555: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:563: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:567: "~/project/node_modules/demo-pkg/index-main.js": `
internal/bundler_tests/bundler_dce_test.go:571: "~/project/node_modules/demo-pkg/index-module.js": `
internal/bundler_tests/bundler_dce_test.go:575: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:577: "main": "index-main.js",
internal/bundler_tests/bundler_dce_test.go:578: "module": "index-module.js",
internal/bundler_tests/bundler_dce_test.go:579: "sideEffects": ["./index-module.js"]
internal/bundler_tests/bundler_dce_test.go:583: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:586: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:595: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:599: "~/project/node_modules/demo-pkg/index-main.js": `
internal/bundler_tests/bundler_dce_test.go:603: "~/project/node_modules/demo-pkg/index-module.js": `
internal/bundler_tests/bundler_dce_test.go:607: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:609: "main": "index-main.js",
internal/bundler_tests/bundler_dce_test.go:610: "module": "index-module.js",
internal/bundler_tests/bundler_dce_test.go:611: "sideEffects": ["./index-module.js"]
internal/bundler_tests/bundler_dce_test.go:615: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:618: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:627: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:631: "~/project/node_modules/demo-pkg/index-main.js": `
internal/bundler_tests/bundler_dce_test.go:635: "~/project/node_modules/demo-pkg/index-module.js": `
internal/bundler_tests/bundler_dce_test.go:639: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:641: "main": "index-main.js",
internal/bundler_tests/bundler_dce_test.go:642: "module": "index-module.js",
internal/bundler_tests/bundler_dce_test.go:643: "sideEffects": ["./index-module.js"]
internal/bundler_tests/bundler_dce_test.go:647: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:650: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:658: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:663: "~/project/src/require-demo-pkg.js": `
internal/bundler_tests/bundler_dce_test.go:664: // This causes "index-main.js" to be selected
internal/bundler_tests/bundler_dce_test.go:667: "~/project/node_modules/demo-pkg/index-main.js": `
internal/bundler_tests/bundler_dce_test.go:671: "~/project/node_modules/demo-pkg/index-module.js": `
internal/bundler_tests/bundler_dce_test.go:675: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:677: "main": "index-main.js",
internal/bundler_tests/bundler_dce_test.go:678: "module": "index-module.js",
internal/bundler_tests/bundler_dce_test.go:679: "sideEffects": ["./index-module.js"]
internal/bundler_tests/bundler_dce_test.go:683: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:686: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:694: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:698: "~/project/node_modules/demo-pkg/keep/this/file.js": `
internal/bundler_tests/bundler_dce_test.go:701: "~/project/node_modules/demo-pkg/remove/this/file.js": `
internal/bundler_tests/bundler_dce_test.go:704: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:707: "./ke?p/*/file.js",
internal/bundler_tests/bundler_dce_test.go:709: "./re?ve/this/file.js"
internal/bundler_tests/bundler_dce_test.go:714: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:717: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:719: expectedScanLog: `Users/user/project/src/entry.js: WARNING: Ignoring this import because "Users/user/project/node_modules/demo-pkg/remove/this/file.js" was marked as having no side effects
internal/bundler_tests/bundler_dce_test.go:720:Users/user/project/node_modules/demo-pkg/package.json: NOTE: It was excluded from the "sideEffects" array in the enclosing "package.json" file:
internal/bundler_tests/bundler_dce_test.go:728: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:732: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:737: "~/project/node_modules/demo-pkg/a/b/c/index.js": `
internal/bundler_tests/bundler_dce_test.go:742: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:745: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:753: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:757: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:760: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:766: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:769: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:777: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:781: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:785: "~/project/node_modules/demo-pkg2/index.js": `
internal/bundler_tests/bundler_dce_test.go:789: "~/project/node_modules/demo-pkg2/package.json": `
internal/bundler_tests/bundler_dce_test.go:795: entryPaths: []string{"~/project/src/entry.js"},
internal/bundler_tests/bundler_dce_test.go:798: AbsOutputFile: "/out.js",
internal/bundler_tests/bundler_dce_test.go:806: "~/project/src/entry.js": `
internal/bundler_tests/bundler_dce_test.go:809: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:810: export {foo} from "./foo.js"
internal/bundler_tests/bundler_dce_test.go:813: "~/project/node_modules/demo-pkg/foo.js": `
internal/bundler_tests/bundler_dce_test.go:816: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:820: entryPaths: []string{"~/project/src/entry.js"}…252144 tokens truncated…ser/js_parser_test.go:5705: "NOTE: The esbuild loader for this file is currently set to \"js\" but it must be set to \"jsx\" to be able to parse JSX syntax. "+
internal/js_parser/js_parser_test.go:5706: "You can use 'Loader: map[string]api.Loader{\".js\": api.LoaderJSX}' to do that.\n")
internal/js_parser/js_parser_test.go:5927: expectPrintedJSX(t, "// @jsx h\n<a/>", "<a />;\n", "/* @__PURE__ */ h(\"a\", null);\n")
internal/js_parser/js_parser_test.go:5928: expectPrintedJSX(t, "/*@jsx h*/\n<a/>", "<a />;\n", "/* @__PURE__ */ h(\"a\", null);\n")
internal/js_parser/js_parser_test.go:5929: expectPrintedJSX(t, "/* @jsx h */\n<a/>", "<a />;\n", "/* @__PURE__ */ h(\"a\", null);\n")
internal/js_parser/js_parser_test.go:5930: expectPrintedJSX(t, "<a/>\n// @jsx h", "<a />;\n", "/* @__PURE__ */ h(\"a\", null);\n")
internal/js_parser/js_parser_test.go:5931: expectPrintedJSX(t, "<a/>\n/*@jsx h*/", "<a />;\n", "/* @__PURE__ */ h(\"a\", null);\n")
internal/js_parser/js_parser_test.go:5932: expectPrintedJSX(t, "<a/>\n/* @jsx h */", "<a />;\n", "/* @__PURE__ */ h(\"a\", null);\n")
internal/js_parser/js_parser_test.go:5933: expectPrintedJSX(t, "// @jsx a.b.c\n<a/>", "<a />;\n", "/* @__PURE__ */ a.b.c(\"a\", null);\n")
internal/js_parser/js_parser_test.go:5934: expectPrintedJSX(t, "/*@jsx a.b.c*/\n<a/>", "<a />;\n", "/* @__PURE__ */ a.b.c(\"a\", null);\n")
internal/js_parser/js_parser_test.go:5935: expectPrintedJSX(t, "/* @jsx a.b.c */\n<a/>", "<a />;\n", "/* @__PURE__ */ a.b.c(\"a\", null);\n")
internal/js_parser/js_parser_test.go:5937: expectPrintedJSX(t, "// @jsxFrag f\n<></>", "<></>;\n", "/* @__PURE__ */ React.createElement(f, null);\n")
internal/js_parser/js_parser_test.go:5938: expectPrintedJSX(t, "/*@jsxFrag f*/\n<></>", "<></>;\n", "/* @__PURE__ */ React.createElement(f, null);\n")
internal/js_parser/js_parser_test.go:5939: expectPrintedJSX(t, "/* @jsxFrag f */\n<></>", "<></>;\n", "/* @__PURE__ */ React.createElement(f, null);\n")
internal/js_parser/js_parser_test.go:5940: expectPrintedJSX(t, "<></>\n// @jsxFrag f", "<></>;\n", "/* @__PURE__ */ React.createElement(f, null);\n")
internal/js_parser/js_parser_test.go:5941: expectPrintedJSX(t, "<></>\n/*@jsxFrag f*/", "<></>;\n", "/* @__PURE__ */ React.createElement(f, null);\n")
internal/js_parser/js_parser_test.go:5942: expectPrintedJSX(t, "<></>\n/* @jsxFrag f */", "<></>;\n", "/* @__PURE__ */ React.createElement(f, null);\n")
internal/js_parser/js_parser_test.go:5943: expectPrintedJSX(t, "// @jsxFrag a.b.c\n<></>", "<></>;\n", "/* @__PURE__ */ React.createElement(a.b.c, null);\n")
internal/js_parser/js_parser_test.go:5944: expectPrintedJSX(t, "/*@jsxFrag a.b.c*/\n<></>", "<></>;\n", "/* @__PURE__ */ React.createElement(a.b.c, null);\n")
internal/js_parser/js_parser_test.go:5945: expectPrintedJSX(t, "/* @jsxFrag a.b.c */\n<></>", "<></>;\n", "/* @__PURE__ */ React.createElement(a.b.c, null);\n")
internal/js_parser/js_parser_test.go:5951: expectPrintedJSXAutomatic(t, p, "<div>></div>", "/* @__PURE__ */ jsx(\"div\", { children: \">\" });\n")
internal/js_parser/js_parser_test.go:5952: expectPrintedJSXAutomatic(t, p, "<div>{1}}</div>", "/* @__PURE__ */ jsxs(\"div\", { children: [\n 1,\n \"}\"\n] });\n")
internal/js_parser/js_parser_test.go:5953: expectPrintedJSXAutomatic(t, p, "<div key={true} />", "/* @__PURE__ */ jsx(\"div\", {}, true);\n")
internal/js_parser/js_parser_test.go:5954: expectPrintedJSXAutomatic(t, p, "<div key=\"key\" />", "/* @__PURE__ */ jsx(\"div\", {}, \"key\");\n")
internal/js_parser/js_parser_test.go:5955: expectPrintedJSXAutomatic(t, p, "<div key=\"key\" {...props} />", "/* @__PURE__ */ jsx(\"div\", { ...props }, \"key\");\n")
internal/js_parser/js_parser_test.go:5957: expectPrintedJSXAutomatic(t, p, "<div>{...children}</div>", "/* @__PURE__ */ jsxs(\"div\", { children: [\n ...children\n] });\n")
internal/js_parser/js_parser_test.go:5958: expectPrintedJSXAutomatic(t, p, "<div>{...children}<a/></div>", "/* @__PURE__ */ jsxs(\"div\", { children: [\n ...children,\n /* @__PURE__ */ jsx(\"a\", {})\n] });\n")
internal/js_parser/js_parser_test.go:5959: expectPrintedJSXAutomatic(t, p, "<>></>", "/* @__PURE__ */ jsx(Fragment, { children: \">\" });\n")
internal/js_parser/js_parser_test.go:5969: expectParseErrorJSXAutomatic(t, p, "<div __source=\"/path/to/source.jsx\" />",
internal/js_parser/js_parser_test.go:5976: expectPrintedJSXAutomatic(t, pr, "<div/>", "import { jsx } from \"react/jsx-runtime\";\n/* @__PURE__ */ jsx(\"div\", {});\n")
internal/js_parser/js_parser_test.go:5977: expectPrintedJSXAutomatic(t, pr, "<><a/><b/></>", "import { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\n/* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\"a\", {}),\n /* @__PURE__ */ jsx(\"b\", {})\n] });\n")
internal/js_parser/js_parser_test.go:5979: expectPrintedJSXAutomatic(t, pr, "<><div {...props} key=\"key\" /></>", "import { Fragment, jsx } from \"react/jsx-runtime\";\nimport { createElement } from \"react\";\n/* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ createElement(\"div\", { ...props, key: \"key\" }) });\n")
internal/js_parser/js_parser_test.go:5981: pri := JSXAutomaticTestOptions{Development: false, ImportSource: "my-jsx-lib"}
internal/js_parser/js_parser_test.go:5982: expectPrintedJSXAutomatic(t, pri, "<div/>", "import { jsx } from \"my-jsx-lib/jsx-runtime\";\n/* @__PURE__ */ jsx(\"div\", {});\n")
internal/js_parser/js_parser_test.go:5983: expectPrintedJSXAutomatic(t, pri, "<div {...props} key=\"key\" />", "import { createElement } from \"my-jsx-lib\";\n/* @__PURE__ */ createElement(\"div\", { ...props, key: \"key\" });\n")
internal/js_parser/js_parser_test.go:5986: pi := JSXAutomaticTestOptions{SideEffects: true, ImportSource: "my-jsx-lib"}
internal/js_parser/js_parser_test.go:5987: expectPrintedJSXAutomatic(t, pi, "<a/>", "import { jsx } from \"my-jsx-lib/jsx-runtime\";\njsx(\"a\", {});\n")
internal/js_parser/js_parser_test.go:5988: expectPrintedJSXAutomatic(t, pi, "<></>", "import { Fragment, jsx } from \"my-jsx-lib/jsx-runtime\";\njsx(Fragment, {});\n")
internal/js_parser/js_parser_test.go:5992: expectPrintedJSXAutomatic(t, d, "<div>></div>", "/* @__PURE__ */ jsxDEV(\"div\", { children: \">\" }, void 0, false, {\n fileName: \"<stdin>\",\n lineNumber: 1,\n columnNumber: 1\n}, this);\n")
internal/js_parser/js_parser_test.go:5993: expectPrintedJSXAutomatic(t, d, "<div>{1}}</div>", "/* @__PURE__ */ jsxDEV(\"div\", { children: [\n 1,\n \"}\"\n] }, void 0, true, {\n fileName: \"<stdin>\",\n lineNumber: 1,\n columnNumber: 1\n}, this);\n")
internal/js_parser/js_parser_test.go:5994: expectPrintedJSXAutomatic(t, d, "<div key={true} />", "/* @__PURE__ */ jsxDEV(\"div\", {}, true, false, {\n fileName: \"<stdin>\",\n lineNumber: 1,\n columnNumber: 1\n}, this);\n")
internal/js_parser/js_parser_test.go:5995: expectPrintedJSXAutomatic(t, d, "<div key=\"key\" />", "/* @__PURE__ */ jsxDEV(\"div\", {}, \"key\", false, {\n fileName: \"<stdin>\",\n lineNumber: 1,\n columnNumber: 1\n}, this);\n")
internal/js_parser/js_parser_test.go:5996: expectPrintedJSXAutomatic(t, d, "<div key=\"key\" {...props} />", "/* @__PURE__ */ jsxDEV(\"div\", { ...props }, \"key\", false, {\n fileName: \"<stdin>\",\n lineNumber: 1,\n columnNumber: 1\n}, this);\n")
internal/js_parser/js_parser_test.go:5998: expectPrintedJSXAutomatic(t, d, "<div>{...children}</div>", "/* @__PURE__ */ jsxDEV(\"div\", { children: [\n ...children\n] }, void 0, true, {\n fileName: \"<stdin>\",\n lineNumber: 1,\n columnNumber: 1\n}, this);\n")
internal/js_parser/js_parser_test.go:5999: expectPrintedJSXAutomatic(t, d, "<div>\n {...children}\n <a/></div>", "/* @__PURE__ */ jsxDEV(\"div\", { children: [\n ...children,\n /* @__PURE__ */ jsxDEV(\"a\", {}, void 0, false, {\n fileName: \"<stdin>\",\n lineNumber: 3,\n columnNumber: 3\n }, this)\n] }, void 0, true, {\n fileName: \"<stdin>\",\n lineNumber: 1,\n columnNumber: 1\n}, this);\n")
internal/js_parser/js_parser_test.go:6000: expectPrintedJSXAutomatic(t, d, "<>></>", "/* @__PURE__ */ jsxDEV(Fragment, { children: \">\" }, void 0, false, {\n fileName: \"<stdin>\",\n lineNumber: 1,\n columnNumber: 1\n}, this);\n")
internal/js_parser/js_parser_test.go:6010: expectParseErrorJSXAutomatic(t, d, "<div __source=\"/path/to/source.jsx\" />",
internal/js_parser/js_parser_test.go:6018: expectPrintedJSXAutomatic(t, d, "\r\n<x/>", "/* @__PURE__ */ jsxDEV(\"x\", {}, void 0, false, {\n fileName: \"<stdin>\",\n lineNumber: 2,\n columnNumber: 1\n}, this);\n")
internal/js_parser/js_parser_test.go:6019: expectPrintedJSXAutomatic(t, d, "\n\r<x/>", "/* @__PURE__ */ jsxDEV(\"x\", {}, void 0, false, {\n fileName: \"<stdin>\",\n lineNumber: 3,\n columnNumber: 1\n}, this);\n")
internal/js_parser/js_parser_test.go:6020: expectPrintedJSXAutomatic(t, d, "let 𐀀 = <x>🍕🍕🍕<y/></x>", "let 𐀀 = /* @__PURE__ */ jsxDEV(\"x\", { children: [\n \"🍕🍕🍕\",\n /* @__PURE__ */ jsxDEV(\"y\", {}, void 0, false, {\n fileName: \"<stdin>\",\n lineNumber: 1,\n columnNumber: 19\n }, this)\n] }, void 0, true, {\n fileName: \"<stdin>\",\n lineNumber: 1,\n columnNumber: 10\n}, this);\n")
internal/js_parser/js_parser_test.go:6024: expectPrintedJSXAutomatic(t, dr, "<div/>", "import { jsxDEV } from \"react/jsx-dev-runtime\";\n/* @__PURE__ */ jsxDEV(\"div\", {}, void 0, false, {\n fileName: \"<stdin>\",\n lineNumber: 1,\n columnNumber: 1\n}, this);\n")
internal/js_parser/js_parser_test.go:6025: expectPrintedJSXAutomatic(t, dr, "<>\n <a/>\n <b/>\n</>", "import { Fragment, jsxDEV } from \"react/jsx-dev-runtime\";\n/* @__PURE__ */ jsxDEV(Fragment, { children: [\n /* @__PURE__ */ jsxDEV(\"a\", {}, void 0, false, {\n fileName: \"<stdin>\",\n lineNumber: 2,\n columnNumber: 3\n }, this),\n /* @__PURE__ */ jsxDEV(\"b\", {}, void 0, false, {\n fileName: \"<stdin>\",\n lineNumber: 3,\n columnNumber: 3\n }, this)\n] }, void 0, true, {\n fileName: \"<stdin>\",\n lineNumber: 1,\n columnNumber: 1\n}, this);\n")
internal/js_parser/js_parser_test.go:6028: expectPrintedJSXAutomatic(t, dri, "<div/>", "import { jsxDEV } from \"preact/jsx-dev-runtime\";\n/* @__PURE__ */ jsxDEV(\"div\", {}, void 0, false, {\n fileName: \"<stdin>\",\n lineNumber: 1,\n columnNumber: 1\n}, this);\n")
internal/js_parser/js_parser_test.go:6029: expectPrintedJSXAutomatic(t, dri, "<>\n <a/>\n <b/>\n</>", "import { Fragment, jsxDEV } from \"preact/jsx-dev-runtime\";\n/* @__PURE__ */ jsxDEV(Fragment, { children: [\n /* @__PURE__ */ jsxDEV(\"a\", {}, void 0, false, {\n fileName: \"<stdin>\",\n lineNumber: 2,\n columnNumber: 3\n }, this),\n /* @__PURE__ */ jsxDEV(\"b\", {}, void 0, false, {\n fileName: \"<stdin>\",\n lineNumber: 3,\n columnNumber: 3\n }, this)\n] }, void 0, true, {\n fileName: \"<stdin>\",\n lineNumber: 1,\n columnNumber: 1\n}, this);\n")
internal/js_parser/js_parser_test.go:6033: expectPrintedJSXAutomatic(t, p, "<a"+colon+"b/>", "/* @__PURE__ */ jsx(\"a:b\", {});\n")
internal/js_parser/js_parser_test.go:6034: expectPrintedJSXAutomatic(t, p, "<a-b"+colon+"c-d/>", "/* @__PURE__ */ jsx(\"a-b:c-d\", {});\n")
internal/js_parser/js_parser_test.go:6035: expectPrintedJSXAutomatic(t, p, "<a-"+colon+"b-/>", "/* @__PURE__ */ jsx(\"a-:b-\", {});\n")
internal/js_parser/js_parser_test.go:6036: expectPrintedJSXAutomatic(t, p, "<Te"+colon+"st/>", "/* @__PURE__ */ jsx(\"Te:st\", {});\n")
internal/js_parser/js_parser_test.go:6037: expectPrintedJSXAutomatic(t, p, "<x a"+colon+"b/>", "/* @__PURE__ */ jsx(\"x\", { \"a:b\": true });\n")
internal/js_parser/js_parser_test.go:6038: expectPrintedJSXAutomatic(t, p, "<x a-b"+colon+"c-d/>", "/* @__PURE__ */ jsx(\"x\", { \"a-b:c-d\": true });\n")
internal/js_parser/js_parser_test.go:6039: expectPrintedJSXAutomatic(t, p, "<x a-"+colon+"b-/>", "/* @__PURE__ */ jsx(\"x\", { \"a-:b-\": true });\n")
internal/js_parser/js_parser_test.go:6040: expectPrintedJSXAutomatic(t, p, "<x Te"+colon+"st/>", "/* @__PURE__ */ jsx(\"x\", { \"Te:st\": true });\n")
internal/js_parser/js_parser_test.go:6041: expectPrintedJSXAutomatic(t, p, "<x a"+colon+"b={0}/>", "/* @__PURE__ */ jsx(\"x\", { \"a:b\": 0 });\n")
internal/js_parser/js_parser_test.go:6042: expectPrintedJSXAutomatic(t, p, "<x a-b"+colon+"c-d={0}/>", "/* @__PURE__ */ jsx(\"x\", { \"a-b:c-d\": 0 });\n")
internal/js_parser/js_parser_test.go:6043: expectPrintedJSXAutomatic(t, p, "<x a-"+colon+"b-={0}/>", "/* @__PURE__ */ jsx(\"x\", { \"a-:b-\": 0 });\n")
internal/js_parser/js_parser_test.go:6044: expectPrintedJSXAutomatic(t, p, "<x Te"+colon+"st={0}/>", "/* @__PURE__ */ jsx(\"x\", { \"Te:st\": 0 });\n")
internal/js_parser/js_parser_test.go:6045: expectPrintedJSXAutomatic(t, p, "<a-b a-b={a-b}/>", "/* @__PURE__ */ jsx(\"a-b\", { \"a-b\": a - b });\n")
internal/js_parser/js_parser_test.go:6060: expectParseErrorJSX(t, "with (x) y(<z/>) // @jsxRuntime automatic", strictModeError)
internal/js_parser/js_parser_test.go:6065: expectPrintedJSX(t, "// @jsxRuntime automatic\n<a/>", "<a />;\n", "import { jsx } from \"react/jsx-runtime\";\n/* @__PURE__ */ jsx(\"a\", {});\n")
internal/js_parser/js_parser_test.go:6066: expectPrintedJSX(t, "/*@jsxRuntime automatic*/\n<a/>", "<a />;\n", "import { jsx } from \"react/jsx-runtime\";\n/* @__PURE__ */ jsx(\"a\", {});\n")
internal/js_parser/js_parser_test.go:6067: expectPrintedJSX(t, "/* @jsxRuntime automatic */\n<a/>", "<a />;\n", "import { jsx } from \"react/jsx-runtime\";\n/* @__PURE__ */ jsx(\"a\", {});\n")
internal/js_parser/js_parser_test.go:6068: expectPrintedJSX(t, "<a/>\n/*@jsxRuntime automatic*/", "<a />;\n", "import { jsx } from \"react/jsx-runtime\";\n/* @__PURE__ */ jsx(\"a\", {});\n")
internal/js_parser/js_parser_test.go:6069: expectPrintedJSX(t, "<a/>\n/* @jsxRuntime automatic */", "<a />;\n", "import { jsx } from \"react/jsx-runtime\";\n/* @__PURE__ */ jsx(\"a\", {});\n")
internal/js_parser/js_parser_test.go:6071: expectPrintedJSX(t, "// @jsxRuntime classic\n<a/>", "<a />;\n", "/* @__PURE__ */ React.createElement(\"a\", null);\n")
internal/js_parser/js_parser_test.go:6072: expectPrintedJSX(t, "/*@jsxRuntime classic*/\n<a/>", "<a />;\n", "/* @__PURE__ */ React.createElement(\"a\", null);\n")
internal/js_parser/js_parser_test.go:6073: expectPrintedJSX(t, "/* @jsxRuntime classic */\n<a/>", "<a />;\n", "/* @__PURE__ */ React.createElement(\"a\", null);\n")
internal/js_parser/js_parser_test.go:6074: expectPrintedJSX(t, "<a/>\n/*@jsxRuntime classic*/\n", "<a />;\n", "/* @__PURE__ */ React.createElement(\"a\", null);\n")
internal/js_parser/js_parser_test.go:6075: expectPrintedJSX(t, "<a/>\n/* @jsxRuntime classic */\n", "<a />;\n", "/* @__PURE__ */ React.createElement(\"a\", null);\n")
internal/js_parser/js_parser_test.go:6077: expectParseErrorJSX(t, "// @jsxRuntime foo\n<a/>",
internal/js_parser/js_parser_test.go:6082: expectPrintedJSX(t, "// @jsxRuntime automatic @jsxImportSource src\n<a/>", "<a />;\n", "import { jsx } from \"src/jsx-runtime\";\n/* @__PURE__ */ jsx(\"a\", {});\n")
internal/js_parser/js_parser_test.go:6083: expectPrintedJSX(t, "/*@jsxRuntime automatic @jsxImportSource src*/\n<a/>", "<a />;\n", "import { jsx } from \"src/jsx-runtime\";\n/* @__PURE__ */ jsx(\"a\", {});\n")
internal/js_parser/js_parser_test.go:6084: expectPrintedJSX(t, "/*@jsxRuntime automatic*//*@jsxImportSource src*/\n<a/>", "<a />;\n", "import { jsx } from \"src/jsx-runtime\";\n/* @__PURE__ */ jsx(\"a\", {});\n")
internal/js_parser/js_parser_test.go:6085: expectPrintedJSX(t, "/* @jsxRuntime automatic */\n/* @jsxImportSource src */\n<a/>", "<a />;\n", "import { jsx } from \"src/jsx-runtime\";\n/* @__PURE__ */ jsx(\"a\", {});\n")
internal/js_parser/js_parser_test.go:6086: expectPrintedJSX(t, "<a/>\n/*@jsxRuntime automatic @jsxImportSource src*/", "<a />;\n", "import { jsx } from \"src/jsx-runtime\";\n/* @__PURE__ */ jsx(\"a\", {});\n")
internal/js_parser/js_parser_test.go:6087: expectPrintedJSX(t, "<a/>\n/*@jsxRuntime automatic*/\n/*@jsxImportSource src*/", "<a />;\n", "import { jsx } from \"src/jsx-runtime\";\n/* @__PURE__ */ jsx(\"a\", {});\n")
internal/js_parser/js_parser_test.go:6088: expectPrintedJSX(t, "<a/>\n/* @jsxRuntime automatic */\n/* @jsxImportSource src */", "<a />;\n", "import { jsx } from \"src/jsx-runtime\";\n/* @__PURE__ */ jsx(\"a\", {});\n")
internal/js_parser/js_parser_test.go:6090: expectPrintedJSX(t, "// @jsxRuntime classic @jsxImportSource src\n<a/>", "<a />;\n", "/* @__PURE__ */ React.createElement(\"a\", null);\n")
internal/js_parser/js_parser_test.go:6091: expectParseErrorJSX(t, "// @jsxRuntime classic @jsxImportSource src\n<a/>",
internal/js_parser/js_parser_test.go:6093:NOTE: You can enable React's "automatic" JSX transform for this file by using a "@jsxRuntime automatic" comment.
internal/js_parser/js_parser_test.go:6095: expectParseErrorJSX(t, "// @jsxImportSource src\n<a/>",
internal/js_parser/js_parser_test.go:6097:NOTE: You can enable React's "automatic" JSX transform for this file by using a "@jsxRuntime automatic" comment.
internal/js_parser/js_parser_test.go:6100: expectPrintedJSX(t, "// @jsxRuntime automatic @jsx h\n<a/>", "<a />;\n", "import { jsx } from \"react/jsx-runtime\";\n/* @__PURE__ */ jsx(\"a\", {});\n")
internal/js_parser/js_parser_test.go:6101: expectParseErrorJSX(t, "// @jsxRuntime automatic @jsx h\n<a/>", "<stdin>: WARNING: The JSX factory cannot be set when using React's \"automatic\" JSX transform\n")
internal/js_parser/js_parser_test.go:6103: expectPrintedJSX(t, "// @jsxRuntime automatic @jsxFrag f\n<></>", "<></>;\n", "import { Fragment, jsx } from \"react/jsx-runtime\";\n/* @__PURE__ */ jsx(Fragment, {});\n")
internal/js_parser/js_parser_test.go:6104: expectParseErrorJSX(t, "// @jsxRuntime automatic @jsxFrag f\n<></>", "<stdin>: WARNING: The JSX fragment cannot be set when using React's \"automatic\" JSX transform\n")
internal/js_parser/js_parser_test.go:6279: expectPrinted(t, "import 'x' assert {type: 'json'}", "import \"x\" assert { type: \"json\" };\n")
internal/js_parser/js_parser_test.go:6280: expectPrinted(t, "import 'x' assert {type: 'json',}", "import \"x\" assert { type: \"json\" };\n")
internal/js_parser/js_parser_test.go:6281: expectPrinted(t, "import 'x' assert {'type': 'json'}", "import \"x\" assert { \"type\": \"json\" };\n")
internal/js_parser/js_parser_test.go:6285: expectPrintedMangle(t, "import 'x' assert {'type': 'json'}", "import \"x\" assert { type: \"json\" };\n")
internal/js_parser/js_parser_test.go:6286: expectPrintedMangle(t, "import 'x' assert {'ty pe': 'json'}", "import \"x\" assert { \"ty pe\": \"json\" };\n")
internal/js_parser/js_parser_test.go:6334: expectParseError(t, "import { foo } from 'x' assert {type: 'json'}", "")
internal/js_parser/js_parser_test.go:6335: expectParseError(t, "export { foo } from 'x' assert {type: 'json'}", "")
internal/js_parser/js_parser_test.go:6354: expectPrinted(t, "import 'x' with {type: 'json'}", "import \"x\" with { type: \"json\" };\n")
internal/js_parser/js_parser_test.go:6355: expectPrinted(t, "import 'x' with {type: 'json',}", "import \"x\" with { type: \"json\" };\n")
internal/js_parser/js_parser_test.go:6356: expectPrinted(t, "import 'x' with {'type': 'json'}", "import \"x\" with { \"type\": \"json\" };\n")
internal/js_parser/js_parser_test.go:6360: expectPrintedMangle(t, "import 'x' with {'type': 'json'}", "import \"x\" with { type: \"json\" };\n")
internal/js_parser/js_parser_test.go:6361: expectPrintedMangle(t, "import 'x' with {'ty pe': 'json'}", "import \"x\" with { \"ty pe\": \"json\" };\n")
internal/js_parser/js_parser_test.go:6409: expectParseError(t, "import { foo } from 'x' with {type: 'json'}", "")
internal/js_parser/js_parser_test.go:6410: expectParseError(t, "export { foo } from 'x' with {type: 'json'}", "")
internal/js_parser/js_parser_test.go:6425: "import x from 'y' assert {type: 'json'}",
internal/js_parser/js_parser_test.go:6428: "export {default} from 'y' assert {type: 'json'}",
internal/js_parser/js_parser_test.go:6431: "import('y', {assert: {type: 'json'}})",
rg -n "exec\.Command|LookPath\(|node" --glob '*_test.go'
Chunk ID: b4d4c7
Wall time: 0.0001 seconds
Process exited with code 0
Original token count: 21837
Output:
Total output lines: 728
pkg/api/api_test.go:230: at ModuleJob.run (node:internal/modules/esm/module_job:185:25)
pkg/api/api_test.go:232: at async ESMLoader.import (node:internal/modules/esm/loader:281:24)
pkg/api/api_test.go:233: at async loadESM (node:internal/process/esm_loader:88:5)
pkg/api/api_test.go:234: at async handleMainPromise (node:internal/modules/run_main:65:12)`,
pkg/api/api_test.go:242: at ModuleJob.run (node:internal/modules/esm/module_job:185:25)
pkg/api/api_test.go:244: at async ESMLoader.import (node:internal/modules/esm/loader:281:24)
pkg/api/api_test.go:245: at async loadESM (node:internal/process/esm_loader:88:5)
pkg/api/api_test.go:246: at async handleMainPromise (node:internal/modules/run_main:65:12)
internal/bundler_tests/bundler_dce_test.go:22: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:26: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:47: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:51: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:72: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:76: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:97: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:101: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:122: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:126: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:147: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:151: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:173: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:177: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:188: expectedScanLog: `Users/user/project/src/entry.js: WARNING: Ignoring this import because "Users/user/project/node_modules/demo-pkg/index.js" was marked as having no side effects
internal/bundler_tests/bundler_dce_test.go:189:Users/user/project/node_modules/demo-pkg/package.json: NOTE: "sideEffects" is false in the enclosing "package.json" file:
internal/bundler_tests/bundler_dce_test.go:202: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:206: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:217: expectedScanLog: `Users/user/project/src/entry.js: WARNING: Ignoring this import because "Users/user/project/node_modules/demo-pkg/index.js" was marked as having no side effects
internal/bundler_tests/bundler_dce_test.go:218:Users/user/project/node_modules/demo-pkg/package.json: NOTE: "sideEffects" is false in the enclosing "package.json" file:
internal/bundler_tests/bundler_dce_test.go:230: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:234: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:245: expectedScanLog: `Users/user/project/src/entry.js: WARNING: Ignoring this import because "Users/user/project/node_modules/demo-pkg/index.js" was marked as having no side effects
internal/bundler_tests/bundler_dce_test.go:246:Users/user/project/node_modules/demo-pkg/package.json: NOTE: "sideEffects" is false in the enclosing "package.json" file:
internal/bundler_tests/bundler_dce_test.go:258: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:262: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:273: expectedScanLog: `Users/user/project/src/entry.js: WARNING: Ignoring this import because "Users/user/project/node_modules/demo-pkg/index.js" was marked as having no side effects
internal/bundler_tests/bundler_dce_test.go:274:Users/user/project/node_modules/demo-pkg/package.json: NOTE: "sideEffects" is false in the enclosing "package.json" file:
internal/bundler_tests/bundler_dce_test.go:286: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:290: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:311: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:315: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:336: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:340: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:361: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:365: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:386: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:390: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:411: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:415: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:436: "~/project/node_modules/demo-pkg/index-main.js": `
internal/bundler_tests/bundler_dce_test.go:440: "~/project/node_modules/demo-pkg/index-module.js": `
internal/bundler_tests/bundler_dce_test.go:444: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:468: "~/project/node_modules/demo-pkg/index-main.js": `
internal/bundler_tests/bundler_dce_test.go:472: "~/project/node_modules/demo-pkg/index-module.js": `
internal/bundler_tests/bundler_dce_test.go:476: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:500: "~/project/node_modules/demo-pkg/index-main.js": `
internal/bundler_tests/bundler_dce_test.go:504: "~/project/node_modules/demo-pkg/index-module.js": `
internal/bundler_tests/bundler_dce_test.go:508: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:536: "~/project/node_modules/demo-pkg/index-main.js": `
internal/bundler_tests/bundler_dce_test.go:540: "~/project/node_modules/demo-pkg/index-module.js": `
internal/bundler_tests/bundler_dce_test.go:544: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:567: "~/project/node_modules/demo-pkg/index-main.js": `
internal/bundler_tests/bundler_dce_test.go:571: "~/project/node_modules/demo-pkg/index-module.js": `
internal/bundler_tests/bundler_dce_test.go:575: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:599: "~/project/node_modules/demo-pkg/index-main.js": `
internal/bundler_tests/bundler_dce_test.go:603: "~/project/node_modules/demo-pkg/index-module.js": `
internal/bundler_tests/bundler_dce_test.go:607: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:631: "~/project/node_modules/demo-pkg/index-main.js": `
internal/bundler_tests/bundler_dce_test.go:635: "~/project/node_modules/demo-pkg/index-module.js": `
internal/bundler_tests/bundler_dce_test.go:639: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:667: "~/project/node_modules/demo-pkg/index-main.js": `
internal/bundler_tests/bundler_dce_test.go:671: "~/project/node_modules/demo-pkg/index-module.js": `
internal/bundler_tests/bundler_dce_test.go:675: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:698: "~/project/node_modules/demo-pkg/keep/this/file.js": `
internal/bundler_tests/bundler_dce_test.go:701: "~/project/node_modules/demo-pkg/remove/this/file.js": `
internal/bundler_tests/bundler_dce_test.go:704: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:719: expectedScanLog: `Users/user/project/src/entry.js: WARNING: Ignoring this import because "Users/user/project/node_modules/demo-pkg/remove/this/file.js" was marked as having no side effects
internal/bundler_tests/bundler_dce_test.go:720:Users/user/project/node_modules/demo-pkg/package.json: NOTE: It was excluded from the "sideEffects" array in the enclosing "package.json" file:
internal/bundler_tests/bundler_dce_test.go:732: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:737: "~/project/node_modules/demo-pkg/a/b/c/index.js": `
internal/bundler_tests/bundler_dce_test.go:757: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:760: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:781: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:785: "~/project/node_modules/demo-pkg2/index.js": `
internal/bundler_tests/bundler_dce_test.go:789: "~/project/node_modules/demo-pkg2/package.json": `
internal/bundler_tests/bundler_dce_test.go:809: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:813: "~/project/node_modules/demo-pkg/foo.js": `
internal/bundler_tests/bundler_dce_test.go:816: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:835: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:839: "~/project/node_modules/demo-pkg/foo.js": `
internal/bundler_tests/bundler_dce_test.go:842: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:861: "~/project/node_modules/a/index.js": `
internal/bundler_tests/bundler_dce_test.go:864: "~/project/node_modules/a/package.json": `
internal/bundler_tests/bundler_dce_test.go:867: "~/project/node_modules/b/index.js": `
internal/bundler_tests/bundler_dce_test.go:871: "~/project/node_modules/b/package.json": `
internal/bundler_tests/bundler_dce_test.go:874: "~/project/node_modules/c/index.js": `
internal/bundler_tests/bundler_dce_test.go:877: "~/project/node_modules/c/package.json": `
internal/bundler_tests/bundler_dce_test.go:880: "~/project/node_modules/d/index.js": `
internal/bundler_tests/bundler_dce_test.go:883: "~/project/node_modules/d/package.json": `
internal/bundler_tests/bundler_dce_test.go:902: "~/project/node_modules/a/index.js": `
internal/bundler_tests/bundler_dce_test.go:905: "~/project/node_modules/b/index.js": `
internal/bundler_tests/bundler_dce_test.go:909: "~/project/node_modules/b/package.json": `
internal/bundler_tests/bundler_dce_test.go:912: "~/project/node_modules/c/index.js": `
internal/bundler_tests/bundler_dce_test.go:915: "~/project/node_modules/d/index.js": `
internal/bundler_tests/bundler_dce_test.go:934: "~/project/node_modules/a/index.js": `
internal/bundler_tests/bundler_dce_test.go:938: "~/project/node_modules/b1/index.js": `
internal/bundler_tests/bundler_dce_test.go:942: "~/project/node_modules/b1/package.json": `
internal/bundler_tests/bundler_dce_test.go:945: "~/project/node_modules/b2/index.js": `
internal/bundler_tests/bundler_dce_test.go:949: "~/project/node_modules/b2/package.json": `
internal/bundler_tests/bundler_dce_test.go:952: "~/project/node_modules/c/index.js": `
internal/bundler_tests/bundler_dce_test.go:955: "~/project/node_modules/d/index.js": `
internal/bundler_tests/bundler_dce_test.go:973: "~/project/node_modules/a/index.js": `
internal/bundler_tests/bundler_dce_test.go:976: "~/project/node_modules/b/index.js": `
internal/bundler_tests/bundler_dce_test.go:980: "~/project/node_modules/b/package.json": `
internal/bundler_tests/bundler_dce_test.go:983: "~/project/node_modules/c/index.js": `
internal/bundler_tests/bundler_dce_test.go:987: "~/project/node_modules/d/index.js": `
internal/bundler_tests/bundler_dce_test.go:1005: "~/project/node_modules/a/index.js": `
internal/bundler_tests/bundler_dce_test.go:1008: "~/project/node_modules/b/index.js": `
internal/bundler_tests/bundler_dce_test.go:1012: "~/project/node_modules/b/package.json": `
internal/bundler_tests/bundler_dce_test.go:1015: "~/project/node_modules/c/index.js": `
internal/bundler_tests/bundler_dce_test.go:1019: "~/project/node_modules/c/package.json": `
internal/bundler_tests/bundler_dce_test.go:1022: "~/project/node_modules/d/index.js": `
internal/bundler_tests/bundler_dce_test.go:1025: "~/project/node_modules/d/package.json": `
internal/bundler_tests/bundler_dce_test.go:1571: "~/project/node_modules/pkg/index.js": `
internal/bundler_tests/bundler_dce_test.go:1575: "~/project/node_modules/pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:1578: "~/project/node_modules/pkg/foo.js": `
internal/bundler_tests/bundler_dce_test.go:1581: "~/project/node_modules/pkg/bar.js": `
internal/bundler_tests/bundler_dce_test.go:3780: "~/project/node_modules/demo-pkg/foo.js": `
internal/bundler_tests/bundler_dce_test.go:3783: "~/project/node_modules/demo-pkg/bar/index.js": `
internal/bundler_tests/bundler_dce_test.go:3786: "~/project/node_modules/demo-pkg/package.json": `
internal/bundler_tests/bundler_dce_test.go:3811: "/project/node_modules/pkg/button.js": `
internal/bundler_tests/bundler_dce_test.go:3815: "/project/node_modules/pkg/button.css": `
internal/bundler_tests/bundler_dce_test.go:3818: "/project/node_modules/pkg/menu.js": `
internal/bundler_tests/bundler_dce_test.go:3822: "/project/node_modules/pkg/menu.css": `
internal/bundler_tests/bundler_dce_test.go:3841: "/project/node_modules/pkg/entry.js": `
internal/bundler_tests/bundler_dce_test.go:3844: "/project/node_modules/pkg/package.json": `{
internal/bundler_tests/bundler_dce_test.go:3848: "/project/node_modules/pkg/components.jsx": `
internal/bundler_tests/bundler_dce_test.go:3852: "/project/node_modules/pkg/button.css": `
internal/bundler_tests/bundler_dce_test.go:3871: "/project/node_modules/pkg/entry.js": `
internal/bundler_tests/bundler_dce_test.go:3874: "/project/node_modules/pkg/package.json": `{
internal/bundler_tests/bundler_dce_test.go:3878: "/project/node_modules/pkg/components.jsx": `
internal/bundler_tests/bundler_dce_test.go:3882: "/project/node_modules/pkg/button.css": `
internal/bundler_tests/bundler_dce_test.go:3901: "/project/node_modules/pkg/entry.js": `
internal/bundler_tests/bundler_dce_test.go:3904: "/project/node_modules/pkg/package.json": `{
internal/bundler_tests/bundler_dce_test.go:3908: "/project/node_modules/pkg/components.jsx": `
internal/bundler_tests/bundler_dce_test.go:3912: "/project/node_modules/pkg/button.css": `
internal/bundler_tests/bundler_dce_test.go:3931: "/project/node_modules/pkg/entry.js": `
internal/bundler_tests/bundler_dce_test.go:3934: "/project/node_modules/pkg/package.json": `{
internal/bundler_tests/bundler_dce_test.go:3938: "/project/node_modules/pkg/components.jsx": `
internal/bundler_tests/bundler_dce_test.go:3942: "/project/node_modules/pkg/button.css": `
internal/bundler_tests/bundler_dce_test.go:3961: "/project/node_modules/pkg/package.json": `{
internal/bundler_tests/bundler_dce_test.go:3964: "/project/node_modules/pkg/button.jsx": `
internal/bundler_tests/bundler_dce_test.go:3968: "/project/node_modules/pkg/styles.js": `
internal/bundler_tests/bundler_dce_test.go:3972: "/project/node_modules/pkg/styles.css": `
internal/bundler_tests/bundler_dce_test.go:3991: "/project/node_modules/pkg/package.json": `{
internal/bundler_tests/bundler_dce_test.go:3994: "/project/node_modules/pkg/button.jsx": `
internal/bundler_tests/bundler_dce_test.go:3998: "/project/node_modules/pkg/styles.js": `
internal/bundler_tests/bundler_dce_test.go:4002: "/project/node_modules/pkg/styles.css": `
internal/bundler_tests/bundler_splitting_test.go:329: "~/project/node_modules/package/index.js": `
internal/bundler_tests/bundler_ts_test.go:1419: "/node_modules/pkg/foo-js.ts": `console.log("correct")`,
internal/bundler_tests/bundler_ts_test.go:1420: "/node_modules/pkg/foo-jsx.tsx": `console.log("correct")`,
internal/bundler_tests/bundler_ts_test.go:1422: "/node_modules/pkg-exports/package.json": `{
internal/bundler_tests/bundler_ts_test.go:1429: "/node_modules/pkg-exports/abc-js.ts": `console.log("correct")`,
internal/bundler_tests/bundler_ts_test.go:1430: "/node_modules/pkg-exports/abc-jsx.tsx": `console.log("correct")`,
internal/bundler_tests/bundler_ts_test.go:1431: "/node_modules/pkg-exports/lib/foo-js.ts": `console.log("correct")`,
internal/bundler_tests/bundler_ts_test.go:1432: "/node_modules/pkg-exports/lib/foo-jsx.tsx": `console.log("correct")`,
internal/bundler_tests/bundler_ts_test.go:1434: "/node_modules/pkg-imports/package.json": `{
internal/bundler_tests/bundler_ts_test.go:1441: "/node_modules/pkg-imports/index.js": `
internal/bundler_tests/bundler_ts_test.go:1447: "/node_modules/pkg-imports/abc-js.ts": `console.log("correct")`,
internal/bundler_tests/bundler_ts_test.go:1448: "/node_modules/pkg-imports/abc-jsx.tsx": `console.log("correct")`,
internal/bundler_tests/bundler_ts_test.go:1449: "/node_modules/pkg-imports/lib/foo-js.ts": `console.log("correct")`,
internal/bundler_tests/bundler_ts_test.go:1450: "/node_modules/pkg-imports/lib/foo-jsx.tsx": `console.log("correct")`,
internal/bundler_tests/bundler_ts_test.go:1892: "/node_modules/some-js/package.json": `{ "main": "./foo.js", "sideEffects": false }`,
internal/bundler_tests/bundler_ts_test.go:1893: "/node_modules/some-js/foo.js": `console.log('foo')`,
internal/bundler_tests/bundler_ts_test.go:1895: "/node_modules/some-ts/package.json": `{ "main": "./foo.ts", "sideEffects": false }`,
internal/bundler_tests/bundler_ts_test.go:1896: "/node_modules/some-ts/foo.ts": `console.log('foo' as string)`,
internal/bundler_tests/bundler_ts_test.go:1898: "/node_modules/empty-js/package.json": `{ "main": "./foo.js", "sideEffects": false }`,
internal/bundler_tests/bundler_ts_test.go:1899: "/node_modules/empty-js/foo.js": ``,
internal/bundler_tests/bundler_ts_test.go:1901: "/node_modules/empty-ts/package.json": `{ "main": "./foo.ts", "sideEffects": false }`,
internal/bundler_tests/bundler_ts_test.go:1902: "/node_modules/empty-ts/foo.ts": `export type Foo = number`,
internal/bundler_tests/bundler_ts_test.go:1904: "/node_modules/empty-dts/package.json": `{ "main": "./foo.d.ts", "sideEffects": false }`,
internal/bundler_tests/bundler_ts_test.go:1905: "/node_modules/empty-dts/foo.d.ts": `export type Fo…11837 tokens truncated…son": `
internal/bundler_tests/bundler_tsconfig_test.go:1342: "~/project/src/node_modules/foo/index.tsx": `
internal/bundler_tests/bundler_tsconfig_test.go:1345: "~/project/src/node_modules/foo/tsconfig.json": `
internal/bundler_tests/bundler_tsconfig_test.go:1372: "~/project/src/node_modules/bar/tsconfig.json": `{ "extends": "extends for bar" }`,
internal/bundler_tests/bundler_tsconfig_test.go:1373: "~/project/src/node_modules/bar/index.js": ``,
internal/bundler_tests/bundler_tsconfig_test.go:1591: "~/project/src/node_modules/b/index.ts": ``,
internal/bundler_tests/bundler_tsconfig_test.go:1592: "~/project/src/node_modules/b/tsconfig.json": `{
internal/bundler_tests/bundler_tsconfig_test.go:1621: "~/project/src/node_modules/b/index.ts": ``,
internal/bundler_tests/bundler_tsconfig_test.go:1622: "~/project/src/node_modules/b/tsconfig.json": `{
internal/bundler_tests/bundler_tsconfig_test.go:1743: "~/project/node_modules/wow/package.json": `{
internal/bundler_tests/bundler_tsconfig_test.go:1758: "~/project/node_modules/wow/tsconfig.json": `{
internal/bundler_tests/bundler_tsconfig_test.go:1763: "~/project/node_modules/wow/dist/first.js": `
internal/bundler_tests/bundler_tsconfig_test.go:1766: "~/project/node_modules/wow/dist/next.js": `
internal/bundler_tests/bundler_tsconfig_test.go:1770: "~/project/node_modules/wow/first.ts": `
internal/bundler_tests/bundler_tsconfig_test.go:2165: "~/project/node_modules/@whatever/tsconfig/package.json": `{
internal/bundler_tests/bundler_tsconfig_test.go:2170: "~/project/node_modules/@whatever/tsconfig/foo.json": `{
internal/bundler_tests/bundler_tsconfig_test.go:2194: "~/project/node_modules/@whatever/tsconfig/package.json": `{
internal/bundler_tests/bundler_tsconfig_test.go:2199: "~/project/node_modules/@whatever/tsconfig/tsconfig.a/b/c.json": `{
internal/bundler_tests/bundler_tsconfig_test.go:2223: "~/project/node_modules/@whatever/tsconfig/package.json": `{
internal/bundler_tests/bundler_tsconfig_test.go:2228: "~/project/node_modules/@whatever/tsconfig/tsconfig.a/b/c.json": `{
internal/bundler_tests/bundler_tsconfig_test.go:2252: "~/project/node_modules/@whatever/tsconfig/package.json": `{
internal/bundler_tests/bundler_tsconfig_test.go:2261: "~/project/node_modules/@whatever/tsconfig/import.json": `FAILURE`,
internal/bundler_tests/bundler_tsconfig_test.go:2262: "~/project/node_modules/@whatever/tsconfig/default.json": `FAILURE`,
internal/bundler_tests/bundler_tsconfig_test.go:2263: "~/project/node_modules/@whatever/tsconfig/require.json": `{
internal/bundler_tests/bundler_tsconfig_test.go:2440: "~/project/node_modules/js-pkg/index.js": `
internal/bundler_tests/bundler_tsconfig_test.go:2444: "~/project/node_modules/ts-pkg/index.ts": `
internal/bundler_tests/bundler_tsconfig_test.go:2448: "~/project/node_modules/pkg/index.js": `
internal/bundler_tests/bundler_tsconfig_test.go:2599: "~/project/node_modules/@scope/configs/tsconfig.json": `
internal/bundler_tests/bundler_tsconfig_test.go:2629: "~/project/node_modules/@scope/configs/tsconfig.json": `
internal/bundler_tests/bundler_tsconfig_test.go:2661: "~/project/node_modules/@scope/configs/tsconfig.json": `
internal/bundler_tests/bundler_importstar_test.go:1730: // This is for compatibility with node. So this test intentionally behaves
internal/bundler_tests/bundler_importstar_test.go:1779: // This is for compatibility with node. So this test intentionally behaves
internal/bundler_tests/bundler_default_test.go:632: "~/project/node_modules/demo-pkg/index.js": `
internal/bundler_tests/bundler_default_test.go:1392: "/entry.js": `#!/usr/bin/env node
internal/bundler_tests/bundler_default_test.go:1435:NOTE: The package "fs" wasn't found on the file system but is built into node. Are you trying to bundle for node? You can use "Platform: api.PlatformNode" to do that, which will remove this error.
internal/bundler_tests/bundler_default_test.go:1493:NOTE: The package "fs" wasn't found on the file system but is built into node. Are you trying to bundle for node? You can use "Platform: api.PlatformNode" to do that, which will remove this error.
internal/bundler_tests/bundler_default_test.go:1555:NOTE: The package "fs" wasn't found on the file system but is built into node. Are you trying to bundle for node? You can use "Platform: api.PlatformNode" to do that, which will remove this error.
internal/bundler_tests/bundler_default_test.go:1720: // If this local is called "exports", node incorrectly
internal/bundler_tests/bundler_default_test.go:2536: import pkg from '~/project/node_modules/pkg/index'
internal/bundler_tests/bundler_default_test.go:2539: "~/project/node_modules/pkg/index.js": `
internal/bundler_tests/bundler_default_test.go:2555: import pkg from '~/project/node_modules/pkg'
internal/bundler_tests/bundler_default_test.go:2558: "~/project/node_modules/pkg/index.js": `
internal/bundler_tests/bundler_default_test.go:2572: import pkg from 'C:\\Users\\user\\project\\node_modules\\pkg'
internal/bundler_tests/bundler_default_test.go:2575: "C:\\Users\\user\\project\\node_modules\\pkg\\index.js": `
internal/bundler_tests/bundler_default_test.go:2611: import fs from "node:fs/promises";
internal/bundler_tests/bundler_default_test.go:2615: import "node:path";
internal/bundler_tests/bundler_default_test.go:2618: import "node:what-is-this";
internal/bundler_tests/bundler_default_test.go:3654: "/project/node_modules/some-pkg/js/index.js": `
internal/bundler_tests/bundler_default_test.go:3659: "/project/node_modules/some-other-pkg/js/index.js": `
internal/bundler_tests/bundler_default_test.go:3698: "/project/node_modules/some-pkg/css/index.css": `
internal/bundler_tests/bundler_default_test.go:3703: "/project/node_modules/some-other-pkg/css/index.css": `
internal/bundler_tests/bundler_default_test.go:3728: "/project/node_modules/js-pkg/index.js": `x /*! </script> */`,
internal/bundler_tests/bundler_default_test.go:3731: "/project/node_modules/css-pkg/index.css": `x { y: z } /*! </style> */`,
internal/bundler_tests/bundler_default_test.go:3747: "/project/node_modules/js-pkg/index.js": `x /*! </script> */`,
internal/bundler_tests/bundler_default_test.go:3750: "/project/node_modules/css-pkg/index.css": `x { y: z } /*! </style> */`,
internal/bundler_tests/bundler_default_test.go:3766: "/project/node_modules/js-pkg/index.js": `x /*! </script> */`,
internal/bundler_tests/bundler_default_test.go:3769: "/project/node_modules/css-pkg/index.css": `x { y: z } /*! </style> */`,
internal/bundler_tests/bundler_default_test.go:3786: "/project/node_modules/js-pkg/index.js": `x /*! </script> */`,
internal/bundler_tests/bundler_default_test.go:3789: "/project/node_modules/css-pkg/index.css": `x { y: z } /*! </style> */`,
internal/bundler_tests/bundler_default_test.go:3824: "/project/node_modules/some-pkg/js/index.js": `import "some-other-pkg/js" //! (c) Good Software Corp`,
internal/bundler_tests/bundler_default_test.go:3825: "/project/node_modules/some-other-pkg/js/index.js": `
internal/bundler_tests/bundler_default_test.go:3854: "/project/node_modules/some-pkg/css/index.css": `@import "some-other-pkg/css"; /*! (c) Good Software Corp */`,
internal/bundler_tests/bundler_default_test.go:3855: "/project/node_modules/some-other-pkg/css/index.css": `
internal/bundler_tests/bundler_default_test.go:3884: "/project/node_modules/pkg/a.js": `
internal/bundler_tests/bundler_default_test.go:3892: "/project/node_modules/pkg/b.js": `
internal/bundler_tests/bundler_default_test.go:3900: "/project/node_modules/pkg/c.js": `
internal/bundler_tests/bundler_default_test.go:3909: "/project/node_modules/pkg/d.js": `
internal/bundler_tests/bundler_default_test.go:4381: "/node_modules/foo/index.js": ``,
internal/bundler_tests/bundler_default_test.go:4563: import "./dup-case.js"; import "./node_modules/dup-case.js"; import "@plugin/dup-case.js"
internal/bundler_tests/bundler_default_test.go:4564: import "./not-in.js"; import "./node_modules/not-in.js"; import "@plugin/not-in.js"
internal/bundler_tests/bundler_default_test.go:4565: import "./not-instanceof.js"; import "./node_modules/not-instanceof.js"; import "@plugin/not-instanceof.js"
internal/bundler_tests/bundler_default_test.go:4566: import "./return-asi.js"; import "./node_modules/return-asi.js"; import "@plugin/return-asi.js"
internal/bundler_tests/bundler_default_test.go:4567: import "./bad-typeof.js"; import "./node_modules/bad-typeof.js"; import "@plugin/bad-typeof.js"
internal/bundler_tests/bundler_default_test.go:4568: import "./equals-neg-zero.js"; import "./node_modules/equals-neg-zero.js"; import "@plugin/equals-neg-zero.js"
internal/bundler_tests/bundler_default_test.go:4569: import "./equals-nan.js"; import "./node_modules/equals-nan.js"; import "@plugin/equals-nan.js"
internal/bundler_tests/bundler_default_test.go:4570: import "./equals-object.js"; import "./node_modules/equals-object.js"; import "@plugin/equals-object.js"
internal/bundler_tests/bundler_default_test.go:4571: import "./write-getter.js"; import "./node_modules/write-getter.js"; import "@plugin/write-getter.js"
internal/bundler_tests/bundler_default_test.go:4572: import "./read-setter.js"; import "./node_modules/read-setter.js"; import "@plugin/read-setter.js"
internal/bundler_tests/bundler_default_test.go:4573: import "./delete-super.js"; import "./node_modules/delete-super.js"; import "@plugin/delete-super.js"
internal/bundler_tests/bundler_default_test.go:4577: "/node_modules/dup-case.js": "switch (x) { case 0: case 0: }",
internal/bundler_tests/bundler_default_test.go:4578: "/plugin-dir/node_modules/dup-case.js": "switch (x) { case 0: case 0: }",
internal/bundler_tests/bundler_default_test.go:4581: "/node_modules/not-in.js": "!a in b",
internal/bundler_tests/bundler_default_test.go:4582: "/plugin-dir/node_modules/not-in.js": "!a in b",
internal/bundler_tests/bundler_default_test.go:4585: "/node_modules/not-instanceof.js": "!a instanceof b",
internal/bundler_tests/bundler_default_test.go:4586: "/plugin-dir/node_modules/not-instanceof.js": "!a instanceof b",
internal/bundler_tests/bundler_default_test.go:4589: "/node_modules/return-asi.js": "return\n123",
internal/bundler_tests/bundler_default_test.go:4590: "/plugin-dir/node_modules/return-asi.js": "return\n123",
internal/bundler_tests/bundler_default_test.go:4593: "/node_modules/bad-typeof.js": "typeof x == 'null'",
internal/bundler_tests/bundler_default_test.go:4594: "/plugin-dir/node_modules/bad-typeof.js": "typeof x == 'null'",
internal/bundler_tests/bundler_default_test.go:4597: "/node_modules/equals-neg-zero.js": "x === -0",
internal/bundler_tests/bundler_default_test.go:4598: "/plugin-dir/node_modules/equals-neg-zero.js": "x === -0",
internal/bundler_tests/bundler_default_test.go:4601: "/node_modules/equals-nan.js": "x === NaN",
internal/bundler_tests/bundler_default_test.go:4602: "/plugin-dir/node_modules/equals-nan.js": "x === NaN",
internal/bundler_tests/bundler_default_test.go:4605: "/node_modules/equals-object.js": "x === []",
internal/bundler_tests/bundler_default_test.go:4606: "/plugin-dir/node_modules/equals-object.js": "x === []",
internal/bundler_tests/bundler_default_test.go:4609: "/node_modules/write-getter.js": "class Foo { get #foo() {} foo() { this.#foo = 123 } }",
internal/bundler_tests/bundler_default_test.go:4610: "/plugin-dir/node_modules/write-getter.js": "class Foo { get #foo() {} foo() { this.#foo = 123 } }",
internal/bundler_tests/bundler_default_test.go:4613: "/node_modules/read-setter.js": "class Foo { set #foo(x) {} foo() { return this.#foo } }",
internal/bundler_tests/bundler_default_test.go:4614: "/plugin-dir/node_modules/read-setter.js": "class Foo { set #foo(x) {} foo() { return this.#foo } }",
internal/bundler_tests/bundler_default_test.go:4617: "/node_modules/delete-super.js": "class Foo extends Bar { foo() { delete super.foo } }",
internal/bundler_tests/bundler_default_test.go:4618: "/plugin-dir/node_modules/delete-super.js": "class Foo extends Bar { foo() { delete super.foo } }",
internal/bundler_tests/bundler_default_test.go:4631: Text: strings.Replace(args.Path, "@plugin/", "/plugin-dir/node_modules/", 1),
internal/bundler_tests/bundler_default_test.go:4817: "/node_modules/unused/index.js": `
internal/bundler_tests/bundler_default_test.go:4820: "/node_modules/sideEffects-false/index.js": `
internal/bundler_tests/bundler_default_test.go:4823: "/node_modules/sideEffects-false/package.json": `{
internal/bundler_tests/bundler_default_test.go:4851: "/node_modules/unused/index.js",
internal/bundler_tests/bundler_default_test.go:4852: "/node_modules/sideEffects-false/index.js",
internal/bundler_tests/bundler_default_test.go:4917: "/node_modules/unused/index.js": `
internal/bundler_tests/bundler_default_test.go:4920: "/node_modules/sideEffects-false/index.js": `
internal/bundler_tests/bundler_default_test.go:4923: "/node_modules/sideEffects-false/package.json": `{
internal/bundler_tests/bundler_default_test.go:4951: "/node_modules/unused/index.js",
internal/bundler_tests/bundler_default_test.go:4952: "/node_modules/sideEffects-false/index.js",
internal/bundler_tests/bundler_default_test.go:6574: "/node_modules/pkg/file2.js": `
internal/bundler_tests/bundler_default_test.go:6586:node_modules/pkg/file2.js: DEBUG: Top-level "this" will be replaced with undefined since this file is an ECMAScript module
internal/bundler_tests/bundler_default_test.go:6587:node_modules/pkg/file2.js: NOTE: This file is considered to be an ECMAScript module because of the "export" keyword here:
internal/bundler_tests/bundler_default_test.go:6641: import './outside-node-modules'
internal/bundler_tests/bundler_default_test.go:6642: import 'inside-node-modules'
internal/bundler_tests/bundler_default_test.go:6644: "/outside-node-modules/index.jsx": `
internal/bundler_tests/bundler_default_test.go:6647: "/outside-node-modules/package.json": `
internal/bundler_tests/bundler_default_test.go:6650: "/node_modules/inside-node-modules/index.jsx": `
internal/bundler_tests/bundler_default_test.go:6653: "/node_modules/inside-node-modules/package.json": `
internal/bundler_tests/bundler_default_test.go:6662: expectedScanLog: `outside-node-modules/index.jsx: WARNING: Duplicate key "a" in object literal
internal/bundler_tests/bundler_default_test.go:6663:outside-node-modules/index.jsx: NOTE: The original key "a" is here:
internal/bundler_tests/bundler_default_test.go:6664:outside-node-modules/index.jsx: WARNING: Duplicate "a2" attribute in JSX element
internal/bundler_tests/bundler_default_test.go:6665:outside-node-modules/index.jsx: NOTE: The original "a2" attribute is here:
internal/bundler_tests/bundler_default_test.go:6666:outside-node-modules/package.json: WARNING: Duplicate key "b" in object literal
internal/bundler_tests/bundler_default_test.go:6667:outside-node-modules/package.json: NOTE: The original key "b" is here:
internal/bundler_tests/bundler_default_test.go:6741: // These are node core modules
internal/bundler_tests/bundler_default_test.go:6744: require('node:foo'),
internal/bundler_tests/bundler_default_test.go:6746: // These are not node core modules
internal/bundler_tests/bundler_default_test.go:6751: "/node_modules/fs/abc.js": `
internal/bundler_tests/bundler_default_test.go:6754: "/node_modules/fs/index.js": `
internal/bundler_tests/bundler_default_test.go:6757: "/node_modules/fs/promises.js": `
internal/bundler_tests/bundler_default_test.go:8001: "/nested3/node_modules/alias3/index.js": `test failure`,
internal/bundler_tests/bundler_default_test.go:8002: "/node_modules/alias1/index.js": `console.log(1)`,
internal/bundler_tests/bundler_default_test.go:8003: "/node_modules/alias2/foo.js": `console.log(2)`,
internal/bundler_tests/bundler_default_test.go:8004: "/node_modules/alias3/index.js": `console.log(3)`,
internal/bundler_tests/bundler_default_test.go:8005: "/node_modules/alias4/index.js": `console.log(4)`,
internal/bundler_tests/bundler_default_test.go:8006: "/node_modules/alias5/foo.js": `console.log(5)`,
internal/bundler_tests/bundler_default_test.go:8011: "/node_modules/prefix-foo/index.js": `console.log(10)`,
internal/bundler_tests/bundler_default_test.go:8012: "/node_modules/@scope/prefix-foo/index.js": `console.log(11)`,
internal/bundler_tests/bundler_default_test.go:8207: import './node_modules/pkg2/index.js'
internal/bundler_tests/bundler_default_test.go:8218: "/project/node_modules/pkg2/index.js": `
internal/bundler_tests/bundler_default_test.go:8598: // Comments on absent AST nodes
internal/bundler_tests/bundler_default_test.go:8634: // Comments on absent AST nodes
internal/bundler_tests/bundler_default_test.go:8664: "/project/node_modules/fflate/package.json": `{ "main": "main.js" }`,
internal/bundler_tests/bundler_default_test.go:8665: "/project/node_modules/fflate/main.js": ``,
internal/bundler_tests/bundler_default_test.go:8669: Contents: `import "node_modules/fflate"`,
internal/bundler_tests/bundler_default_test.go:8676: expectedScanLog: `<stdin>: ERROR: Could not resolve "node_modules/fflate"
internal/bundler_tests/bundler_default_test.go:8677:NOTE: You can mark the path "node_modules/fflate" as external to exclude it from the bundle, which will remove this error and leave the unresolved path in the bundle.
internal/bundler_tests/bundler_default_test.go:9304: "~/project/node_modules/pkg/index.js": `exports.pkg = true`,
internal/bundler_tests/bundler_default_test.go:9329: "~/project/node_modules/pkg/index.js": `exports.pkg = true`,
internal/bundler_tests/bundler_default_test.go:9353: "/node_modules/expo-image/index.js": `
internal/bundler_tests/bundler_default_test.go:9356: "/node_modules/expo-image/Image.web.tsx": `export default 'Image.web.tsx'`,
internal/bundler_tests/bundler_default_test.go:9357: "/node_modules/expo-image/Image.tsx": `export default 'Image.tsx'`,
internal/resolver/yarnpnp_test.go:85: // normal node module resolution rules instead of throwing an error.
internal/resolver/yarnpnp_test.go:94: // Otherwise esbuild's implementation of node module resolution
internal/js_lexer/js_lexer_test.go:93: expectHashbang(t, "#!/usr/bin/env node", "#!/usr/bin/env node")
internal/js_lexer/js_lexer_test.go:94: expectHashbang(t, "#!/usr/bin/env node\n", "#!/usr/bin/env node")
internal/js_lexer/js_lexer_test.go:95: expectHashbang(t, "#!/usr/bin/env node\nlet x", "#!/usr/bin/env node")
internal/js_lexer/js_lexer_test.go:96: expectLexerError(t, " #!/usr/bin/env node", "<stdin>: ERROR: Syntax error \"!\"\n")
internal/js_lexer/js_lexer_test.go:554: // "#!/usr/bin/env node"
internal/js_parser/js_parser_test.go:3005: // We support folding strings from sibling AST nodes since that ends up being
internal/js_parser/json_parser_test.go:189: expectParseErrorJSON(t, "#!/usr/bin/env node\n{}", "<stdin>: ERROR: Unexpected \"#!/usr/bin/env node\" in JSON\n")
internal/js_ast/js_ast_test.go:19: assertEqual(t, GenerateNonUniqueNameFromPath("node_modules/demo-pkg/index.js"), "demo_pkg")
internal/js_ast/js_ast_test.go:20: assertEqual(t, GenerateNonUniqueNameFromPath("node_modules\\demo-pkg\\index.js"), "demo_pkg")
sed -n '1,140p' pkg/api/api_test.go && rg -n "Transform\(|Build\(" pkg/api internal -g '*_test.go' | head -80Chunk ID: b497b8
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 915
Output:
package api_test
import (
"testing"
"[code-host]/evanw/esbuild/internal/test"
"[code-host]/evanw/esbuild/pkg/api"
)
func TestFormatMessages(t *testing.T) {
check := func(name string, opts api.FormatMessagesOptions, msg api.Message, expected string) {
t.Helper()
t.Run(name, func(t *testing.T) {
test.AssertEqualWithDiff(t, api.FormatMessages([]api.Message{msg}, opts)[0], expected)
})
}
check("Error", api.FormatMessagesOptions{Kind: api.ErrorMessage}, api.Message{Text: "This is a test"}, "✘ [ERROR] This is a test\n\n")
check("Warning", api.FormatMessagesOptions{Kind: api.WarningMessage}, api.Message{Text: "This is a test"}, "▲ [WARNING] This is a test\n\n")
check("Basic location",
api.FormatMessagesOptions{},
api.Message{Text: "This is a test", Location: &api.Location{
File: "some file.js",
Line: 100,
Column: 5, // 0-based
Length: 3,
LineText: "this.foo();",
Suggestion: "bar",
}},
`✘ [ERROR] This is a test
some file.js:100:5:
100 │ this.foo();
│ ~~~
╵ bar
`,
)
check("Unicode location",
api.FormatMessagesOptions{
Kind: api.WarningMessage,
},
api.Message{Text: "This is a test", Location: &api.Location{
File: "some file.js",
Line: 100,
Column: 17, // In UTF-8 bytes
Length: 10, // In UTF-8 bytes
LineText: "𝓉𝒽𝒾𝓈.𝒻ℴℴ();",
Suggestion: "𝒷𝒶𝓇",
}},
`▲ [WARNING] This is a test
some file.js:100:17:
100 │ 𝓉𝒽𝒾𝓈.𝒻ℴℴ();
│ ~~~
╵ 𝒷𝒶𝓇
`,
)
check("Tab stop rendering",
api.FormatMessagesOptions{
Kind: api.WarningMessage,
},
api.Message{Text: "This is a test", Location: &api.Location{
File: "some file.js",
Line: 100,
Column: 6,
Length: 4,
LineText: "0\t1\t23\t45\t678",
}},
`▲ [WARNING] This is a test
some file.js:100:6:
100 │ 0 1 23 45 678
╵ ~~~~~~
`,
)
check("Truncated location tail, zero length",
api.FormatMessagesOptions{
TerminalWidth: 32,
},
api.Message{Text: "This is a test", Location: &api.Location{
File: "some file.js",
Line: 100,
Column: 3,
Length: 0,
LineText: "012345678 abcdefghi ABCDEFGHI 012345678 abcdefghi ABCDEFGHI",
}},
`✘ [ERROR] This is a test
some file.js:100:3:
100 │ 012345678 abcdefg...
╵ ^
`,
)
check("Truncated location tail, nonzero length",
api.FormatMessagesOptions{
TerminalWidth: 32,
},
api.Message{Text: "This is a test", Location: &api.Location{
File: "some file.js",
Line: 100,
Column: 3,
Length: 6,
LineText: "012345678 abcdefghi ABCDEFGHI 012345678 abcdefghi ABCDEFGHI",
}},
`✘ [ERROR] This is a test
some file.js:100:3:
100 │ 012345678 abcdefg...
╵ ~~~~~~
`,
)
check("Truncated location tail, truncated length",
api.FormatMessagesOptions{
TerminalWidth: 32,
},
api.Message{Text: "This is a test", Location: &api.Location{
File: "some file.js",
Line: 100,
Column: 3,
Length: 100,
LineText: "012345678 abcdefghi ABCDEFGHI 012345678 abcdefghi ABCDEFGHI",
}},
`✘ [ERROR] This is a test
some file.js:100:3:
100 │ 012345678 abcdefg...
╵ ~~~~~~~~~~~~~~
`,
internal/bundler_tests/bundler_loader_test.go:1202:func TestLoaderCopyWithTransform(t *testing.T) {
internal/css_parser/css_parser_test.go:2261:func TestTransform(t *testing.T) {
internal/bundler_tests/bundler_default_test.go:7337:func TestManglePropsJSXTransform(t *testing.T) {
*** Begin Patch
*** Update File: /app/internal/runtime/runtime.go
@@
export var __asyncGenerator = (__this, __arguments, generator) => {
var resume = (k, v, yes, no) => {
try {
var x = generator[k](v), isAwait = (v = x.value) instanceof __await, done = x.done
Promise.resolve(isAwait ? v[0] : v)
.then(y => isAwait
- ? resume(k === 'return' ? k : 'next', v[1] ? { done: y.done, value: y.value } : y, yes, no)
+ ? resume(v[1] && k === 'return' ? 'return' : 'next', v[1] ? { done: y.done, value: y.value } : y, yes, no)
: yes({ value: y, done }))
.catch(e => resume('throw', e, yes, no))
} catch (e) {
no(e)
}
- }, method = k => it[k] = x => new Promise((yes, no) => resume(k, x, yes, no)), it = {}
+ }, method = k => it[k] = x => {
+ var run, promise = new Promise((yes, no) => {
+ run = () => resume(k, x, yes, no)
+ wait ? wait.then(k === 'return' ? () => Promise.resolve().then(run) : run, k === 'return' ? () => Promise.resolve().then(run) : run) : run()
+ })
+ return wait = promise,
+ promise.then(() => wait === promise && (wait = null), () => wait === promise && (wait = null)),
+ promise
+ }, it = {}, wait
return generator = generator.apply(__this, __arguments),
it[__knownSymbol('asyncIterator')] = () => it,
method('next'),
*** End Patch
Exit code: 0
Wall time: 0 seconds
Output:
Success. Updated the following files:
M /app/internal/runtime/runtime.go
go test ./internal/runtime
Chunk ID: 68f113 Wall time: 1.9698 seconds Process exited with code 0 Original token count: 14 Output: ok [code-host]/evanw/esbuild/internal/runtime 0.089s
go run ./cmd/esbuild /tmp/ag-case.js --bundle --target=es2017 --format=cjs --outfile=/tmp/ag-case.out.js && node /tmp/ag-case.out.js
Chunk ID: f2ae10
Wall time: 2.3409 seconds
Process exited with code 0
Original token count: 79
Output:
../tmp/ag-case.out.js 3.4kb
⚡ Done in 1ms
["before calls","outer start","inner start","before yield await","after next1","after return","before resolve","after resolve","await done","p1 {\"value\":\"first\",\"done\":false}","finally before cleanup","p2 {\"value\":\"cleanup\",\"done\":false}","after all"]
go run ./cmd/esbuild /tmp/ag-case.js --bundle --target=es6 --format=cjs --outfile=/tmp/ag-case.es6.out.js && node /tmp/ag-case.es6.out.js
Chunk ID: 2ff93b
Wall time: 2.3420 seconds
Process exited with code 0
Original token count: 80
Output:
../tmp/ag-case.es6.out.js 4.0kb
⚡ Done in 1ms
["before calls","outer start","inner start","before yield await","after next1","after return","before resolve","after resolve","await done","p1 {\"value\":\"first\",\"done\":false}","finally before cleanup","p2 {\"value\":\"cleanup\",\"done\":false}","after all"]
node - <<'EOF'
let trace=[];let release;let gate=new Promise(r=>release=r);async function* inner(){trace.push('start');try{let a=yield await gate.then(()=>{trace.push('await');return 'first'}); trace.push('after '+a)}catch(e){trace.push('catch '+e);let b=yield 'recovery';trace.push('after recovery '+b)}finally{trace.push('finally')}} async function* outer(){yield* inner(); trace.push('outer after')} (async()=>{let it=outer();let p1=it.next();let p2=it.throw('boom');let p3=it.next('after'); for (let [n,p] of [['p1',p1],['p2',p2],['p3',p3]]) p.then(x=>trace.push(n+' '+JSON.stringify(x)),e=>trace.push(n+'err '+e)); release(); await Promise.allSettled([p1,p2,p3]); console.log(JSON.stringify(trace))})()
EOFChunk ID: a87aad
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 47
Output:
["start","await","catch boom","p1 {\"value\":\"first\",\"done\":false}","after recovery after","finally","p2 {\"value\":\"recovery\",\"done\":false}","outer after","p3 {\"done\":true}"]
node - <<'EOF'
let trace=[];let release;let gate=new Promise(r=>release=r);async function* src(){try{trace.push('src start'); yield await gate.then(()=>{trace.push('src await'); return 'one'}); trace.push('src after')}finally{trace.push('src finally'); yield 'src cleanup'; trace.push('src finally after')}} async function* outer(){ for await (let x of src()){trace.push('loop '+x); yield x;} trace.push('loop after')} (async()=>{let it=outer();let p1=it.next();let p2=it.return('done');let p3=it.next('after'); for (let [n,p] of [['p1',p1],['p2',p2],['p3',p3]]) p.then(x=>trace.push(n+' '+JSON.stringify(x)),e=>trace.push(n+'err '+e)); release(); await Promise.allSettled([p1,p2,p3]); console.log(JSON.stringify(trace))})()
EOFChunk ID: df5d26
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 38
Output:
["src start","src await","loop one","p1 {\"value\":\"one\",\"done\":false}","src finally","p2 {\"value\":\"done\",\"done\":true}","p3 {\"done\":true}"]
node - <<'EOF'
let trace=[];let release;let gate=new Promise(r=>release=r);async function* g(){try{trace.push('start'); yield 'a'}finally{trace.push('finally start'); await gate.then(()=>trace.push('await done')); trace.push('finally after await'); let b=yield 'cleanup'; trace.push('finally after cleanup '+b)}} (async()=>{let it=g();let p1=it.next();let p2=it.return('done');let p3=it.next('after'); for (let [n,p] of [['p1',p1],['p2',p2],['p3',p3]]) p.then(x=>trace.push(n+' '+JSON.stringify(x)),e=>trace.push(n+'err '+e)); trace.push('before release'); release(); await Promise.allSettled([p1,p2,p3]); console.log(JSON.stringify(trace))})()
EOFChunk ID: f88598
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 58
Output:
["start","before release","p1 {\"value\":\"a\",\"done\":false}","finally start","await done","finally after await","finally after cleanup after","p2 {\"value\":\"cleanup\",\"done\":false}","p3 {\"value\":\"done\",\"done\":true}"]
cat >/tmp/ag-suite.js <<'EOF'
let trace = [];
let gate;
let release;
function reset(name) {
trace.push('case ' + name);
gate = new Promise(r => release = r);
}
function watch(name, promise) {
promise.then(
value => trace.push(name + ' ' + JSON.stringify(value)),
error => trace.push(name + ' throw ' + (error && error.message || error))
);
}
async function delegatedReturnOne() {
reset('delegated-return-one');
async function* inner() {
trace.push('inner start');
try {
const back = yield await gate.then(() => (trace.push('await done'), 'first'));
trace.push('after first ' + back);
yield 'second';
} finally {
trace.push('finally before cleanup');
const back = yield 'cleanup';
trace.push('finally after cleanup ' + back);
}
}
async function* outer() {
trace.push('outer start');
yield* inner();
trace.push('outer after yieldstar');
}
let it = outer();
let p1 = it.next();
trace.push('after next1');
let p2 = it.return('done');
trace.push('after return');
watch('p1', p1);
watch('p2', p2);
release();
await Promise.allSettled([p1, p2]);
}
async function delegatedReturnMany() {
reset('delegated-return-many');
async function* inner() {
try {
trace.push('many try');
const back = yield await gate.then(() => (trace.push('many await'), 'first'));
trace.push('many after first ' + back);
yield 'second';
} finally {
trace.push('many finally before');
const back = yield 'cleanup';
trace.push('many finally after ' + back);
}
}
async function* outer() { yield* inner(); trace.push('many outer after'); }
let it = outer();
let p1 = it.next();
let p2 = it.next('two');
let p3 = it.return('done');
let p4 = it.next('after');
watch('p1', p1);
watch('p2', p2);
watch('p3', p3);
watch('p4', p4);
release();
await Promise.allSettled([p1, p2, p3, p4]);
}
async function delegatedThrowCatch() {
reset('delegated-throw-catch');
async function* inner() {
trace.push('throw start');
try {
const back = yield await gate.then(() => (trace.push('throw await'), 'first'));
trace.push('throw after ' + back);
} catch (e) {
trace.push('throw catch ' + e);
const back = yield 'recovery';
trace.push('throw after recovery ' + back);
} finally {
trace.push('throw finally');
}
}
async function* outer() { yield* inner(); trace.push('throw outer after'); }
let it = outer();
let p1 = it.next();
let p2 = it.throw('boom');
let p3 = it.next('after');
watch('p1', p1);
watch('p2', p2);
watch('p3', p3);
release();
await Promise.allSettled([p1, p2, p3]);
}
async function forAwaitReturn() {
reset('for-await-return');
async function* src() {
try {
trace.push('src start');
yield await gate.then(() => (trace.push('src await'), 'one'));
trace.push('src after');
} finally {
trace.push('src finally');
yield 'src cleanup';
trace.push('src finally after');
}
}
async function* outer() {
for await (let x of src()) {
trace.push('loop ' + x);
yield x;
}
trace.push('loop after');
}
let it = outer();
let p1 = it.next();
let p2 = it.return('done');
let p3 = it.next('after');
watch('p1', p1);
watch('p2', p2);
watch('p3', p3);
release();
await Promise.allSettled([p1, p2, p3]);
}
async function awaitInFinallyReturn() {
reset('await-in-finally-return');
async function* gen() {
try {
trace.push('await finally start');
yield 'a';
} finally {
trace.push('await finally before');
await gate.then(() => trace.push('await finally gate'));
trace.push('await finally after await');
const back = yield 'cleanup';
trace.push('await finally after cleanup ' + back);
}
}
let it = gen();
let p1 = it.next();
let p2 = it.return('done');
let p3 = it.next('after');
watch('p1', p1);
watch('p2', p2);
watch('p3', p3);
release();
await Promise.allSettled([p1, p2, p3]);
}
async function main() {
await delegatedReturnOne();
await delegatedReturnMany();
await delegatedThrowCatch();
await forAwaitReturn();
await awaitInFinallyReturn();
console.log(JSON.stringify(trace));
}
main().catch(e => { console.log('ERROR ' + (e && e.stack || e)); process.exitCode = 1; });
EOF
node /tmp/ag-suite.js > /tmp/ag-suite.native.txt
go run ./cmd/esbuild /tmp/ag-suite.js --bundle --target=es2017 --format=cjs --outfile=/tmp/ag-suite.out.js >/tmp/ag-suite.bundle.log && node /tmp/ag-suite.out.js > /tmp/ag-suite.lowered.txt
printf 'native: '; cat /tmp/ag-suite.native.txt
printf 'lowered: '; cat /tmp/ag-suite.lowered.txt
cmp -s /tmp/ag-suite.native.txt /tmp/ag-suite.lowered.txt && echo MATCH || echo DIFFERChunk ID: a9e87b
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 624
Output:
../tmp/ag-suite.out.js 7.9kb
⚡ Done in 2ms
native: ["case delegated-return-one","outer start","inner start","after next1","after return","await done","p1 {\"value\":\"first\",\"done\":false}","finally before cleanup","p2 {\"value\":\"cleanup\",\"done\":false}","case delegated-return-many","many try","many await","many after first two","p1 {\"value\":\"first\",\"done\":false}","p2 {\"value\":\"second\",\"done\":false}","many finally before","many finally after after","p3 {\"value\":\"cleanup\",\"done\":false}","many outer after","p4 {\"done\":true}","case delegated-throw-catch","throw start","throw await","throw catch boom","p1 {\"value\":\"first\",\"done\":false}","throw after recovery after","throw finally","p2 {\"value\":\"recovery\",\"done\":false}","throw outer after","p3 {\"done\":true}","case for-await-return","src start","src await","loop one","p1 {\"value\":\"one\",\"done\":false}","src finally","p2 {\"value\":\"done\",\"done\":true}","p3 {\"done\":true}","case await-in-finally-return","await finally start","p1 {\"value\":\"a\",\"done\":false}","await finally before","await finally gate","await finally after await","await finally after cleanup after","p2 {\"value\":\"cleanup\",\"done\":false}","p3 {\"value\":\"done\",\"done\":true}"]
lowered: ["case delegated-return-one","outer start","inner start","after next1","after return","await done","p1 {\"value\":\"first\",\"done\":false}","finally before cleanup","p2 {\"value\":\"cleanup\",\"done\":false}","case delegated-return-many","many try","many await","many after first two","p1 {\"value\":\"first\",\"done\":false}","p2 {\"value\":\"second\",\"done\":false}","many finally before","many finally after after","p3 {\"value\":\"cleanup\",\"done\":false}","many outer after","p4 {\"done\":true}","case delegated-throw-catch","throw start","throw await","throw catch boom","p1 {\"value\":\"first\",\"done\":false}","throw after recovery after","throw finally","p2 {\"value\":\"recovery\",\"done\":false}","throw outer after","p3 {\"done\":true}","case for-await-return","src start","src await","loop one","p1 {\"value\":\"one\",\"done\":false}","src finally","p2 {\"value\":\"done\",\"done\":true}","p3 {\"done\":true}","case await-in-finally-return","await finally start","p1 {\"value\":\"a\",\"done\":false}","await finally before","await finally gate","await finally after await","await finally after cleanup after","p2 {\"value\":\"cleanup\",\"done\":false}","p3 {\"value\":\"done\",\"done\":true}"]
MATCH
rg -n "ES2017|ES6" pkg/api/api.go pkg/api
Chunk ID: db7282 Wall time: 0.0000 seconds Process exited with code 0 Original token count: 75 Output: pkg/api/api.go:129: ES2017 pkg/api/api_impl.go:315: case ES2017: pkg/api/api_impl.go:1422: // Code splitting is experimental and currently only enabled for ES6 modules pkg/api/api_impl.go:1427: // Code splitting is experimental and currently only enabled for ES6 modules pkg/api/api.go:129: ES2017
sed -n '110,140p' pkg/api/api.go
Chunk ID: a610fe Wall time: 0.0000 seconds Process exited with code 0 Original token count: 70 Output: LegalCommentsExternal ) type JSX uint8 const ( JSXTransform JSX = iota JSXPreserve JSXAutomatic ) type Target uint8 const ( DefaultTarget Target = iota ESNext ES5 ES2015 ES2016 ES2017 ES2018 ES2019 ES2020 ES2021 ES2022 ES2023 ES2024 ) type Loader uint16
rg -n "type Format|FormatCommonJS|FormatIIFE" pkg/api/api.go
Chunk ID: 19ea8f
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 25
Output:
170:type Format uint8
174: FormatIIFE
175: FormatCommonJS
715:type FormatMessagesOptions struct {
sed -n '165,180p' pkg/api/api.go && rg -n "type TransformOptions" -A80 pkg/api/api.go
Chunk ID: b4f130
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 1255
Output:
PlatformBrowser
PlatformNode
PlatformNeutral
)
type Format uint8
const (
FormatDefault Format = iota
FormatIIFE
FormatCommonJS
FormatESModule
)
type Packages uint8
411:type TransformOptions struct {
412- Color StderrColor // Documentation: https://esbuild.[code-host]/api/#color
413- LogLevel LogLevel // Documentation: https://esbuild.[code-host]/api/#log-level
414- LogLimit int // Documentation: https://esbuild.[code-host]/api/#log-limit
415- LogOverride map[string]LogLevel // Documentation: https://esbuild.[code-host]/api/#log-override
416- AbsPaths AbsPaths // Documentation: https://esbuild.[code-host]/api/#abs-path
417-
418- Sourcemap SourceMap // Documentation: https://esbuild.[code-host]/api/#sourcemap
419- SourceRoot string // Documentation: https://esbuild.[code-host]/api/#source-root
420- SourcesContent SourcesContent // Documentation: https://esbuild.[code-host]/api/#sources-content
421-
422- Target Target // Documentation: https://esbuild.[code-host]/api/#target
423- Engines []Engine // Documentation: https://esbuild.[code-host]/api/#target
424- Supported map[string]bool // Documentation: https://esbuild.[code-host]/api/#supported
425-
426- Platform Platform // Documentation: https://esbuild.[code-host]/api/#platform
427- Format Format // Documentation: https://esbuild.[code-host]/api/#format
428- GlobalName string // Documentation: https://esbuild.[code-host]/api/#global-name
429-
430- MangleProps string // Documentation: https://esbuild.[code-host]/api/#mangle-props
431- ReserveProps string // Documentation: https://esbuild.[code-host]/api/#mangle-props
432- MangleQuoted MangleQuoted // Documentation: https://esbuild.[code-host]/api/#mangle-props
433- MangleCache map[string]interface{} // Documentation: https://esbuild.[code-host]/api/#mangle-props
434- Drop Drop // Documentation: https://esbuild.[code-host]/api/#drop
435- DropLabels []string // Documentation: https://esbuild.[code-host]/api/#drop-labels
436- MinifyWhitespace bool // Documentation: https://esbuild.[code-host]/api/#minify
437- MinifyIdentifiers bool // Documentation: https://esbuild.[code-host]/api/#minify
438- MinifySyntax bool // Documentation: https://esbuild.[code-host]/api/#minify
439- LineLimit int // Documentation: https://esbuild.[code-host]/api/#line-limit
440- Charset Charset // Documentation: https://esbuild.[code-host]/api/#charset
441- TreeShaking TreeShaking // Documentation: https://esbuild.[code-host]/api/#tree-shaking
442- IgnoreAnnotations bool // Documentation: https://esbuild.[code-host]/api/#ignore-annotations
443- LegalComments LegalComments // Documentation: https://esbuild.[code-host]/api/#legal-comments
444-
445- JSX JSX // Documentation: https://esbuild.[code-host]/api/#jsx
446- JSXFactory string // Documentation: https://esbuild.[code-host]/api/#jsx-factory
447- JSXFragment string // Documentation: https://esbuild.[code-host]/api/#jsx-fragment
448- JSXImportSource string // Documentation: https://esbuild.[code-host]/api/#jsx-import-source
449- JSXDev bool // Documentation: https://esbuild.[code-host]/api/#jsx-dev
450- JSXSideEffects bool // Documentation: https://esbuild.[code-host]/api/#jsx-side-effects
451-
452- TsconfigRaw string // Documentation: https://esbuild.[code-host]/api/#tsconfig-raw
453- Banner string // Documentation: https://esbuild.[code-host]/api/#banner
454- Footer string // Documentation: https://esbuild.[code-host]/api/#footer
455-
456- Define map[string]string // Documentation: https://esbuild.[code-host]/api/#define
457- Pure []string // Documentation: https://esbuild.[code-host]/api/#pure
458- KeepNames bool // Documentation: https://esbuild.[code-host]/api/#keep-names
459-
460- Sourcefile string // Documentation: https://esbuild.[code-host]/api/#sourcefile
461- Loader Loader // Documentation: https://esbuild.[code-host]/api/#loader
462-}
463-
464-type TransformResult struct {
465- Errors []Message
466- Warnings []Message
467-
468- Code []byte
469- Map []byte
470- LegalComments []byte
471-
472- MangleCache map[string]interface{}
473-}
474-
475-// Documentation: https://esbuild.[code-host]/api/#transform
476-func Transform(input string, options TransformOptions) TransformResult {
477- return transformImpl(input, options)
478-}
479-
480-////////////////////////////////////////////////////////////////////////////////
481-// Context API
482-
483-// Documentation: https://esbuild.[code-host]/api/#serve-arguments
484-type ServeOptions struct {
485- Port int
486- Host string
487- Servedir string
488- Keyfile string
489- Certfile string
490- Fallback string
491- CORS CORSOptions
*** Begin Patch
*** Update File: /app/internal/runtime/runtime_test.go
@@
import (
+ "os/exec"
+ "strings"
"testing"
"[code-host]/evanw/esbuild/internal/compat"
"[code-host]/evanw/esbuild/internal/config"
"[code-host]/evanw/esbuild/internal/js_parser"
"[code-host]/evanw/esbuild/internal/logger"
"[code-host]/evanw/esbuild/internal/runtime"
+ "[code-host]/evanw/esbuild/pkg/api"
)
@@
func TestUnsupportedFeatures(t *testing.T) {
for key, feature := range compat.StringToJSFeature {
t.Run(key, func(t *testing.T) {
source := runtime.Source(feature)
@@
})
}
}
+
+func TestAsyncGeneratorLoweringConcurrentCalls(t *testing.T) {
+ node, err := exec.LookPath("node")
+ if err != nil {
+ t.Skip("node not found")
+ }
+
+ source := `
+let trace = [];
+let gate;
+let release;
+function reset(name) {
+ trace.push('case ' + name);
+ gate = new Promise(r => release = r);
+}
+function watch(name, promise) {
+ promise.then(
+ value => trace.push(name + ' ' + JSON.stringify(value)),
+ error => trace.push(name + ' throw ' + (error && error.message || error))
+ );
+}
+async function delegatedReturnOne() {
+ reset('delegated-return-one');
+ async function* inner() {
+ trace.push('inner start');
+ try {
+ const back = yield await gate.then(() => (trace.push('await done'), 'first'));
+ trace.push('after first ' + back);
+ yield 'second';
+ } finally {
+ trace.push('finally before cleanup');
+ const back = yield 'cleanup';
+ trace.push('finally after cleanup ' + back);
+ }
+ }
+ async function* outer() {
+ trace.push('outer start');
+ yield* inner();
+ trace.push('outer after yieldstar');
+ }
+ let it = outer();
+ let p1 = it.next();
+ trace.push('after next1');
+ let p2 = it.return('done');
+ trace.push('after return');
+ watch('p1', p1);
+ watch('p2', p2);
+ release();
+ await Promise.allSettled([p1, p2]);
+}
+async function delegatedReturnMany() {
+ reset('delegated-return-many');
+ async function* inner() {
+ try {
+ trace.push('many try');
+ const back = yield await gate.then(() => (trace.push('many await'), 'first'));
+ trace.push('many after first ' + back);
+ yield 'second';
+ } finally {
+ trace.push('many finally before');
+ const back = yield 'cleanup';
+ trace.push('many finally after ' + back);
+ }
+ }
+ async function* outer() { yield* inner(); trace.push('many outer after'); }
+ let it = outer();
+ let p1 = it.next();
+ let p2 = it.next('two');
+ let p3 = it.return('done');
+ let p4 = it.next('after');
+ watch('p1', p1);
+ watch('p2', p2);
+ watch('p3', p3);
+ watch('p4', p4);
+ release();
+ await Promise.allSettled([p1, p2, p3, p4]);
+}
+async function delegatedThrowCatch() {
+ reset('delegated-throw-catch');
+ async function* inner() {
+ trace.push('throw start');
+ try {
+ const back = yield await gate.then(() => (trace.push('throw await'), 'first'));
+ trace.push('throw after ' + back);
+ } catch (e) {
+ trace.push('throw catch ' + e);
+ const back = yield 'recovery';
+ trace.push('throw after recovery ' + back);
+ } finally {
+ trace.push('throw finally');
+ }
+ }
+ async function* outer() { yield* inner(); trace.push('throw outer after'); }
+ let it = outer();
+ let p1 = it.next();
+ let p2 = it.throw('boom');
+ let p3 = it.next('after');
+ watch('p1', p1);
+ watch('p2', p2);
+ watch('p3', p3);
+ release();
+ await Promise.allSettled([p1, p2, p3]);
+}
+async function forAwaitReturn() {
+ reset('for-await-return');
+ async function* src() {
+ try {
+ trace.push('src start');
+ yield await gate.then(() => (trace.push('src await'), 'one'));
+ trace.push('src after');
+ } finally {
+ trace.push('src finally');
+ yield 'src cleanup';
+ trace.push('src finally after');
+ }
+ }
+ async function* outer() {
+ for await (let x of src()) {
+ trace.push('loop ' + x);
+ yield x;
+ }
+ trace.push('loop after');
+ }
+ let it = outer();
+ let p1 = it.next();
+ let p2 = it.return('done');
+ let p3 = it.next('after');
+ watch('p1', p1);
+ watch('p2', p2);
+ watch('p3', p3);
+ release();
+ await Promise.allSettled([p1, p2, p3]);
+}
+async function awaitInFinallyReturn() {
+ reset('await-in-finally-return');
+ async function* gen() {
+ try {
+ trace.push('await finally start');
+ yield 'a';
+ } finally {
+ trace.push('await finally before');
+ await gate.then(() => trace.push('await finally gate'));
+ trace.push('await finally after await');
+ const back = yield 'cleanup';
+ trace.push('await finally after cleanup ' + back);
+ }
+ }
+ let it = gen();
+ let p1 = it.next();
+ let p2 = it.return('done');
+ let p3 = it.next('after');
+ watch('p1', p1);
+ watch('p2', p2);
+ watch('p3', p3);
+ release();
+ await Promise.allSettled([p1, p2, p3]);
+}
+async function main() {
+ await delegatedReturnOne();
+ await delegatedReturnMany();
+ await delegatedThrowCatch();
+ await forAwaitReturn();
+ await awaitInFinallyReturn();
+ console.log(JSON.stringify(trace));
+}
+main().catch(e => { console.log('ERROR ' + (e && e.stack || e)); process.exitCode = 1; });
+`
+
+ runNode := func(name string, code string) string {
+ t.Helper()
+ cmd := exec.Command(node, "-e", code)
+ bytes, err := cmd.CombinedOutput()
+ if err != nil {
+ t.Fatalf("%s failed: %v\n%s", name, err, bytes)
+ }
+ return string(bytes)
+ }
+
+ expected := runNode("native", source)
+ for _, target := range []struct {
+ name string
+ target api.Target
+ }{
+ {"es2017", api.ES2017},
+ {"es2015", api.ES2015},
+ } {
+ t.Run(target.name, func(t *testing.T) {
+ result := api.Transform(source, api.TransformOptions{
+ Target: target.target,
+ Format: api.FormatCommonJS,
+ })
+ if len(result.Errors) > 0 {
+ t.Fatalf("transform failed: %v", result.Errors)
+ }
+
+ code := string(result.Code)
+ for _, text := range []string{"__asyncGenerator", "__yieldStar", "__forAwait"} {
+ if !strings.Contains(code, text) {
+ t.Fatalf("expected lowered output to contain %q", text)
+ }
+ }
+ for _, text := range []string{"async function*", "for await"} {
+ if strings.Contains(code, text) {
+ t.Fatalf("expected lowered output to not contain %q", text)
+ }
+ }
+
+ if actual := runNode(target.name, code); actual != expected {
+ t.Fatalf("mismatch\nexpected: %s\nactual: %s", expected, actual)
+ }
+ })
+ }
+}
*** End Patch
Exit code: 0
Wall time: 0 seconds
Output:
Success. Updated the following files:
M /app/internal/runtime/runtime_test.go
gofmt -w internal/runtime/runtime_test.go
Chunk ID: cf3aa1 Wall time: 0.0000 seconds Process exited with code 0 Original token count: 0 Output:
go test ./internal/runtime -run TestAsyncGeneratorLoweringConcurrentCalls -count=1
Chunk ID: 74f237 Wall time: 0.1109 seconds Process exited with code 0 Original token count: 14 Output: ok [code-host]/evanw/esbuild/internal/runtime 0.042s
go test ./internal/bundler_tests -run 'TestLowerAsyncGenerator' -count=1
Chunk ID: 2fb215
Wall time: 0.4876 seconds
Process exited with code 1
Original token count: 1339
Output:
PASS
snapshots/snapshots_lower.txt
No test found for snapshot TestLowerPrivateClassStaticAccessorOrder
No test found for snapshot TestLowerPrivateFieldAssignments2019NoBundle
No test found for snapshot TestLowerUsing
No test found for snapshot TestJavaScriptDecoratorsBundleIssue3768
No test found for snapshot TestLowerClassFieldStrictTsconfigJson2020
No test found for snapshot TestLowerForAwait2017
No test found for snapshot TestLowerObjectSpreadNoBundle
No test found for snapshot TestLowerStrictModeSyntax
No test found for snapshot TestLowerExponentiationOperatorNoBundle
No test found for snapshot TestStaticClassBlockES2021
No test found for snapshot TestJavaScriptAutoAccessorES2021
No test found for snapshot TestJavaScriptAutoAccessorES2022
No test found for snapshot TestLowerAsyncSuperES2017NoBundle
No test found for snapshot TestLowerNestedFunctionDirectEval
No test found for snapshot TestLowerPrivateClassBrandCheckSupported
No test found for snapshot TestLowerPrivateGetterSetter2019
No test found for snapshot TestLowerUsingInsideTSNamespace
No test found for snapshot TestTSLowerClassFieldStrictTsconfigJson2020
No test found for snapshot TestJavaScriptDecoratorsESNext
No test found for snapshot TestLowerAsyncArrowSuperES2016
No test found for snapshot TestLowerClassField2020NoBundle
No test found for snapshot TestLowerOptionalCatchNameCollisionNoBundle
No test found for snapshot TestLowerPrivateClassBrandCheckUnsupported
No test found for snapshot TestLowerStaticAsyncArrowSuperES2016
No test found for snapshot TestTSLowerClassPrivateFieldNextNoBundle
No test found for snapshot TestJavaScriptAutoAccessorESNext
No test found for snapshot TestLowerPrivateClassExpr2020NoBundle
No test found for snapshot TestLowerPrivateFieldAssignments2020NoBundle
No test found for snapshot TestLowerPrivateGetterSetter2015
No test found for snapshot TestTSLowerPrivateStaticMembers2015NoBundle
No test found for snapshot TestLowerAsync2017NoBundle
No test found for snapshot TestLowerClassFieldNextNoBundle
No test found for snapshot TestLowerNullishCoalescingAssignmentIssue1493
No test found for snapshot TestLowerPrivateGetterSetterNext
No test found for snapshot TestLowerPrivateMethod2020
No test found for snapshot TestLowerUsingHoisting
No test found for snapshot TestLowerAsyncArrowSuperSetterES2016
No test found for snapshot TestLowerPrivateMethodWithModifiers2020
No test found for snapshot TestLowerStaticAsyncSuperES2016NoBundle
No test found for snapshot TestTSLowerObjectRest2017NoBundle
No test found for snapshot TestTSLowerPrivateFieldAndMethodAvoidNameCollision2015
No test found for snapshot TestForAwaitWithOptionalCatchIssue4378
No test found for snapshot TestLowerPrivateClassStaticFieldOrder
No test found for snapshot TestLowerPrivateClassStaticMethodOrder
No test found for snapshot TestLowerPrivateMethodNext
No test found for snapshot TestLowerPrivateSuperES2022
No test found for snapshot TestLowerTemplateObject
No test found for snapshot TestLowerPrivateClassMethodOrder
No test found for snapshot TestLowerPrivateFieldOptionalChainNextNoBundle
No test found for snapshot TestLowerPrivateGetterSetter2020
No test found for snapshot TestLowerStaticSuperES2021NoBundle
No test found for snapshot TestLowerExportStarAsNameCollisionNoBundle
No test found for snapshot TestLowerPrivateSuperES2021
No test found for snapshot TestLowerStaticAsyncArrowSuperSetterES2016
No test found for snapshot TestStaticClassBlockESNext
No test found for snapshot TestClassSuperThisIssue242NoBundle
No test found for snapshot TestLowerPrivateSuperStaticBundleIssue2158
No test found for snapshot TestTSLowerPrivateFieldOptionalChain2015NoBundle
No test found for snapshot TestLowerPrivateFieldAssignmentsNextNoBundle
No test found for snapshot TestLowerPrivateFieldOptionalChain2020NoBundle
No test found for snapshot TestLowerRegExpNameCollision
No test found for snapshot TestLowerStaticAsyncSuperES2021NoBundle
No test found for snapshot TestTSLowerObjectRest2018NoBundle
No test found for snapshot TestLowerAsync2016NoBundle
No test found for snapshot TestLowerPrivateClassAccessorOrder
No test found for snapshot TestLowerPrivateFieldOptionalChain2019NoBundle
No test found for snapshot TestLowerPrivateMethod2019
No test found for snapshot TestLowerAsyncSuperES2016NoBundle
No test found for snapshot TestLowerPrivateClassFieldOrder
No test found for snapshot TestLowerStaticSuperES2016NoBundle
No test found for snapshot TestLowerUsingUnsupportedUsingAndAsync
No test found for snapshot TestLowerExportStarAsNameCollision
No test found for snapshot TestLowerForAwait2015
No test found for snapshot TestLowerPrivateClassFieldStaticIssue1424
No test found for snapshot TestLowerPrivateFieldAssignments2015NoBundle
No test found for snapshot TestLowerUsingUnsupportedAsync
No test found for snapshot TestTSLowerClassField2020NoBundle
No test found for snapshot TestLowerAsyncThis2016CommonJS
No test found for snapshot TestLowerAsyncThis2016ES6
FAIL [code-host]/evanw/esbuild/internal/bundler_tests 0.004s
FAIL
go test ./internal/runtime -count=1
Chunk ID: 03da21 Wall time: 0.2368 seconds Process exited with code 0 Original token count: 14 Output: ok [code-host]/evanw/esbuild/internal/runtime 0.184s
go build ./cmd/...
Chunk ID: a905ee Wall time: 0.2586 seconds Process exited with code 0 Original token count: 0 Output:
go test ./internal/bundler_tests -count=1
Chunk ID: d1c4c1 Wall time: 0.8280 seconds Process exited with code 0 Original token count: 15 Output: ok [code-host]/evanw/esbuild/internal/bundler_tests 0.817s
go test ./internal/compat -count=1
Chunk ID: 1dcffd Wall time: 0.0664 seconds Process exited with code 0 Original token count: 14 Output: ok [code-host]/evanw/esbuild/internal/compat 0.002s
go test ./pkg/api -run 'Test.*' -count=1
Chunk ID: c6c147 Wall time: 0.2698 seconds Process exited with code 0 Original token count: 12 Output: ok [code-host]/evanw/esbuild/pkg/api 0.001s
go build ./cmd/...
Chunk ID: 2cf01f Wall time: 0.0000 seconds Process exited with code 0 Original token count: 0 Output:
go run ./cmd/esbuild /tmp/ag-suite.js --bundle --target=es2017 --format=cjs --outfile=/tmp/ag-suite.es2017.js >/tmp/ag-suite.es2017.log && rg "__asyncGenerator|__yieldStar|__forAwait" /tmp/ag-suite.es2017.js && ! rg "async function\*|for await" /tmp/ag-suite.es2017.js && node /tmp/ag-suite.es2017.js > /tmp/ag-suite.es2017.txt && cmp -s /tmp/ag-suite.native.txt /tmp/ag-suite.es2017.txt
Chunk ID: ea5842
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 318
Output:
../tmp/ag-suite.es2017.js 7.9kb
⚡ Done in 1ms
var __asyncGenerator = (__this, __arguments, generator) => {
var __yieldStar = (value) => {
var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")]) ? it.call(obj) : (obj = obj[__knownSymbol("iterator")](), it = {}, method = (key, fn) => (fn = obj[key]) && (it[key] = (arg) => new Promise((yes, no, done) => (arg = fn.call(obj, arg), done = arg.done, Promise.resolve(arg.value).then((value) => yes({ value, done }), no)))), method("next"), method("return"), it);
return __asyncGenerator(this, null, function* () {
return __asyncGenerator(this, null, function* () {
yield* __yieldStar(inner());
return __asyncGenerator(this, null, function* () {
return __asyncGenerator(this, null, function* () {
yield* __yieldStar(inner());
return __asyncGenerator(this, null, function* () {
return __asyncGenerator(this, null, function* () {
yield* __yieldStar(inner());
return __asyncGenerator(this, null, function* () {
return __asyncGenerator(this, null, function* () {
for (var iter = __forAwait(src()), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
return __asyncGenerator(this, null, function* () {
go run ./cmd/esbuild /tmp/ag-suite.js --bundle --target=es6 --format=cjs --outfile=/tmp/ag-suite.es6.js >/tmp/ag-suite.es6.log && rg "__asyncGenerator|__yieldStar|__forAwait" /tmp/ag-suite.es6.js && ! rg "async function\*|for await" /tmp/ag-suite.es6.js && node /tmp/ag-suite.es6.js > /tmp/ag-suite.es6.txt && cmp -s /tmp/ag-suite.native.txt /tmp/ag-suite.es6.txt
Chunk ID: a8b025
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 324
Output:
../tmp/ag-suite.es6.js 9.1kb
⚡ Done in 1ms
var __asyncGenerator = (__this, __arguments, generator) => {
var __yieldStar = (value) => {
var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")]) ? it.call(obj) : (obj = obj[__knownSymbol("iterator")](), it = {}, method = (key, fn) => (fn = obj[key]) && (it[key] = (arg) => new Promise((yes, no, done) => (arg = fn.call(obj, arg), done = arg.done, Promise.resolve(arg.value).then((value) => yes({ value, done }), no)))), method("next"), method("return"), it);
return __asyncGenerator(this, null, function* () {
return __asyncGenerator(this, null, function* () {
yield* __yieldStar(inner());
return __asyncGenerator(this, null, function* () {
return __asyncGenerator(this, null, function* () {
yield* __yieldStar(inner());
return __asyncGenerator(this, null, function* () {
return __asyncGenerator(this, null, function* () {
yield* __yieldStar(inner());
return __asyncGenerator(this, null, function* () {
return __asyncGenerator(this, null, function* () {
for (var iter = __forAwait(src()), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
return __asyncGenerator(this, null, function* () {
go test ./internal/runtime ./internal/bundler_tests ./internal/compat ./pkg/api -count=1
Chunk ID: dd109b Wall time: 0.7452 seconds Process exited with code 0 Original token count: 53 Output: ok [code-host]/evanw/esbuild/internal/runtime 0.087s ok [code-host]/evanw/esbuild/internal/bundler_tests 0.710s ok [code-host]/evanw/esbuild/internal/compat 0.001s ok [code-host]/evanw/esbuild/pkg/api 0.001s
go test ./...
Chunk ID: 1b53df Wall time: 2.7481 seconds Process exited with code 0 Original token count: 436 Output: ? [code-host]/evanw/esbuild/cmd/esbuild [no test files] ? [code-host]/evanw/esbuild/internal/api_helpers [no test files] ? [code-host]/evanw/esbuild/internal/ast [no test files] ? [code-host]/evanw/esbuild/internal/bundler [no test files] ok [code-host]/evanw/esbuild/internal/bundler_tests 0.981s ? [code-host]/evanw/esbuild/internal/cache [no test files] ? [code-host]/evanw/esbuild/internal/cli_helpers [no test files] ok [code-host]/evanw/esbuild/internal/compat 0.001s ? [code-host]/evanw/esbuild/internal/config [no test files] ? [code-host]/evanw/esbuild/internal/css_ast [no test files] ok [code-host]/evanw/esbuild/internal/css_lexer 0.001s ok [code-host]/evanw/esbuild/internal/css_parser 0.028s ok [code-host]/evanw/esbuild/internal/css_printer 0.003s ok [code-host]/evanw/esbuild/internal/fs 0.001s ? [code-host]/evanw/esbuild/internal/graph [no test files] ok [code-host]/evanw/esbuild/internal/helpers 0.001s ok [code-host]/evanw/esbuild/internal/js_ast 0.001s ok [code-host]/evanw/esbuild/internal/js_lexer 0.002s ok [code-host]/evanw/esbuild/internal/js_parser 0.167s ok [code-host]/evanw/esbuild/internal/js_printer 0.015s ? [code-host]/evanw/esbuild/internal/linker [no test files] ok [code-host]/evanw/esbuild/internal/logger 0.001s ? [code-host]/evanw/esbuild/internal/renamer [no test files] ok [code-host]/evanw/esbuild/internal/resolver 0.001s ok [code-host]/evanw/esbuild/internal/runtime 0.096s ? [code-host]/evanw/esbuild/internal/sourcemap [no test files] ? [code-host]/evanw/esbuild/internal/test [no test files] ? [code-host]/evanw/esbuild/internal/xxhash [no test files] ok [code-host]/evanw/esbuild/pkg/api 0.001s ? [code-host]/evanw/esbuild/pkg/cli [no test files]
sed -n '412,442p' internal/runtime/runtime.go
Chunk ID: 42afc7
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 319
Output:
// These help for lowering async generator functions
export var __await = function (promise, isYieldStar) {
this[0] = promise
this[1] = isYieldStar
}
export var __asyncGenerator = (__this, __arguments, generator) => {
var resume = (k, v, yes, no) => {
try {
var x = generator[k](v), isAwait = (v = x.value) instanceof __await, done = x.done
Promise.resolve(isAwait ? v[0] : v)
.then(y => isAwait
? resume(v[1] && k === 'return' ? 'return' : 'next', v[1] ? { done: y.done, value: y.value } : y, yes, no)
: yes({ value: y, done }))
.catch(e => resume('throw', e, yes, no))
} catch (e) {
no(e)
}
}, method = k => it[k] = x => {
var run, promise = new Promise((yes, no) => {
run = () => resume(k, x, yes, no)
wait ? wait.then(k === 'return' ? () => Promise.resolve().then(run) : run, k === 'return' ? () => Promise.resolve().then(run) : run) : run()
})
return wait = promise,
promise.then(() => wait === promise && (wait = null), () => wait === promise && (wait = null)),
promise
}, it = {}, wait
return generator = generator.apply(__this, __arguments),
it[__knownSymbol('asyncIterator')] = () => it,
method('next'),
method('throw'),
method('return'),
sed -n '1,260p' internal/runtime/runtime_test.go
Chunk ID: 82a37b
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 1677
Output:
package runtime_test
import (
"os/exec"
"strings"
"testing"
"[code-host]/evanw/esbuild/internal/compat"
"[code-host]/evanw/esbuild/internal/config"
"[code-host]/evanw/esbuild/internal/js_parser"
"[code-host]/evanw/esbuild/internal/logger"
"[code-host]/evanw/esbuild/internal/runtime"
"[code-host]/evanw/esbuild/pkg/api"
)
func TestUnsupportedFeatures(t *testing.T) {
for key, feature := range compat.StringToJSFeature {
t.Run(key, func(t *testing.T) {
source := runtime.Source(feature)
log := logger.NewDeferLog(logger.DeferLogAll, nil)
js_parser.Parse(log, source, js_parser.OptionsFromConfig(&config.Options{
UnsupportedJSFeatures: feature,
TreeShaking: true,
}))
if log.HasErrors() {
msgs := "Internal error: failed to parse runtime:\n"
for _, msg := range log.Done() {
msgs += msg.String(logger.OutputOptions{IncludeSource: true}, logger.TerminalInfo{})
}
t.Fatal(msgs[:len(msgs)-1])
}
})
}
}
func TestAsyncGeneratorLoweringConcurrentCalls(t *testing.T) {
node, err := exec.LookPath("node")
if err != nil {
t.Skip("node not found")
}
source := `
let trace = [];
let gate;
let release;
function reset(name) {
trace.push('case ' + name);
gate = new Promise(r => release = r);
}
function watch(name, promise) {
promise.then(
value => trace.push(name + ' ' + JSON.stringify(value)),
error => trace.push(name + ' throw ' + (error && error.message || error))
);
}
async function delegatedReturnOne() {
reset('delegated-return-one');
async function* inner() {
trace.push('inner start');
try {
const back = yield await gate.then(() => (trace.push('await done'), 'first'));
trace.push('after first ' + back);
yield 'second';
} finally {
trace.push('finally before cleanup');
const back = yield 'cleanup';
trace.push('finally after cleanup ' + back);
}
}
async function* outer() {
trace.push('outer start');
yield* inner();
trace.push('outer after yieldstar');
}
let it = outer();
let p1 = it.next();
trace.push('after next1');
let p2 = it.return('done');
trace.push('after return');
watch('p1', p1);
watch('p2', p2);
release();
await Promise.allSettled([p1, p2]);
}
async function delegatedReturnMany() {
reset('delegated-return-many');
async function* inner() {
try {
trace.push('many try');
const back = yield await gate.then(() => (trace.push('many await'), 'first'));
trace.push('many after first ' + back);
yield 'second';
} finally {
trace.push('many finally before');
const back = yield 'cleanup';
trace.push('many finally after ' + back);
}
}
async function* outer() { yield* inner(); trace.push('many outer after'); }
let it = outer();
let p1 = it.next();
let p2 = it.next('two');
let p3 = it.return('done');
let p4 = it.next('after');
watch('p1', p1);
watch('p2', p2);
watch('p3', p3);
watch('p4', p4);
release();
await Promise.allSettled([p1, p2, p3, p4]);
}
async function delegatedThrowCatch() {
reset('delegated-throw-catch');
async function* inner() {
trace.push('throw start');
try {
const back = yield await gate.then(() => (trace.push('throw await'), 'first'));
trace.push('throw after ' + back);
} catch (e) {
trace.push('throw catch ' + e);
const back = yield 'recovery';
trace.push('throw after recovery ' + back);
} finally {
trace.push('throw finally');
}
}
async function* outer() { yield* inner(); trace.push('throw outer after'); }
let it = outer();
let p1 = it.next();
let p2 = it.throw('boom');
let p3 = it.next('after');
watch('p1', p1);
watch('p2', p2);
watch('p3', p3);
release();
await Promise.allSettled([p1, p2, p3]);
}
async function forAwaitReturn() {
reset('for-await-return');
async function* src() {
try {
trace.push('src start');
yield await gate.then(() => (trace.push('src await'), 'one'));
trace.push('src after');
} finally {
trace.push('src finally');
yield 'src cleanup';
trace.push('src finally after');
}
}
async function* outer() {
for await (let x of src()) {
trace.push('loop ' + x);
yield x;
}
trace.push('loop after');
}
let it = outer();
let p1 = it.next();
let p2 = it.return('done');
let p3 = it.next('after');
watch('p1', p1);
watch('p2', p2);
watch('p3', p3);
release();
await Promise.allSettled([p1, p2, p3]);
}
async function awaitInFinallyReturn() {
reset('await-in-finally-return');
async function* gen() {
try {
trace.push('await finally start');
yield 'a';
} finally {
trace.push('await finally before');
await gate.then(() => trace.push('await finally gate'));
trace.push('await finally after await');
const back = yield 'cleanup';
trace.push('await finally after cleanup ' + back);
}
}
let it = gen();
let p1 = it.next();
let p2 = it.return('done');
let p3 = it.next('after');
watch('p1', p1);
watch('p2', p2);
watch('p3', p3);
release();
await Promise.allSettled([p1, p2, p3]);
}
async function main() {
await delegatedReturnOne();
await delegatedReturnMany();
await delegatedThrowCatch();
await forAwaitReturn();
await awaitInFinallyReturn();
console.log(JSON.stringify(trace));
}
main().catch(e => { console.log('ERROR ' + (e && e.stack || e)); process.exitCode = 1; });
`
runNode := func(name string, code string) string {
t.Helper()
cmd := exec.Command(node, "-e", code)
bytes, err := cmd.CombinedOutput()
if err != nil {
t.Fatalf("%s failed: %v\n%s", name, err, bytes)
}
return string(bytes)
}
expected := runNode("native", source)
for _, target := range []struct {
name string
target api.Target
}{
{"es2017", api.ES2017},
{"es2015", api.ES2015},
} {
t.Run(target.name, func(t *testing.T) {
result := api.Transform(source, api.TransformOptions{
Target: target.target,
Format: api.FormatCommonJS,
})
if len(result.Errors) > 0 {
t.Fatalf("transform failed: %v", result.Errors)
}
code := string(result.Code)
for _, text := range []string{"__asyncGenerator", "__yieldStar", "__forAwait"} {
if !strings.Contains(code, text) {
t.Fatalf("expected lowered output to contain %q", text)
}
}
for _, text := range []string{"async function*", "for await"} {
if strings.Contains(code, text) {
t.Fatalf("expected lowered output to not contain %q", text)
}
}
if actual := runNode(target.name, code); actual != expected {
t.Fatalf("mismatch\nexpected: %s\nactual: %s", expected, actual)
}
})
}
}
sed -n '260,520p' internal/runtime/runtime_test.go
Chunk ID: 723b7f Wall time: 0.0000 seconds Process exited with code 0 Original token count: 0 Output:
nl -ba internal/runtime/runtime.go | sed -n '417,439p'
Chunk ID: edf3fc
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 303
Output:
417 export var __asyncGenerator = (__this, __arguments, generator) => {
418 var resume = (k, v, yes, no) => {
419 try {
420 var x = generator[k](v), isAwait = (v = x.value) instanceof __await, done = x.done
421 Promise.resolve(isAwait ? v[0] : v)
422 .then(y => isAwait
423 ? resume(v[1] && k === 'return' ? 'return' : 'next', v[1] ? { done: y.done, value: y.value } : y, yes, no)
424 : yes({ value: y, done }))
425 .catch(e => resume('throw', e, yes, no))
426 } catch (e) {
427 no(e)
428 }
429 }, method = k => it[k] = x => {
430 var run, promise = new Promise((yes, no) => {
431 run = () => resume(k, x, yes, no)
432 wait ? wait.then(k === 'return' ? () => Promise.resolve().then(run) : run, k === 'return' ? () => Promise.resolve().then(run) : run) : run()
433 })
434 return wait = promise,
435 promise.then(() => wait === promise && (wait = null), () => wait === promise && (wait = null)),
436 promise
437 }, it = {}, wait
438 return generator = generator.apply(__this, __arguments),
439 it[__knownSymbol('asyncIterator')] = () => it,
nl -ba internal/runtime/runtime_test.go | sed -n '35,240p'
Chunk ID: 58cae8
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 1756
Output:
35 }
36 }
37
38 func TestAsyncGeneratorLoweringConcurrentCalls(t *testing.T) {
39 node, err := exec.LookPath("node")
40 if err != nil {
41 t.Skip("node not found")
42 }
43
44 source := `
45 let trace = [];
46 let gate;
47 let release;
48 function reset(name) {
49 trace.push('case ' + name);
50 gate = new Promise(r => release = r);
51 }
52 function watch(name, promise) {
53 promise.then(
54 value => trace.push(name + ' ' + JSON.stringify(value)),
55 error => trace.push(name + ' throw ' + (error && error.message || error))
56 );
57 }
58 async function delegatedReturnOne() {
59 reset('delegated-return-one');
60 async function* inner() {
61 trace.push('inner start');
62 try {
63 const back = yield await gate.then(() => (trace.push('await done'), 'first'));
64 trace.push('after first ' + back);
65 yield 'second';
66 } finally {
67 trace.push('finally before cleanup');
68 const back = yield 'cleanup';
69 trace.push('finally after cleanup ' + back);
70 }
71 }
72 async function* outer() {
73 trace.push('outer start');
74 yield* inner();
75 trace.push('outer after yieldstar');
76 }
77 let it = outer();
78 let p1 = it.next();
79 trace.push('after next1');
80 let p2 = it.return('done');
81 trace.push('after return');
82 watch('p1', p1);
83 watch('p2', p2);
84 release();
85 await Promise.allSettled([p1, p2]);
86 }
87 async function delegatedReturnMany() {
88 reset('delegated-return-many');
89 async function* inner() {
90 try {
91 trace.push('many try');
92 const back = yield await gate.then(() => (trace.push('many await'), 'first'));
93 trace.push('many after first ' + back);
94 yield 'second';
95 } finally {
96 trace.push('many finally before');
97 const back = yield 'cleanup';
98 trace.push('many finally after ' + back);
99 }
100 }
101 async function* outer() { yield* inner(); trace.push('many outer after'); }
102 let it = outer();
103 let p1 = it.next();
104 let p2 = it.next('two');
105 let p3 = it.return('done');
106 let p4 = it.next('after');
107 watch('p1', p1);
108 watch('p2', p2);
109 watch('p3', p3);
110 watch('p4', p4);
111 release();
112 await Promise.allSettled([p1, p2, p3, p4]);
113 }
114 async function delegatedThrowCatch() {
115 reset('delegated-throw-catch');
116 async function* inner() {
117 trace.push('throw start');
118 try {
119 const back = yield await gate.then(() => (trace.push('throw await'), 'first'));
120 trace.push('throw after ' + back);
121 } catch (e) {
122 trace.push('throw catch ' + e);
123 const back = yield 'recovery';
124 trace.push('throw after recovery ' + back);
125 } finally {
126 trace.push('throw finally');
127 }
128 }
129 async function* outer() { yield* inner(); trace.push('throw outer after'); }
130 let it = outer();
131 let p1 = it.next();
132 let p2 = it.throw('boom');
133 let p3 = it.next('after');
134 watch('p1', p1);
135 watch('p2', p2);
136 watch('p3', p3);
137 release();
138 await Promise.allSettled([p1, p2, p3]);
139 }
140 async function forAwaitReturn() {
141 reset('for-await-return');
142 async function* src() {
143 try {
144 trace.push('src start');
145 yield await gate.then(() => (trace.push('src await'), 'one'));
146 trace.push('src after');
147 } finally {
148 trace.push('src finally');
149 yield 'src cleanup';
150 trace.push('src finally after');
151 }
152 }
153 async function* outer() {
154 for await (let x of src()) {
155 trace.push('loop ' + x);
156 yield x;
157 }
158 trace.push('loop after');
159 }
160 let it = outer();
161 let p1 = it.next();
162 let p2 = it.return('done');
163 let p3 = it.next('after');
164 watch('p1', p1);
165 watch('p2', p2);
166 watch('p3', p3);
167 release();
168 await Promise.allSettled([p1, p2, p3]);
169 }
170 async function awaitInFinallyReturn() {
171 reset('await-in-finally-return');
172 async function* gen() {
173 try {
174 trace.push('await finally start');
175 yield 'a';
176 } finally {
177 trace.push('await finally before');
178 await gate.then(() => trace.push('await finally gate'));
179 trace.push('await finally after await');
180 const back = yield 'cleanup';
181 trace.push('await finally after cleanup ' + back);
182 }
183 }
184 let it = gen();
185 let p1 = it.next();
186 let p2 = it.return('done');
187 let p3 = it.next('after');
188 watch('p1', p1);
189 watch('p2', p2);
190 watch('p3', p3);
191 release();
192 await Promise.allSettled([p1, p2, p3]);
193 }
194 async function main() {
195 await delegatedReturnOne();
196 await delegatedReturnMany();
197 await delegatedThrowCatch();
198 await forAwaitReturn();
199 await awaitInFinallyReturn();
200 console.log(JSON.stringify(trace));
201 }
202 main().catch(e => { console.log('ERROR ' + (e && e.stack || e)); process.exitCode = 1; });
203 `
204
205 runNode := func(name string, code string) string {
206 t.Helper()
207 cmd := exec.Command(node, "-e", code)
208 bytes, err := cmd.CombinedOutput()
209 if err != nil {
210 t.Fatalf("%s failed: %v\n%s", name, err, bytes)
211 }
212 return string(bytes)
213 }
214
215 expected := runNode("native", source)
216 for _, target := range []struct {
217 name string
218 target api.Target
219 }{
220 {"es2017", api.ES2017},
221 {"es2015", api.ES2015},
222 } {
223 t.Run(target.name, func(t *testing.T) {
224 result := api.Transform(source, api.TransformOptions{
225 Target: target.target,
226 Format: api.FormatCommonJS,
227 })
228 if len(result.Errors) > 0 {
229 t.Fatalf("transform failed: %v", result.Errors)
230 }
231
232 code := string(result.Code)
233 for _, text := range []string{"__asyncGenerator", "__yieldStar", "__forAwait"} {
234 if !strings.Contains(code, text) {
235 t.Fatalf("expected lowered output to contain %q", text)
236 }
237 }
238 for _, text := range []string{"async function*", "for await"} {
239 if strings.Contains(code, text) {
240 t.Fatalf("expected lowered output to not contain %q", text)
nl -ba internal/runtime/runtime_test.go | sed -n '240,255p'
Chunk ID: b636f4
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 75
Output:
240 t.Fatalf("expected lowered output to not contain %q", text)
241 }
242 }
243
244 if actual := runNode(target.name, code); actual != expected {
245 t.Fatalf("mismatch\nexpected: %s\nactual: %s", expected, actual)
246 }
247 })
248 }
249 }
No file changes, the agent left the workspace untouched.
============================= test session starts ============================== platform linux -- Python 3.11.2, pytest-8.3.3, pluggy-1.6.0 -- /opt/test-venv/bin/python3 cachedir: .pytest_cache rootdir: /tests collecting ... collected 6 items ../tests/test_outputs.py::test_async_generator_lowering_matches_native PASSED [ 16%] ../tests/test_outputs.py::test_bundled_output_uses_lowered_async_generator_helpers PASSED [ 33%] ../tests/test_outputs.py::test_case_roster_actually_ran PASSED [ 50%] ../tests/test_outputs.py::test_output_is_json_trace PASSED [ 66%] ../tests/test_outputs.py::test_async_generator_compatibility_targets_still_require_lowering PASSED [ 83%] ../tests/test_outputs.py::test_no_hardcoded_hidden_literals PASSED [100%] ==================================== PASSES ==================================== =========================== short test summary info ============================ PASSED ../tests/test_outputs.py::test_async_generator_lowering_matches_native PASSED ../tests/test_outputs.py::test_bundled_output_uses_lowered_async_generator_helpers PASSED ../tests/test_outputs.py::test_case_roster_actually_ran PASSED ../tests/test_outputs.py::test_output_is_json_trace PASSED ../tests/test_outputs.py::test_async_generator_compatibility_targets_still_require_lowering PASSED ../tests/test_outputs.py::test_no_hardcoded_hidden_literals ============================== 6 passed in 3.09s ===============================
Reproduce this trial: git checkout 2f94510 && PYTHONPATH=src python3 scripts/build_site.py , then open trial/trial_966964209fd748cd. Re-running the agent live requires EVAL_PLATFORM_ENABLE_OAUTH_SMOKE=1 and is non-deterministic.
Trial trial_966964209fd748cd · verifier authoritative; classifier explanatory.