summaryrefslogtreecommitdiff
path: root/ext/ffi/00_ffi.js
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2022-01-27 13:36:36 +0100
committerGitHub <noreply@github.com>2022-01-27 13:36:36 +0100
commit884143218fad0e18f7553aaf079d52de703f7601 (patch)
tree9b9e9d30ea647041438ef8fa974b8d4234cabf73 /ext/ffi/00_ffi.js
parentdcf8f144ab0516936bfa4e93357d71f1732d880e (diff)
refactor: update runtime code for primordial checks for "instanceof" (#13497)
Diffstat (limited to 'ext/ffi/00_ffi.js')
-rw-r--r--ext/ffi/00_ffi.js8
1 files changed, 5 insertions, 3 deletions
diff --git a/ext/ffi/00_ffi.js b/ext/ffi/00_ffi.js
index abe806cc0..b979c73d4 100644
--- a/ext/ffi/00_ffi.js
+++ b/ext/ffi/00_ffi.js
@@ -5,10 +5,11 @@
const core = window.Deno.core;
const __bootstrap = window.__bootstrap;
const {
- ArrayBuffer,
+ ArrayBufferPrototype,
Uint8Array,
BigInt,
Number,
+ ObjectPrototypeIsPrototypeOf,
TypeError,
} = window.__bootstrap.primordials;
@@ -141,6 +142,7 @@
return this.value;
}
}
+ const UnsafePointerPrototype = UnsafePointer.prototype;
function prepareArgs(types, args) {
const parameters = [];
@@ -152,12 +154,12 @@
if (type === "pointer") {
if (
- arg?.buffer instanceof ArrayBuffer &&
+ ObjectPrototypeIsPrototypeOf(ArrayBufferPrototype, arg?.buffer) &&
arg.byteLength !== undefined
) {
parameters.push(buffers.length);
buffers.push(arg);
- } else if (arg instanceof UnsafePointer) {
+ } else if (ObjectPrototypeIsPrototypeOf(UnsafePointerPrototype, arg)) {
parameters.push(packU64(arg.value));
buffers.push(undefined);
} else if (arg === null) {