summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenta Moriuchi <moriken@kimamass.com>2024-04-24 05:54:19 +0900
committerGitHub <noreply@github.com>2024-04-23 22:54:19 +0200
commitaff7a64544ee72069049a5429d625b10e4b390a6 (patch)
tree131db61489f64925daa49dcb6bdf645242e15f79
parentae62443ae037cf70eba3770699e82224d064229b (diff)
fix: Float16Array support (#23512)
Ref #23490, #23277 * remove `--js-float16array` flag (This flag has already added to deno_core) * add some `Float16Array` support
-rw-r--r--cli/main.rs2
-rw-r--r--ext/node/polyfills/internal/util/types.ts4
-rw-r--r--ext/web/02_structured_clone.js4
-rw-r--r--ext/web/06_streams.js4
-rw-r--r--ext/webidl/00_webidl.js2
-rw-r--r--tests/wpt/runner/expectation.json8
6 files changed, 15 insertions, 9 deletions
diff --git a/cli/main.rs b/cli/main.rs
index 6efad7cd4..a4e93ca31 100644
--- a/cli/main.rs
+++ b/cli/main.rs
@@ -385,7 +385,7 @@ fn resolve_flags_and_init(
// Using same default as VSCode:
// https://github.com/microsoft/vscode/blob/48d4ba271686e8072fc6674137415bc80d936bc7/extensions/typescript-language-features/src/configuration/configuration.ts#L213-L214
DenoSubcommand::Lsp => vec!["--max-old-space-size=3072".to_string()],
- _ => vec!["--js-float16array".to_string()],
+ _ => vec![],
};
init_v8_flags(&default_v8_flags, &flags.v8_flags, get_v8_flags_from_env());
diff --git a/ext/node/polyfills/internal/util/types.ts b/ext/node/polyfills/internal/util/types.ts
index 30a25e2e5..b8aca5968 100644
--- a/ext/node/polyfills/internal/util/types.ts
+++ b/ext/node/polyfills/internal/util/types.ts
@@ -58,6 +58,10 @@ export function isBigUint64Array(value: unknown): value is BigUint64Array {
return TypedArrayPrototypeGetSymbolToStringTag(value) === "BigUint64Array";
}
+export function isFloat16Array(value: unknown): value is Float16Array {
+ return TypedArrayPrototypeGetSymbolToStringTag(value) === "Float16Array";
+}
+
export function isFloat32Array(value: unknown): value is Float32Array {
return TypedArrayPrototypeGetSymbolToStringTag(value) === "Float32Array";
}
diff --git a/ext/web/02_structured_clone.js b/ext/web/02_structured_clone.js
index 84829c313..776a8ee96 100644
--- a/ext/web/02_structured_clone.js
+++ b/ext/web/02_structured_clone.js
@@ -36,7 +36,6 @@ const {
Uint16Array,
Uint32Array,
BigUint64Array,
- Float16Array,
Float32Array,
Float64Array,
} = primordials;
@@ -59,7 +58,7 @@ function cloneArrayBuffer(
);
}
-// TODO(petamoriken): Resizable ArrayBuffer support in the future
+// TODO(petamoriken): add Resizable ArrayBuffer support
/** Clone a value in a similar way to structured cloning. It is similar to a
* StructureDeserialize(StructuredSerialize(...)). */
function structuredClone(value) {
@@ -117,6 +116,7 @@ function structuredClone(value) {
Constructor = BigUint64Array;
break;
case "Float16Array":
+ // TODO(petamoriken): add Float16Array to primordials
Constructor = Float16Array;
break;
case "Float32Array":
diff --git a/ext/web/06_streams.js b/ext/web/06_streams.js
index cdee1a9dc..e0e3ccbbe 100644
--- a/ext/web/06_streams.js
+++ b/ext/web/06_streams.js
@@ -1995,6 +1995,10 @@ function readableByteStreamControllerPullInto(
case "Uint32Array":
ctor = Uint32Array;
break;
+ case "Float16Array":
+ // TODO(petamoriken): add Float16Array to primordials
+ ctor = Float16Array;
+ break;
case "Float32Array":
ctor = Float32Array;
break;
diff --git a/ext/webidl/00_webidl.js b/ext/webidl/00_webidl.js
index 6cf2c5f8c..6bf6714c6 100644
--- a/ext/webidl/00_webidl.js
+++ b/ext/webidl/00_webidl.js
@@ -525,6 +525,8 @@ ArrayPrototypeForEach(
Uint16Array,
Uint32Array,
Uint8ClampedArray,
+ // TODO(petamoriken): add Float16Array converter
+ // Float16Array,
Float32Array,
Float64Array,
],
diff --git a/tests/wpt/runner/expectation.json b/tests/wpt/runner/expectation.json
index 48f1db0f4..f20cd78f1 100644
--- a/tests/wpt/runner/expectation.json
+++ b/tests/wpt/runner/expectation.json
@@ -7158,12 +7158,8 @@
"response-from-stream.any.worker.html": true,
"response-cancel-stream.any.html": true,
"response-cancel-stream.any.worker.html": true,
- "response-clone.any.html": [
- "Check response clone use structureClone for teed ReadableStreams (Float16Arraychunk)"
- ],
- "response-clone.any.worker.html": [
- "Check response clone use structureClone for teed ReadableStreams (Float16Arraychunk)"
- ],
+ "response-clone.any.html": true,
+ "response-clone.any.worker.html": true,
"response-consume-empty.any.html": [
"Consume empty FormData response body as text"
],