From 86de757c6c1dc9da5a30ca36c94722132c47e0f3 Mon Sep 17 00:00:00 2001 From: Chengzhong Wu Date: Thu, 29 Sep 2022 07:14:23 +0000 Subject: [PATCH] fixup! src,lib: retrieve parsed source map url from v8 --- lib/internal/vm.js | 4 ++-- test/parallel/test-vm-source-map-url.js | 27 +++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 test/parallel/test-vm-source-map-url.js diff --git a/lib/internal/vm.js b/lib/internal/vm.js index 7164fcd6ab2b77..32bcdf06234b67 100644 --- a/lib/internal/vm.js +++ b/lib/internal/vm.js @@ -22,7 +22,7 @@ const { } = require('internal/errors').codes; function isContext(object) { - validateObject(object, 'object', { allowArray: true }); + validateObject(object, 'object', { __proto__: null, allowArray: true }); return _isContext(object); } @@ -68,7 +68,7 @@ function internalCompileFunction(code, params, options) { validateArray(contextExtensions, 'options.contextExtensions'); ArrayPrototypeForEach(contextExtensions, (extension, i) => { const name = `options.contextExtensions[${i}]`; - validateObject(extension, name, { nullable: true }); + validateObject(extension, name, { __proto__: null, nullable: true }); }); const result = compileFunction( diff --git a/test/parallel/test-vm-source-map-url.js b/test/parallel/test-vm-source-map-url.js new file mode 100644 index 00000000000000..22bfc55550e456 --- /dev/null +++ b/test/parallel/test-vm-source-map-url.js @@ -0,0 +1,27 @@ +'use strict'; + +require('../common'); +const assert = require('assert'); +const vm = require('vm'); + +function checkSourceMapUrl(source, expectedSourceMapURL) { + const script = new vm.Script(source); + assert.strictEqual(script.sourceMapURL, expectedSourceMapURL); +} + +// No magic comment +checkSourceMapUrl(` +function myFunc() {} +`, undefined); + +// Malformed magic comment +checkSourceMapUrl(` +function myFunc() {} +// sourceMappingURL=sourcemap.json +`, undefined); + +// Expected magic comment +checkSourceMapUrl(` +function myFunc() {} +//# sourceMappingURL=sourcemap.json +`, 'sourcemap.json');