| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 4b1bed0 commit 246cf73
9 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -4,6 +4,7 @@ const { | |||
| 4 | 4 | DateNow, | |
| 5 | 5 | NumberIsNaN, | |
| 6 | 6 | ObjectDefineProperties, | |
| 7 | + StringPrototypeToWellFormed, | ||
| 7 | 8 | SymbolToStringTag, | |
| 8 | 9 | } = primordials; | |
| 9 | 10 | ||
@@ -15,7 +16,6 @@ const { | |||
| 15 | 16 | customInspectSymbol: kInspect, | |
| 16 | 17 | kEnumerableProperty, | |
| 17 | 18 | kEmptyObject, | |
| 18 | - toUSVString, | ||
| 19 | 19 | } = require('internal/util'); | |
| 20 | 20 | ||
| 21 | 21 | const { | |
@@ -55,7 +55,7 @@ class File extends Blob { | |||
| 55 | 55 | lastModified = DateNow(); | |
| 56 | 56 | } | |
| 57 | 57 | ||
| 58 | - this.#name = toUSVString(fileName); | ||
| 58 | + this.#name = StringPrototypeToWellFormed(`${fileName}`); | ||
| 59 | 59 | this.#lastModified = lastModified; | |
| 60 | 60 | } | |
| 61 | 61 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -26,6 +26,7 @@ const { | |||
| 26 | 26 | StringPrototypeIndexOf, | |
| 27 | 27 | StringPrototypeSlice, | |
| 28 | 28 | StringPrototypeStartsWith, | |
| 29 | + StringPrototypeToWellFormed, | ||
| 29 | 30 | Symbol, | |
| 30 | 31 | SymbolIterator, | |
| 31 | 32 | SymbolToStringTag, | |
@@ -42,7 +43,6 @@ const { | |||
| 42 | 43 | const { | |
| 43 | 44 | getConstructorOf, | |
| 44 | 45 | removeColors, | |
| 45 | - toUSVString, | ||
| 46 | 46 | kEnumerableProperty, | |
| 47 | 47 | SideEffectFreeRegExpPrototypeSymbolReplace, | |
| 48 | 48 | } = require('internal/util'); | |
@@ -366,7 +366,11 @@ class URLSearchParams { | |||
| 366 | 366 | throw new ERR_INVALID_TUPLE('Each query pair', '[name, value]'); | |
| 367 | 367 | } | |
| 368 | 368 | // Append (innerSequence[0], innerSequence[1]) to querys list. | |
| 369 | - ArrayPrototypePush(this.#searchParams, toUSVString(pair[0]), toUSVString(pair[1])); | ||
| 369 | + ArrayPrototypePush( | ||
| 370 | + this.#searchParams, | ||
| 371 | + StringPrototypeToWellFormed(`${pair[0]}`), | ||
| 372 | + StringPrototypeToWellFormed(`${pair[1]}`), | ||
| 373 | + ); | ||
| 370 | 374 | } else { | |
| 371 | 375 | if (((typeof pair !== 'object' && typeof pair !== 'function') || | |
| 372 | 376 | typeof pair[SymbolIterator] !== 'function')) { | |
@@ -377,7 +381,7 @@ class URLSearchParams { | |||
| 377 | 381 | ||
| 378 | 382 | for (const element of pair) { | |
| 379 | 383 | length++; | |
| 380 | - ArrayPrototypePush(this.#searchParams, toUSVString(element)); | ||
| 384 | + ArrayPrototypePush(this.#searchParams, StringPrototypeToWellFormed(`${element}`)); | ||
| 381 | 385 | } | |
| 382 | 386 | ||
| 383 | 387 | // If innerSequence's size is not 2, then throw a TypeError. | |
@@ -395,8 +399,8 @@ class URLSearchParams { | |||
| 395 | 399 | const key = keys[i]; | |
| 396 | 400 | const desc = ReflectGetOwnPropertyDescriptor(init, key); | |
| 397 | 401 | if (desc !== undefined && desc.enumerable) { | |
| 398 | - const typedKey = toUSVString(key); | ||
| 399 | - const typedValue = toUSVString(init[key]); | ||
| 402 | + const typedKey = StringPrototypeToWellFormed(key); | ||
| 403 | + const typedValue = StringPrototypeToWellFormed(`${init[key]}`); | ||
| 400 | 404 | ||
| 401 | 405 | // Two different keys may become the same USVString after normalization. | |
| 402 | 406 | // In that case, we retain the later one. Refer to WPT. | |
@@ -413,7 +417,7 @@ class URLSearchParams { | |||
| 413 | 417 | } | |
| 414 | 418 | } else { | |
| 415 | 419 | // https://url.spec.whatwg.org/#dom-urlsearchparams-urlsearchparams | |
| 416 | - init = toUSVString(init); | ||
| 420 | + init = StringPrototypeToWellFormed(`${init}`); | ||
| 417 | 421 | this.#searchParams = init ? parseParams(init) : []; | |
| 418 | 422 | } | |
| 419 | 423 | } | |
@@ -468,8 +472,8 @@ class URLSearchParams { | |||
| 468 | 472 | throw new ERR_MISSING_ARGS('name', 'value'); | |
| 469 | 473 | } | |
| 470 | 474 | ||
| 471 | - name = toUSVString(name); | ||
| 472 | - value = toUSVString(value); | ||
| 475 | + name = StringPrototypeToWellFormed(`${name}`); | ||
| 476 | + value = StringPrototypeToWellFormed(`${value}`); | ||
| 473 | 477 | ArrayPrototypePush(this.#searchParams, name, value); | |
| 474 | 478 | if (this.#context) { | |
| 475 | 479 | this.#context.search = this.toString(); | |
@@ -485,10 +489,10 @@ class URLSearchParams { | |||
| 485 | 489 | } | |
| 486 | 490 | ||
| 487 | 491 | const list = this.#searchParams; | |
| 488 | - name = toUSVString(name); | ||
| 492 | + name = StringPrototypeToWellFormed(`${name}`); | ||
| 489 | 493 | ||
| 490 | 494 | if (value !== undefined) { | |
| 491 | - value = toUSVString(value); | ||
| 495 | + value = StringPrototypeToWellFormed(`${value}`); | ||
| 492 | 496 | for (let i = 0; i < list.length;) { | |
| 493 | 497 | if (list[i] === name && list[i + 1] === value) { | |
| 494 | 498 | list.splice(i, 2); | |
@@ -519,7 +523,7 @@ class URLSearchParams { | |||
| 519 | 523 | } | |
| 520 | 524 | ||
| 521 | 525 | const list = this.#searchParams; | |
| 522 | - name = toUSVString(name); | ||
| 526 | + name = StringPrototypeToWellFormed(`${name}`); | ||
| 523 | 527 | for (let i = 0; i < list.length; i += 2) { | |
| 524 | 528 | if (list[i] === name) { | |
| 525 | 529 | return list[i + 1]; | |
@@ -538,7 +542,7 @@ class URLSearchParams { | |||
| 538 | 542 | ||
| 539 | 543 | const list = this.#searchParams; | |
| 540 | 544 | const values = []; | |
| 541 | - name = toUSVString(name); | ||
| 545 | + name = StringPrototypeToWellFormed(`${name}`); | ||
| 542 | 546 | for (let i = 0; i < list.length; i += 2) { | |
| 543 | 547 | if (list[i] === name) { | |
| 544 | 548 | values.push(list[i + 1]); | |
@@ -556,10 +560,10 @@ class URLSearchParams { | |||
| 556 | 560 | } | |
| 557 | 561 | ||
| 558 | 562 | const list = this.#searchParams; | |
| 559 | - name = toUSVString(name); | ||
| 563 | + name = StringPrototypeToWellFormed(`${name}`); | ||
| 560 | 564 | ||
| 561 | 565 | if (value !== undefined) { | |
| 562 | - value = toUSVString(value); | ||
| 566 | + value = StringPrototypeToWellFormed(`${value}`); | ||
| 563 | 567 | } | |
| 564 | 568 | ||
| 565 | 569 | for (let i = 0; i < list.length; i += 2) { | |
@@ -582,8 +586,8 @@ class URLSearchParams { | |||
| 582 | 586 | } | |
| 583 | 587 | ||
| 584 | 588 | const list = this.#searchParams; | |
| 585 | - name = toUSVString(name); | ||
| 586 | - value = toUSVString(value); | ||
| 589 | + name = StringPrototypeToWellFormed(`${name}`); | ||
| 590 | + value = StringPrototypeToWellFormed(`${value}`); | ||
| 587 | 591 | ||
| 588 | 592 | // If there are any name-value pairs whose name is `name`, in `list`, set | |
| 589 | 593 | // the value of the first such name-value pair to `value` and remove the | |
@@ -773,7 +777,7 @@ class URL { | |||
| 773 | 777 | throw new ERR_MISSING_ARGS('url'); | |
| 774 | 778 | } | |
| 775 | 779 | ||
| 776 | - // toUSVString is not needed. | ||
| 780 | + // StringPrototypeToWellFormed is not needed. | ||
| 777 | 781 | input = `${input}`; | |
| 778 | 782 | ||
| 779 | 783 | if (base !== undefined) { | |
@@ -1006,7 +1010,7 @@ class URL { | |||
| 1006 | 1010 | } | |
| 1007 | 1011 | ||
| 1008 | 1012 | set search(value) { | |
| 1009 | - const href = bindingUrl.update(this.#context.href, updateActions.kSearch, toUSVString(value)); | ||
| 1013 | + const href = bindingUrl.update(this.#context.href, updateActions.kSearch, StringPrototypeToWellFormed(`${value}`)); | ||
| 1010 | 1014 | if (href) { | |
| 1011 | 1015 | this.#updateContext(href); | |
| 1012 | 1016 | } | |
@@ -1297,15 +1301,15 @@ function domainToASCII(domain) { | |||
| 1297 | 1301 | if (arguments.length < 1) | |
| 1298 | 1302 | throw new ERR_MISSING_ARGS('domain'); | |
| 1299 | 1303 | ||
| 1300 | - // toUSVString is not needed. | ||
| 1304 | + // StringPrototypeToWellFormed is not needed. | ||
| 1301 | 1305 | return bindingUrl.domainToASCII(`${domain}`); | |
| 1302 | 1306 | } | |
| 1303 | 1307 | ||
| 1304 | 1308 | function domainToUnicode(domain) { | |
| 1305 | 1309 | if (arguments.length < 1) | |
| 1306 | 1310 | throw new ERR_MISSING_ARGS('domain'); | |
| 1307 | 1311 | ||
| 1308 | - // toUSVString is not needed. | ||
| 1312 | + // StringPrototypeToWellFormed is not needed. | ||
| 1309 | 1313 | return bindingUrl.domainToUnicode(`${domain}`); | |
| 1310 | 1314 | } | |
| 1311 | 1315 | ||
@@ -1501,7 +1505,6 @@ function getURLOrigin(url) { | |||
| 1501 | 1505 | } | |
| 1502 | 1506 | ||
| 1503 | 1507 | module.exports = { | |
| 1504 | - toUSVString, | ||
| 1505 | 1508 | fileURLToPath, | |
| 1506 | 1509 | pathToFileURL, | |
| 1507 | 1510 | toPathIfFileURL, | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -62,7 +62,6 @@ const { | |||
| 62 | 62 | decorated_private_symbol, | |
| 63 | 63 | }, | |
| 64 | 64 | sleep: _sleep, | |
| 65 | - toUSVString: _toUSVString, | ||
| 66 | 65 | } = internalBinding('util'); | |
| 67 | 66 | const { isNativeError, isPromise } = internalBinding('types'); | |
| 68 | 67 | const { getOptionValue } = require('internal/options'); | |
@@ -73,18 +72,6 @@ const experimentalWarnings = new SafeSet(); | |||
| 73 | 72 | ||
| 74 | 73 | const colorRegExp = /\u001b\[\d\d?m/g; // eslint-disable-line no-control-regex | |
| 75 | 74 | ||
| 76 | - const unpairedSurrogateRe = | ||
| 77 | - /(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])/; | ||
| 78 | - function toUSVString(val) { | ||
| 79 | - const str = `${val}`; | ||
| 80 | - // As of V8 5.5, `str.search()` (and `unpairedSurrogateRe[@@search]()`) are | ||
| 81 | - // slower than `unpairedSurrogateRe.exec()`. | ||
| 82 | - const match = RegExpPrototypeExec(unpairedSurrogateRe, str); | ||
| 83 | - if (!match) | ||
| 84 | - return str; | ||
| 85 | - return _toUSVString(str, match.index); | ||
| 86 | - } | ||
| 87 | - | ||
| 88 | 75 | let uvBinding; | |
| 89 | 76 | ||
| 90 | 77 | function lazyUv() { | |
@@ -913,7 +900,6 @@ module.exports = { | |||
| 913 | 900 | sleep, | |
| 914 | 901 | spliceOne, | |
| 915 | 902 | setupCoverageHooks, | |
| 916 | - toUSVString, | ||
| 917 | 903 | removeColors, | |
| 918 | 904 | ||
| 919 | 905 | // Symbol used to customize promisify conversion | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -44,6 +44,7 @@ const { | |||
| 44 | 44 | ObjectValues, | |
| 45 | 45 | ReflectApply, | |
| 46 | 46 | StringPrototypePadStart, | |
| 47 | + StringPrototypeToWellFormed, | ||
| 47 | 48 | } = primordials; | |
| 48 | 49 | ||
| 49 | 50 | const { | |
@@ -75,7 +76,6 @@ const { | |||
| 75 | 76 | getSystemErrorMap, | |
| 76 | 77 | getSystemErrorName: internalErrorName, | |
| 77 | 78 | promisify, | |
| 78 | - toUSVString, | ||
| 79 | 79 | defineLazyProperties, | |
| 80 | 80 | } = require('internal/util'); | |
| 81 | 81 | ||
@@ -411,7 +411,9 @@ module.exports = { | |||
| 411 | 411 | log, | |
| 412 | 412 | promisify, | |
| 413 | 413 | stripVTControlCharacters, | |
| 414 | - toUSVString, | ||
| 414 | + toUSVString(input) { | ||
| 415 | + return StringPrototypeToWellFormed(`${input}`); | ||
| 416 | + }, | ||
| 415 | 417 | get transferableAbortSignal() { | |
| 416 | 418 | return lazyAbortController().transferableAbortSignal; | |
| 417 | 419 | }, | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -37,9 +37,6 @@ using v8::String; | |||
| 37 | 37 | using v8::Uint32; | |
| 38 | 38 | using v8::Value; | |
| 39 | 39 | ||
| 40 | - // Used in ToUSVString(). | ||
| 41 | - constexpr char16_t kUnicodeReplacementCharacter = 0xFFFD; | ||
| 42 | - | ||
| 43 | 40 | // If a UTF-16 character is a low/trailing surrogate. | |
| 44 | 41 | CHAR_TEST(16, IsUnicodeTrail, (ch & 0xFC00) == 0xDC00) | |
| 45 | 42 | ||
@@ -240,40 +237,6 @@ static uint32_t FastGuessHandleType(Local<Value> receiver, const uint32_t fd) { | |||
| 240 | 237 | ||
| 241 | 238 | CFunction fast_guess_handle_type_(CFunction::Make(FastGuessHandleType)); | |
| 242 | 239 | ||
| 243 | - static void ToUSVString(const FunctionCallbackInfo<Value>& args) { | ||
| 244 | - Environment* env = Environment::GetCurrent(args); | ||
| 245 | - CHECK_GE(args.Length(), 2); | ||
| 246 | - CHECK(args[0]->IsString()); | ||
| 247 | - CHECK(args[1]->IsNumber()); | ||
| 248 | - | ||
| 249 | - TwoByteValue value(env->isolate(), args[0]); | ||
| 250 | - | ||
| 251 | - int64_t start = args[1]->IntegerValue(env->context()).FromJust(); | ||
| 252 | - CHECK_GE(start, 0); | ||
| 253 | - | ||
| 254 | - for (size_t i = start; i < value.length(); i++) { | ||
| 255 | - char16_t c = value[i]; | ||
| 256 | - if (!IsUnicodeSurrogate(c)) { | ||
| 257 | - continue; | ||
| 258 | - } else if (IsUnicodeSurrogateTrail(c) || i == value.length() - 1) { | ||
| 259 | - value[i] = kUnicodeReplacementCharacter; | ||
| 260 | - } else { | ||
| 261 | - char16_t d = value[i + 1]; | ||
| 262 | - if (IsUnicodeTrail(d)) { | ||
| 263 | - i++; | ||
| 264 | - } else { | ||
| 265 | - value[i] = kUnicodeReplacementCharacter; | ||
| 266 | - } | ||
| 267 | - } | ||
| 268 | - } | ||
| 269 | - | ||
| 270 | - args.GetReturnValue().Set( | ||
| 271 | - String::NewFromTwoByte(env->isolate(), | ||
| 272 | - *value, | ||
| 273 | - v8::NewStringType::kNormal, | ||
| 274 | - value.length()).ToLocalChecked()); | ||
| 275 | - } | ||
| 276 | - | ||
| 277 | 240 | void RegisterExternalReferences(ExternalReferenceRegistry* registry) { | |
| 278 | 241 | registry->Register(GetPromiseDetails); | |
| 279 | 242 | registry->Register(GetProxyDetails); | |
@@ -288,7 +251,6 @@ void RegisterExternalReferences(ExternalReferenceRegistry* registry) { | |||
| 288 | 251 | registry->Register(GuessHandleType); | |
| 289 | 252 | registry->Register(FastGuessHandleType); | |
| 290 | 253 | registry->Register(fast_guess_handle_type_.GetTypeInfo()); | |
| 291 | - registry->Register(ToUSVString); | ||
| 292 | 254 | } | |
| 293 | 255 | ||
| 294 | 256 | void Initialize(Local<Object> target, | |
@@ -403,8 +365,6 @@ void Initialize(Local<Object> target, | |||
| 403 | 365 | "guessHandleType", | |
| 404 | 366 | GuessHandleType, | |
| 405 | 367 | &fast_guess_handle_type_); | |
| 406 | - | ||
| 407 | - SetMethodNoSideEffect(context, target, "toUSVString", ToUSVString); | ||
| 408 | 368 | } | |
| 409 | 369 | ||
| 410 | 370 | } // namespace util | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -43,5 +43,4 @@ export interface UtilBinding { | |||
| 43 | 43 | shouldAbortOnUncaughtToggle: [shouldAbort: 0 | 1]; | |
| 44 | 44 | WeakReference: typeof InternalUtilBinding.WeakReference; | |
| 45 | 45 | guessHandleType(fd: number): 'TCP' | 'TTY' | 'UDP' | 'FILE' | 'PIPE' | 'UNKNOWN'; | |
| 46 | - toUSVString(str: string, start: number): string; | ||
| 47 | 46 | } | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -420,6 +420,7 @@ declare namespace primordials { | |||
| 420 | 420 | export const StringPrototypeToLocaleUpperCase: UncurryThis<typeof String.prototype.toLocaleUpperCase> | |
| 421 | 421 | export const StringPrototypeToLowerCase: UncurryThis<typeof String.prototype.toLowerCase> | |
| 422 | 422 | export const StringPrototypeToUpperCase: UncurryThis<typeof String.prototype.toUpperCase> | |
| 423 | + export const StringPrototypeToWellFormed: UncurryThis<typeof String.prototype.toWellFormed> | ||
| 423 | 424 | export const StringPrototypeValueOf: UncurryThis<typeof String.prototype.valueOf> | |
| 424 | 425 | export const StringPrototypeReplaceAll: UncurryThis<typeof String.prototype.replaceAll> | |
| 425 | 426 | export import Symbol = globalThis.Symbol; | |
| Back | FazBrowse Home | New Git URL |
0 commit comments