diff options
Diffstat (limited to 'ext/webidl')
-rw-r--r-- | ext/webidl/00_webidl.js | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/ext/webidl/00_webidl.js b/ext/webidl/00_webidl.js index ca1c7c606..9454dc392 100644 --- a/ext/webidl/00_webidl.js +++ b/ext/webidl/00_webidl.js @@ -59,7 +59,6 @@ const { ReflectHas, ReflectOwnKeys, RegExpPrototypeTest, - RegExpPrototypeExec, SafeRegExp, SafeSet, SetPrototypeEntries, @@ -403,11 +402,19 @@ converters.DOMString = function (V, prefix, context, opts = {}) { return String(V); }; -// deno-lint-ignore no-control-regex -const IS_BYTE_STRING = new SafeRegExp(/^[\x00-\xFF]*$/); +function isByteString(input) { + for (let i = 0; i < input.length; i++) { + if (StringPrototypeCharCodeAt(input, i) > 255) { + // If a character code is greater than 255, it means the string is not a byte string. + return false; + } + } + return true; +} + converters.ByteString = (V, prefix, context, opts) => { const x = converters.DOMString(V, prefix, context, opts); - if (RegExpPrototypeExec(IS_BYTE_STRING, x) === null) { + if (!isByteString(x)) { throw makeException( TypeError, "is not a valid ByteString", |