From efbc2ffe6a1ee5ec38a4396305561d6515d0943e Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Fri, 30 Aug 2024 17:21:18 +0800 Subject: node fixes, updates --- .../runtime/DefinePropertyGettersRuntimeModule.js | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 node_modules/webpack/lib/runtime/DefinePropertyGettersRuntimeModule.js (limited to 'node_modules/webpack/lib/runtime/DefinePropertyGettersRuntimeModule.js') diff --git a/node_modules/webpack/lib/runtime/DefinePropertyGettersRuntimeModule.js b/node_modules/webpack/lib/runtime/DefinePropertyGettersRuntimeModule.js new file mode 100644 index 00000000..4dad207a --- /dev/null +++ b/node_modules/webpack/lib/runtime/DefinePropertyGettersRuntimeModule.js @@ -0,0 +1,42 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php +*/ + +"use strict"; + +const RuntimeGlobals = require("../RuntimeGlobals"); +const Template = require("../Template"); +const HelperRuntimeModule = require("./HelperRuntimeModule"); + +/** @typedef {import("../Compilation")} Compilation */ + +class DefinePropertyGettersRuntimeModule extends HelperRuntimeModule { + constructor() { + super("define property getters"); + } + + /** + * @returns {string | null} runtime code + */ + generate() { + const compilation = /** @type {Compilation} */ (this.compilation); + const { runtimeTemplate } = compilation; + const fn = RuntimeGlobals.definePropertyGetters; + return Template.asString([ + "// define getter functions for harmony exports", + `${fn} = ${runtimeTemplate.basicFunction("exports, definition", [ + "for(var key in definition) {", + Template.indent([ + `if(${RuntimeGlobals.hasOwnProperty}(definition, key) && !${RuntimeGlobals.hasOwnProperty}(exports, key)) {`, + Template.indent([ + "Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });" + ]), + "}" + ]), + "}" + ])};` + ]); + } +} + +module.exports = DefinePropertyGettersRuntimeModule; -- cgit v1.2.3