summaryrefslogtreecommitdiff
path: root/lib/vm.js
diff options
context:
space:
mode:
authorBenjamin Chen <benjaminlchen@gmail.com>2018-09-18 01:28:41 -0400
committerRefael Ackermann <refack@gmail.com>2018-11-02 10:18:58 -0400
commit65fe999ed77c958468ca55c24e9242e193b55f95 (patch)
tree8977248f6c807913f3e2fd6b941d9a2f710eefea /lib/vm.js
parent74ba48294b115364b92bbd5c87c8025cd109e303 (diff)
downloadandroid-node-v8-65fe999ed77c958468ca55c24e9242e193b55f95.tar.gz
android-node-v8-65fe999ed77c958468ca55c24e9242e193b55f95.tar.bz2
android-node-v8-65fe999ed77c958468ca55c24e9242e193b55f95.zip
vm: allow `cachedData` to also be TypedArray|DataView
PR-URL: https://github.com/nodejs/node/pull/22921 Refs: https://github.com/nodejs/node/issues/1826 Refs: https://github.com/nodejs/node/pull/22921#issuecomment-422350213 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Denys Otrishko <shishugi@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com>
Diffstat (limited to 'lib/vm.js')
-rw-r--r--lib/vm.js15
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/vm.js b/lib/vm.js
index 1bb948fa55..6e735bca4a 100644
--- a/lib/vm.js
+++ b/lib/vm.js
@@ -32,7 +32,7 @@ const {
ERR_INVALID_ARG_TYPE,
ERR_VM_MODULE_NOT_MODULE,
} = require('internal/errors').codes;
-const { isModuleNamespaceObject, isUint8Array } = require('util').types;
+const { isModuleNamespaceObject, isArrayBufferView } = require('util').types;
const { validateInt32, validateUint32 } = require('internal/validators');
const kParsingContext = Symbol('script parsing context');
@@ -64,9 +64,12 @@ class Script extends ContextifyScript {
}
validateInt32(lineOffset, 'options.lineOffset');
validateInt32(columnOffset, 'options.columnOffset');
- if (cachedData !== undefined && !isUint8Array(cachedData)) {
- throw new ERR_INVALID_ARG_TYPE('options.cachedData',
- ['Buffer', 'Uint8Array'], cachedData);
+ if (cachedData !== undefined && !isArrayBufferView(cachedData)) {
+ throw new ERR_INVALID_ARG_TYPE(
+ 'options.cachedData',
+ ['Buffer', 'TypedArray', 'DataView'],
+ cachedData
+ );
}
if (typeof produceCachedData !== 'boolean') {
throw new ERR_INVALID_ARG_TYPE('options.produceCachedData', 'boolean',
@@ -346,10 +349,10 @@ function compileFunction(code, params, options = {}) {
}
validateUint32(columnOffset, 'options.columnOffset');
validateUint32(lineOffset, 'options.lineOffset');
- if (cachedData !== undefined && !isUint8Array(cachedData)) {
+ if (cachedData !== undefined && !isArrayBufferView(cachedData)) {
throw new ERR_INVALID_ARG_TYPE(
'options.cachedData',
- 'Uint8Array',
+ ['Buffer', 'TypedArray', 'DataView'],
cachedData
);
}