summaryrefslogtreecommitdiff
path: root/ext/websocket/01_websocket.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/websocket/01_websocket.js')
-rw-r--r--ext/websocket/01_websocket.js11
1 files changed, 6 insertions, 5 deletions
diff --git a/ext/websocket/01_websocket.js b/ext/websocket/01_websocket.js
index 50e110444..635979174 100644
--- a/ext/websocket/01_websocket.js
+++ b/ext/websocket/01_websocket.js
@@ -322,7 +322,12 @@ class WebSocket extends EventTarget {
throw new DOMException("readyState not OPEN", "InvalidStateError");
}
- if (ObjectPrototypeIsPrototypeOf(BlobPrototype, data)) {
+ if (ArrayBufferIsView(data)) {
+ op_ws_send_binary(this[_rid], data);
+ } else if (ObjectPrototypeIsPrototypeOf(ArrayBufferPrototype, data)) {
+ // deno-lint-ignore prefer-primordials
+ op_ws_send_binary(this[_rid], new Uint8Array(data));
+ } else if (ObjectPrototypeIsPrototypeOf(BlobPrototype, data)) {
PromisePrototypeThen(
// deno-lint-ignore prefer-primordials
data.slice().arrayBuffer(),
@@ -332,10 +337,6 @@ class WebSocket extends EventTarget {
new DataView(ab),
),
);
- } else if (ArrayBufferIsView(data)) {
- op_ws_send_binary(this[_rid], data);
- } else if (ObjectPrototypeIsPrototypeOf(ArrayBufferPrototype, data)) {
- op_ws_send_binary(this[_rid], data);
} else {
const string = String(data);
op_ws_send_text(