diff options
author | 2021-12-15 15:16:24 -0800 | |
---|---|---|
committer | 2021-12-15 17:08:04 -0800 | |
commit | c07de8c4d37a524d8ad9f90d5f4237511e536bdc (patch) | |
tree | 2db96f95f0040d3f51b3a5d61a2de2ba6272f204 /src/runtime.js | |
parent | e10fe8aaad81e7bd958244adb8584107d7aef18e (diff) | |
download | bun-c07de8c4d37a524d8ad9f90d5f4237511e536bdc.tar.gz bun-c07de8c4d37a524d8ad9f90d5f4237511e536bdc.tar.zst bun-c07de8c4d37a524d8ad9f90d5f4237511e536bdc.zip |
[JS transpiler] Simplify CommonJS interop callback
Diffstat (limited to 'src/runtime.js')
-rw-r--r-- | src/runtime.js | 130 |
1 files changed, 64 insertions, 66 deletions
diff --git a/src/runtime.js b/src/runtime.js index 1e86ef3b6..200f178ca 100644 --- a/src/runtime.js +++ b/src/runtime.js @@ -54,83 +54,81 @@ export var __toModule = (module) => { var tagSymbol = Symbol("CommonJSTransformed"); var cjsRequireSymbol = Symbol("CommonJS"); export var __commonJS = (cb, name) => { - var mod = {}; + var mod; var has_run = false; const requireFunction = function load() { if (has_run) { return mod.exports; } - has_run = true; - - mod = { exports: {} }; - cb(mod, mod.exports); + has_run = true; + cb(((mod = { exports: {} }), mod), mod.exports); const kind = typeof mod.exports; - if ( - (kind === "function" || kind === "object") && - "__esModule" in mod.exports && - !mod.exports[tagSymbol] - ) { - if (!("default" in mod.exports)) { - Object.defineProperty(mod.exports, "default", { - get() { - return mod.exports; - }, - set(v) { - mod.exports = v; - }, - enumerable: true, - configurable: true, - }); - } - } else if ( - kind === "object" && - "default" in mod.exports && - !mod.exports[tagSymbol] && - Object.keys(mod.exports).length === 1 - ) { - // if mod.exports.default === true this won't work because we can't define a property on a boolean - if ( - typeof mod.exports.default === "object" || - typeof mod.exports.default === "function" - ) { - mod.exports = mod.exports.default; - - Object.defineProperty(mod.exports, "default", { - get() { - return mod.exports; - }, - set(v) { - mod.exports = v; - }, - enumerable: true, - configurable: true, - }); - } - - // If it's a namespace export without .default, pretend .default is the same as mod.exports - } else if ( - (kind === "function" || kind === "object") && - !("default" in mod.exports) && - Object.isExtensible(mod.exports) - ) { - var defaultValue = mod.exports; - Object.defineProperty(mod.exports, "default", { - get() { - return defaultValue; - }, - set(value) { - defaultValue = value; - }, - enumerable: true, - configurable: true, - }); - } + // if ( + // (kind === "function" || kind === "object") && + // "__esModule" in mod.exports && + // !mod.exports[tagSymbol] + // ) { + // if (!("default" in mod.exports)) { + // Object.defineProperty(mod.exports, "default", { + // get() { + // return mod.exports; + // }, + // set(v) { + // mod.exports = v; + // }, + // enumerable: true, + // configurable: true, + // }); + // } + // } else if ( + // kind === "object" && + // "default" in mod.exports && + // !mod.exports[tagSymbol] && + // Object.keys(mod.exports).length === 1 + // ) { + // // if mod.exports.default === true this won't work because we can't define a property on a boolean + // if ( + // typeof mod.exports.default === "object" || + // typeof mod.exports.default === "function" + // ) { + // mod.exports = mod.exports.default; + + // Object.defineProperty(mod.exports, "default", { + // get() { + // return mod.exports; + // }, + // set(v) { + // mod.exports = v; + // }, + // enumerable: true, + // configurable: true, + // }); + // } + + // // If it's a namespace export without .default, pretend .default is the same as mod.exports + // } else if ( + // (kind === "function" || kind === "object") && + // !("default" in mod.exports) && + // Object.isExtensible(mod.exports) + // ) { + // var defaultValue = mod.exports; + // Object.defineProperty(mod.exports, "default", { + // get() { + // return defaultValue; + // }, + // set(value) { + // defaultValue = value; + // }, + // enumerable: true, + // configurable: true, + // }); + // } if ( - kind === "object" && + (kind === "object" || kind === "function") && !mod.exports[tagSymbol] && Object.isExtensible(mod.exports) ) { |