From e23486ac3b23ce3afe1ce94e13202cc7ef2ca684 Mon Sep 17 00:00:00 2001 From: Daeyeon Jeong Date: Sat, 1 Oct 2022 20:36:42 +0900 Subject: [PATCH] stream: fix `size` function returned from QueuingStrategies The `size` function returned from the `size` getter of `ByteLengthQueuingStrategy` or `CountQueuingStrategy` should not have a prototype property, nor be a constructor. Refs: https://streams.spec.whatwg.org/#blqs-size Refs: https://streams.spec.whatwg.org/#cqs-size Signed-off-by: Daeyeon Jeong --- lib/internal/webstreams/queuingstrategies.js | 10 ++++++---- test/wpt/status/streams.json | 10 ---------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/lib/internal/webstreams/queuingstrategies.js b/lib/internal/webstreams/queuingstrategies.js index 78cec0c35559d3..9579bed830f1e3 100644 --- a/lib/internal/webstreams/queuingstrategies.js +++ b/lib/internal/webstreams/queuingstrategies.js @@ -2,6 +2,7 @@ const { ObjectDefineProperties, + ObjectDefineProperty, SymbolToStringTag, } = primordials; @@ -47,11 +48,12 @@ const isCountQueuingStrategy = * }} QueuingStrategy */ -// eslint-disable-next-line func-name-matching,func-style -const byteSizeFunction = function size(chunk) { return chunk.byteLength; }; +const byteSizeFunction = (chunk) => { return chunk.byteLength; }; +const countSizeFunction = () => { return 1; }; -// eslint-disable-next-line func-name-matching,func-style -const countSizeFunction = function size() { return 1; }; +for (const fn of [byteSizeFunction, countSizeFunction]) { + ObjectDefineProperty(fn, 'name', { __proto__: null, value: 'size' }); +} /** * @type {QueuingStrategy} diff --git a/test/wpt/status/streams.json b/test/wpt/status/streams.json index 166bcf869080d2..9899c581d9f96e 100644 --- a/test/wpt/status/streams.json +++ b/test/wpt/status/streams.json @@ -2,16 +2,6 @@ "queuing-strategies-size-function-per-global.window.js": { "skip": "Browser-specific test" }, - "queuing-strategies.any.js": { - "fail": { - "expected": [ - "CountQueuingStrategy: size should not have a prototype property", - "ByteLengthQueuingStrategy: size should not have a prototype property", - "CountQueuingStrategy: size should not be a constructor", - "ByteLengthQueuingStrategy: size should not be a constructor" - ] - } - }, "readable-streams/cross-realm-crash.window.js": { "skip": "Browser-specific test" },