summaryrefslogtreecommitdiff
path: root/ext/webidl/00_webidl.js
diff options
context:
space:
mode:
authorAndreu Botella <abb@randomunok.com>2021-10-28 14:17:27 -0700
committerGitHub <noreply@github.com>2021-10-28 23:17:27 +0200
commit74a93fdf63a17de990954399b10eb6dfe7dd1973 (patch)
treea1b0d8c48d6ad375100dd0bd8723f8910af47165 /ext/webidl/00_webidl.js
parent507ab50e0f33f0b4264c68179055ad8a7dc60320 (diff)
fix(webidl): Don't throw when converting a detached buffer source (#12585)
The Web IDL conversion to `BufferSource` and similar types shouldn't check whether the buffer is detached. In the case of `TextDecoder`, our implementation would still throw after the Web IDL conversions because we're creating a new `Uint8Array` from the buffer source's buffer, which throws if it's detached. This change also fixes this bug.
Diffstat (limited to 'ext/webidl/00_webidl.js')
-rw-r--r--ext/webidl/00_webidl.js43
1 files changed, 0 insertions, 43 deletions
diff --git a/ext/webidl/00_webidl.js b/ext/webidl/00_webidl.js
index fa9d14e65..4cbba195c 100644
--- a/ext/webidl/00_webidl.js
+++ b/ext/webidl/00_webidl.js
@@ -441,15 +441,6 @@
return V instanceof SharedArrayBuffer;
}
- function isArrayBufferDetached(V) {
- try {
- new Uint8Array(V);
- return false;
- } catch {
- return true;
- }
- }
-
converters.ArrayBuffer = (V, opts = {}) => {
if (!isNonSharedArrayBuffer(V)) {
if (opts.allowShared && !isSharedArrayBuffer(V)) {
@@ -461,9 +452,6 @@
}
throw makeException(TypeError, "is not an ArrayBuffer", opts);
}
- if (isArrayBufferDetached(V)) {
- throw makeException(TypeError, "is a detached ArrayBuffer", opts);
- }
return V;
};
@@ -480,13 +468,6 @@
opts,
);
}
- if (isArrayBufferDetached(V.buffer)) {
- throw makeException(
- TypeError,
- "is backed by a detached ArrayBuffer",
- opts,
- );
- }
return V;
};
@@ -529,13 +510,6 @@
opts,
);
}
- if (isArrayBufferDetached(V.buffer)) {
- throw makeException(
- TypeError,
- "is a view on a detached ArrayBuffer",
- opts,
- );
- }
return V;
};
@@ -561,13 +535,6 @@
);
}
- if (isArrayBufferDetached(V.buffer)) {
- throw makeException(
- TypeError,
- "is a view on a detached ArrayBuffer",
- opts,
- );
- }
return V;
};
@@ -581,13 +548,6 @@
);
}
- if (isArrayBufferDetached(V.buffer)) {
- throw makeException(
- TypeError,
- "is a view on a detached ArrayBuffer",
- opts,
- );
- }
return V;
}
@@ -609,9 +569,6 @@
opts,
);
}
- if (isArrayBufferDetached(V)) {
- throw makeException(TypeError, "is a detached ArrayBuffer", opts);
- }
return V;
};