diff options
author | 2023-05-29 11:23:10 -0700 | |
---|---|---|
committer | 2023-05-29 11:23:10 -0700 | |
commit | e2de1f5c133ed3aac6fcea7e8e7c5fcd771d65f9 (patch) | |
tree | 219ad30067db8641999811b67744ce665f45dd46 /src/bun.js/builtins/ts | |
parent | 2b04ef4fae088b6f39628da312643cf4c54921ad (diff) | |
download | bun-e2de1f5c133ed3aac6fcea7e8e7c5fcd771d65f9.tar.gz bun-e2de1f5c133ed3aac6fcea7e8e7c5fcd771d65f9.tar.zst bun-e2de1f5c133ed3aac6fcea7e8e7c5fcd771d65f9.zip |
Natively support CommonJS at runtime (#3104)
* Natively support CommonJS at runtime
* cleanup how getters are handled, add fast path
* more consistent with node
* use * As
* Remove thrown modules on exception
* Handle exception better
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Diffstat (limited to 'src/bun.js/builtins/ts')
-rw-r--r-- | src/bun.js/builtins/ts/ImportMetaObject.ts | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/bun.js/builtins/ts/ImportMetaObject.ts b/src/bun.js/builtins/ts/ImportMetaObject.ts index 9ce53c192..9255a591f 100644 --- a/src/bun.js/builtins/ts/ImportMetaObject.ts +++ b/src/bun.js/builtins/ts/ImportMetaObject.ts @@ -93,7 +93,7 @@ export function requireESM(this: ImportMetaObject, resolved) { var exports = Loader.getModuleNamespaceObject(entry.module); var commonJS = exports.default; var cjs = commonJS?.[$commonJSSymbol]; - if (cjs === 0) { + if (cjs === 0 || exports[$commonJSSymbol] === 0) { return commonJS; } else if (cjs && $isCallable(commonJS)) { return commonJS(); @@ -130,6 +130,11 @@ export function internalRequire(this: ImportMetaObject, resolved) { return exports; } else { var exports = $requireESM(resolved); + const cachedExports = $requireMap.$get(resolved); + if (cachedExports) { + return cachedExports; + } + $requireMap.$set(resolved, exports); return exports; } |