From 5c8bd0b6f68161e7137669a8d7b69a93cc25a121 Mon Sep 17 00:00:00 2001 From: Asher Gomez Date: Mon, 7 Nov 2022 18:10:38 +1200 Subject: [PATCH] refactor(encoding): move `varint/_wasm_varint/` to `varint/_wasm/` (#2844) --- .github/workflows/ci.yml | 8 +-- .gitignore | 2 +- _tools/check_deprecation.ts | 2 +- _tools/check_licence.ts | 2 +- deno.json | 6 +-- deno.lock | 54 +++++++++++++++++++ .../{_wasm_varint => _wasm}/.rustfmt.toml | 0 .../varint/{_wasm_varint => _wasm}/Cargo.lock | 0 .../varint/{_wasm_varint => _wasm}/Cargo.toml | 0 .../lib/deno_std_wasm_varint.generated.mjs | 0 .../rust-toolchain.toml | 0 .../varint/{_wasm_varint => _wasm}/src/lib.rs | 0 encoding/varint/mod.ts | 2 +- 13 files changed, 65 insertions(+), 11 deletions(-) mode change 100755 => 100644 _tools/check_deprecation.ts create mode 100644 deno.lock rename encoding/varint/{_wasm_varint => _wasm}/.rustfmt.toml (100%) rename encoding/varint/{_wasm_varint => _wasm}/Cargo.lock (100%) rename encoding/varint/{_wasm_varint => _wasm}/Cargo.toml (100%) rename encoding/varint/{_wasm_varint => _wasm}/lib/deno_std_wasm_varint.generated.mjs (100%) rename encoding/varint/{_wasm_varint => _wasm}/rust-toolchain.toml (100%) rename encoding/varint/{_wasm_varint => _wasm}/src/lib.rs (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ba6efb627..77f55445b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -176,7 +176,7 @@ jobs: run: deno task build:crypto --check varint-wasm: - name: "_wasm_varint/" + name: "varint/_wasm" runs-on: ${{ github.repository_owner == 'denoland' && 'ubuntu-20.04-xl' || 'ubuntu-20.04' }} steps: - name: Clone repository @@ -187,12 +187,12 @@ jobs: submodules: false persist-credentials: false - - name: Check for changes to _wasm_varint/ + - name: Check for changes to varint/_wasm id: source run: |- set -o errexit shopt -s inherit_errexit - declare modifications="$(git diff --name-only HEAD~ -- ./encoding/varint/_wasm_varint)" + declare modifications="$(git diff --name-only HEAD~ -- ./encoding/varint/_wasm)" declare modified="$([[ "$modifications" ]] && echo true || echo false)" echo "modified=$modified" >> $GITHUB_OUTPUT echo "Wasm varint source modified in this commit? $modified" @@ -206,7 +206,7 @@ jobs: uses: hecrj/setup-rust-action@v1 if: success() && steps.source.outputs.modified == 'true' with: - # This must match the versions in encoding/_wasm_varint/rust-toolchain.toml + # This must match the versions in encoding/varint/_wasm/rust-toolchain.toml rust-version: 1.64.0 targets: wasm32-unknown-unknown components: rustfmt diff --git a/.gitignore b/.gitignore index b42e60951..56de880ef 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,4 @@ .vim **/cov/ /crypto/_wasm_crypto/target -/encoding/varint/_wasm_varint/target +/encoding/varint/_wasm/target diff --git a/_tools/check_deprecation.ts b/_tools/check_deprecation.ts old mode 100755 new mode 100644 index c3e07630f..bf4671b48 --- a/_tools/check_deprecation.ts +++ b/_tools/check_deprecation.ts @@ -16,7 +16,7 @@ const EXCLUDED_PATHS = [ "http/_negotiation", "crypto/_wasm_crypto", "crypto/_fnv", - "encoding/varint/_wasm_varint", + "encoding/varint/_wasm", "encoding/_yaml", "encoing/_toml", "_tools", diff --git a/_tools/check_licence.ts b/_tools/check_licence.ts index 8d5042ab5..549718c9c 100755 --- a/_tools/check_licence.ts +++ b/_tools/check_licence.ts @@ -11,7 +11,7 @@ const EXCLUDED_DIRS = [ "http/testdata", "node/testdata", "crypto/_wasm_crypto/target", - "encoding/varint/_wasm_varint/target", + "encoding/varint/_wasm/target", "_tools/testdata", ]; diff --git a/deno.json b/deno.json index 4acc8c035..31911623b 100644 --- a/deno.json +++ b/deno.json @@ -9,7 +9,7 @@ "exclude": [ ".git", "crypto/_wasm_crypto/target", - "encoding/varint/_wasm_varint/target", + "encoding/varint/_wasm/target", "cov", "encoding/testdata/jsonc", "encoding/front_matter/testdata", @@ -26,7 +26,7 @@ "exclude": [ ".git", "crypto/_wasm_crypto/target", - "encoding/varint/_wasm_varint/target", + "encoding/varint/_wasm/target", "encoding/testdata/jsonc", "encoding/front_matter/testdata", "cov", @@ -53,7 +53,7 @@ "node:setup": "deno task node:list-remaining-tests && deno run --allow-read --allow-net --allow-write node/_tools/setup.ts", "node:check-unstable-api": "deno check --unstable ./node/module_all.ts", "build:crypto": "deno task --cwd crypto/_wasm_crypto wasmbuild", - "build:varint": "deno task --cwd encoding/varint/_wasm_varint wasmbuild", + "build:varint": "deno task --cwd encoding/varint/_wasm wasmbuild", "wasmbuild": "deno run --unstable -A https://deno.land/x/wasmbuild@0.10.0/main.ts --js-ext mjs --sync" } } diff --git a/deno.lock b/deno.lock new file mode 100644 index 000000000..508dfd1b5 --- /dev/null +++ b/deno.lock @@ -0,0 +1,54 @@ +{ + "version": "2", + "remote": { + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(C)%202015%20Andr%C3%A9%20Bargull.%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aesid%3A%20sec-json.parse%0Adescription%3A%20%3E%0A%20%20JSON.parse.name%20is%20%22parse%22.%0Ainfo%3A%20%7C%0A%20%20JSON.parse%20(%20text%20%5B%20%2C%20reviver%20%5D%20)%0A%0A%20%2017%20ECMAScript%20Standard%20Built-in%20Objects%3A%0A%20%20%20%20Every%20built-in%20Function%20object%2C%20including%20constructors%2C%20that%20is%20not%0A%20%20%20%20identified%20as%20an%20anonymous%20function%20has%20a%20name%20property%20whose%20value%0A%20%20%20%20is%20a%20String.%0A%0A%20%20%20%20Unless%20otherwise%20specified%2C%20the%20name%20property%20of%20a%20built-in%20Function%0A%20%20%20%20object%2C%20if%20it%20exists%2C%20has%20the%20attributes%20%7B%20%5B%5BWritable%5D%5D%3A%20false%2C%0A%20%20%20%20%5B%5BEnumerable%5D%5D%3A%20false%2C%20%5B%5BConfigurable%5D%5D%3A%20true%20%7D.%0Aincludes%3A%20%5BpropertyHelper.js%5D%0A---*%2F%0A%0AverifyProperty(JSON.parse%2C%20'name'%2C%20%7B%0A%20%20value%3A%20'parse'%2C%0A%20%20writable%3A%20false%2C%0A%20%20enumerable%3A%20false%2C%0A%20%20configurable%3A%20true%2C%0A%7D)%3B%0A%0A%20%20%20%20%20%20": "894c0317a9930f5802f5f347ed410fc06c138cceb876ae1dee2cae94f8d02788", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(C)%202019%20Alexey%20Shvayka.%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Aesid%3A%20sec-json.parse%0Adescription%3A%20%3E%0A%20%20Abrupt%20completion%20from%20Get%20and%20Call%20in%20ToPrimitive.%0Ainfo%3A%20%7C%0A%20%20JSON.parse%20(%20text%20%5B%20%2C%20reviver%20%5D%20)%0A%0A%20%201.%20Let%20JText%20be%20%3F%20ToString(text).%0A---*%2F%0A%0Aassert.throws(Test262Error%2C%20function()%20%7B%0A%20%20JSON.parse(%7B%0A%20%20%20%20toString%3A%20null%2C%0A%20%20%20%20get%20valueOf()%20%7B%0A%20%20%20%20%20%20throw%20new%20Test262Error()%3B%0A%20%20%20%20%7D%2C%0A%20%20%7D)%3B%0A%7D)%3B%0A%0Aassert.throws(Test262Error%2C%20function()%20%7B%0A%20%20JSON.parse(%7B%0A%20%20%20%20toString%3A%20function()%20%7B%0A%20%20%20%20%20%20throw%20new%20Test262Error()%3B%0A%20%20%20%20%7D%2C%0A%20%20%7D)%3B%0A%7D)%3B%0A%0A%20%20%20%20%20%20": "0f2750be71c874f1e0de65dad6470c154f34136035aec9e0dbee115561e3d1bf", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(C)%202019%20Alexey%20Shvayka.%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Aesid%3A%20sec-json.parse%0Adescription%3A%20%3E%0A%20%20Objects%20are%20coerced%20to%20strings%20using%20ToString.%0Ainfo%3A%20%7C%0A%20%20JSON.parse%20(%20text%20%5B%20%2C%20reviver%20%5D%20)%0A%0A%20%201.%20Let%20JText%20be%20%3F%20ToString(text).%0A%20%202.%20Parse%20JText%20interpreted%20as%20UTF-16%20encoded%20Unicode%20points%20(6.1.4)%20as%20a%20JSON%0A%20%20text%20as%20specified%20in%20ECMA-404.%20Throw%20a%20SyntaxError%20exception%20if%20JText%20is%20not%0A%20%20a%20valid%20JSON%20text%20as%20defined%20in%20that%20specification.%0A---*%2F%0A%0Avar%20hint%20%3D%20JSON.parse(%7B%0A%20%20toString%3A%20function()%20%7B%0A%20%20%20%20return%20'%22string%22'%3B%0A%20%20%7D%2C%0A%20%20valueOf%3A%20function()%20%7B%0A%20%20%20%20return%20'%22default_or_number%22'%3B%0A%20%20%7D%2C%0A%7D)%3B%0A%0Aassert.sameValue(hint%2C%20'string')%3B%0A%0A%20%20%20%20%20%20": "8f600f617e9bca99c403e57ada9de8522ca68f98b11c5a566c2640acaf3e247e", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(C)%202019%20Alexey%20Shvayka.%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Aesid%3A%20sec-json.parse%0Adescription%3A%20%3E%0A%20%20Primitive%20values%20are%20coerced%20to%20strings%20and%20parsed.%0Ainfo%3A%20%7C%0A%20%20JSON.parse%20(%20text%20%5B%20%2C%20reviver%20%5D%20)%0A%0A%20%201.%20Let%20JText%20be%20%3F%20ToString(text).%0A%20%202.%20Parse%20JText%20interpreted%20as%20UTF-16%20encoded%20Unicode%20points%20(6.1.4)%20as%20a%20JSON%0A%20%20text%20as%20specified%20in%20ECMA-404.%20Throw%20a%20SyntaxError%20exception%20if%20JText%20is%20not%0A%20%20a%20valid%20JSON%20text%20as%20defined%20in%20that%20specification.%0Afeatures%3A%20%5BSymbol%5D%0A---*%2F%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse()%3B%0A%7D)%3B%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse(undefined)%3B%0A%7D)%3B%0A%0Aassert.sameValue(JSON.parse(null)%2C%20null)%3B%0Aassert.sameValue(JSON.parse(false)%2C%20false)%3B%0Aassert.sameValue(JSON.parse(true)%2C%20true)%3B%0Aassert.sameValue(JSON.parse(0)%2C%200)%3B%0Aassert.sameValue(JSON.parse(3.14)%2C%203.14)%3B%0A%0Avar%20sym%20%3D%20Symbol('desc')%3B%0Aassert.throws(TypeError%2C%20function()%20%7B%0A%20%20JSON.parse(sym)%3B%0A%7D)%3B%0A%0A%20%20%20%20%20%20": "3802d0b1456ad02f9440d972ca31832c4db547e3aebba122830c7ff19ddb7a6a", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(C)%202019%20Alexey%20Shvayka.%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Aesid%3A%20sec-json.parse%0Adescription%3A%20%3E%0A%20%20Top-level%20negative%20zero%20surrounded%20by%20whitespace%20is%20parsed%20correctly.%0Ainfo%3A%20%7C%0A%20%20JSON.parse%20(%20text%20%5B%20%2C%20reviver%20%5D%20)%0A%0A%20%201.%20Let%20JText%20be%20%3F%20ToString(text).%0A%20%202.%20Parse%20JText%20interpreted%20as%20UTF-16%20encoded%20Unicode%20points%20(6.1.4)%20as%20a%20JSON%0A%20%20text%20as%20specified%20in%20ECMA-404.%20Throw%20a%20SyntaxError%20exception%20if%20JText%20is%20not%0A%20%20a%20valid%20JSON%20text%20as%20defined%20in%20that%20specification.%0A---*%2F%0A%0Aassert.sameValue(JSON.parse('-0')%2C%20-0)%3B%0Aassert.sameValue(JSON.parse('%20%5Cn-0')%2C%20-0)%3B%0Aassert.sameValue(JSON.parse('-0%20%20%5Ct')%2C%20-0)%3B%0Aassert.sameValue(JSON.parse('%5Cn%5Ct%20-0%5Cn%20%20%20')%2C%20-0)%3B%0A%0Aassert.sameValue(JSON.parse(-0)%2C%200)%3B%0A%0A%20%20%20%20%20%20": "ae3f832c06f8f017a7b3daa3af0735857b7cf8ec418e4ab3ee7938766a4a4ef7", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(C)%202020%20devsnek.%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aesid%3A%20sec-object-initializer-static-semantics-early-errors%0Adescription%3A%20%3E%0A%20%20It%20is%20a%20Syntax%20Error%20if%20PropertyNameList%20of%20PropertyDefinitionList%20contains%0A%20%20any%20duplicate%20entries%20for%20%22__proto__%22%20and%20at%20least%20two%20of%20those%20entries%20were%0A%20%20obtained%20from%20productions%20of%20the%20form%0A%20%20%20%20PropertyDefinition%20%3A%20PropertyName%20%60%3A%60%20AssignmentExpression%20.%0A%20%20This%20rule%20is%20not%20applied%20if%20this%20PropertyDefinition%20is%20contained%20within%20a%0A%20%20Script%20which%20is%20being%20evaluated%20for%20JSON.parse%20(see%20step%204%20of%20JSON.parse).%0A---*%2F%0A%0Avar%20result%20%3D%20JSON.parse('%7B%20%22__proto__%22%3A%201%2C%20%22__proto__%22%3A%202%20%7D')%3B%0A%0Aassert.sameValue(result.__proto__%2C%202)%3B%0A%0A%20%20%20%20%20%20": "2251939e23a8eb05a0c6034f5dac22f6d2fdee86cc0a5b94485b60838894ea13", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-0-1%0Adescription%3A%20The%20JSON%20lexical%20grammar%20treats%20whitespace%20as%20a%20token%20seperator%0A---*%2F%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('12%5Ct%5Cr%5Cn%2034')%3B%20%2F%2F%20should%20produce%20a%20syntax%20error%20as%20whitespace%20results%20in%20two%20tokens%0A%7D)%3B%0A%0A%20%20%20%20%20%20": "28a34d0b56c9365ffdae9a63c2abf197a7c7c357c7e30833e5bebc5411c89023", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-0-2%0Adescription%3A%20%3E%0A%20%20%20%20%3CVT%3E%20is%20not%20valid%20JSON%20whitespace%20as%20specified%20by%20the%20production%0A%20%20%20%20JSONWhitespace.%0A---*%2F%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cu000b1234')%3B%20%2F%2F%20should%20produce%20a%20syntax%20error%20%0A%7D)%3B%0A%0A%20%20%20%20%20%20": "85090948b6ce92a9c9609d8bef247aa3ed84504c349036c528be30836c22e21e", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-0-3%0Adescription%3A%20%3E%0A%20%20%20%20%3CFF%3E%20is%20not%20valid%20JSON%20whitespace%20as%20specified%20by%20the%20production%0A%20%20%20%20JSONWhitespace.%0A---*%2F%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cu000c1234')%3B%20%2F%2F%20should%20produce%20a%20syntax%20error%20%0A%7D)%3B%0A%0A%20%20%20%20%20%20": "fd5a66728a2948ec4cc1ac1437f02de886c8b9f8b1c8da2364b25df3d949ed1d", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-0-4%0Adescription%3A%20%3E%0A%20%20%20%20%3CNBSP%3E%20is%20not%20valid%20JSON%20whitespace%20as%20specified%20by%20the%20production%0A%20%20%20%20JSONWhitespace.%0A---*%2F%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cu00a01234')%3B%20%2F%2F%20should%20produce%20a%20syntax%20error%20%0A%7D)%3B%0A%0A%20%20%20%20%20%20": "6a0e854fb77607c2a61b819c23292d1973d009660e7c723dee0eb79e10910ba9", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-0-5%0Adescription%3A%20%3E%0A%20%20%20%20%3CZWSPP%3E%20is%20not%20valid%20JSON%20whitespace%20as%20specified%20by%20the%0A%20%20%20%20production%20JSONWhitespace.%0A---*%2F%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cu200b1234')%3B%20%2F%2F%20should%20produce%20a%20syntax%20error%20%0A%7D)%3B%0A%0A%20%20%20%20%20%20": "791da240718eace770f3467e80203a3c06a1809dc4bb7f4388a477e188503748", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-0-6%0Adescription%3A%20%3E%0A%20%20%20%20%3CBOM%3E%20is%20not%20valid%20JSON%20whitespace%20as%20specified%20by%20the%20production%0A%20%20%20%20JSONWhitespace.%0A---*%2F%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cufeff1234')%3B%20%2F%2F%20should%20produce%20a%20syntax%20error%20a%0A%7D)%3B%0A%0A%20%20%20%20%20%20": "e2d742e00a204a319ee479bb72eaf37d6b15bef11bef6b12760ac74d8e40df0d", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-0-8%0Adescription%3A%20%3E%0A%20%20%20%20U%2B2028%20and%20U%2B2029%20are%20not%20valid%20JSON%20whitespace%20as%20specified%20by%0A%20%20%20%20the%20production%20JSONWhitespace.%0A---*%2F%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cu2028%5Cu20291234')%3B%20%2F%2F%20should%20produce%20a%20syntax%20error%20%0A%7D)%3B%0A%0A%20%20%20%20%20%20": "9d08b372c1504745ec7673bcc76ca9ada20565722799660e529f65e87fbf0f4c", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-0-9%0Adescription%3A%20Whitespace%20characters%20can%20appear%20before%2Fafter%20any%20JSONtoken%0A---*%2F%0A%0AJSON.parse('%5Ct%5Cr%20%5Cn%7B%5Ct%5Cr%20%5Cn'%20%2B%0A%20%20'%22property%22%5Ct%5Cr%20%5Cn%3A%5Ct%5Cr%20%5Cn%7B%5Ct%5Cr%20%5Cn%7D%5Ct%5Cr%20%5Cn%2C%5Ct%5Cr%20%5Cn'%20%2B%0A%20%20'%22prop2%22%5Ct%5Cr%20%5Cn%3A%5Ct%5Cr%20%5Cn'%20%2B%0A%20%20'%5B%5Ct%5Cr%20%5Cntrue%5Ct%5Cr%20%5Cn%2C%5Ct%5Cr%20%5Cnnull%5Ct%5Cr%20%5Cn%2C123.456%5Ct%5Cr%20%5Cn%5D'%20%2B%0A%20%20'%5Ct%5Cr%20%5Cn%7D%5Ct%5Cr%20%5Cn')%3B%20%2F%2F%20should%20JOSN%20parse%20without%20error%0A%0A%20%20%20%20%20%20": "0243c371af3e8d6774210c9e436c907955e9ba532b6cfdc0daede37e2d408856", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g1-1%0Adescription%3A%20The%20JSON%20lexical%20grammar%20treats%20%3CTAB%3E%20as%20a%20whitespace%20character%0A---*%2F%0A%0Aassert.sameValue(JSON.parse('%5Ct1234')%2C%201234%2C%20'%3CTAB%3E%20should%20be%20ignored')%3B%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20%20%20JSON.parse('12%5Ct34')%3B%0A%7D%2C%20'%3CTAB%3E%20should%20produce%20a%20syntax%20error%20as%20whitespace%20results%20in%20two%20tokens')%3B%0A%0A%20%20%20%20%20%20": "b49b2d3528c33b31ce383ee4f16bf5720b5f3f128d8f201cf78d51e9cf4deb8d", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g1-2%0Adescription%3A%20The%20JSON%20lexical%20grammar%20treats%20%3CCR%3E%20as%20a%20whitespace%20character%0A---*%2F%0A%0Aassert.sameValue(JSON.parse('%5Cr1234')%2C%201234%2C%20'%3Ccr%3E%20should%20be%20ignored')%3B%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20%20%20JSON.parse('12%5Cr34')%3B%0A%7D%2C%20'%3CCR%3E%20should%20produce%20a%20syntax%20error%20as%20whitespace%20results%20in%20two%20tokens')%3B%0A%0A%20%20%20%20%20%20": "e94069b7366c1b9f743041d182c8257f1ee75f948e9072ca8a3b6028998f97c8", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g1-3%0Adescription%3A%20The%20JSON%20lexical%20grammar%20treats%20%3CLF%3E%20as%20a%20whitespace%20character%0A---*%2F%0A%0Aassert.sameValue(JSON.parse('%5Cn1234')%2C%201234%2C%20'%3CLF%3E%20should%20be%20ignored')%3B%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20%20%20JSON.parse('12%5Cn34')%3B%0A%7D%2C%20'%3CLF%3E%20should%20produce%20a%20syntax%20error%20as%20whitespace%20results%20in%20two%20tokens')%3B%0A%0A%20%20%20%20%20%20": "584c4462764e9eb323a487491fad3ecf8b282099d702094b680da4539409907d", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g1-4%0Adescription%3A%20The%20JSON%20lexical%20grammar%20treats%20%3CSP%3E%20as%20a%20whitespace%20character%0A---*%2F%0A%0Aassert.sameValue(JSON.parse('%201234')%2C%201234%2C%20'%3CSP%3E%20should%20be%20ignored')%3B%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20%20%20JSON.parse('12%2034')%3B%0A%7D%2C%20'%3CSP%3E%20should%20produce%20a%20syntax%20error%20as%20whitespace%20results%20in%20two%20tokens')%3B%0A%0A%20%20%20%20%20%20": "bc83c46875940353b2985e1e3d192b70eaebc6215251160a89f12618a9cfa7d3", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g2-1%0Adescription%3A%20JSONStrings%20can%20be%20written%20using%20double%20quotes%0A---*%2F%0A%0Aassert.sameValue(JSON.parse('%22abc%22')%2C%20%22abc%22%2C%20'JSON.parse(%5C'%22abc%22%5C')')%3B%0A%0A%20%20%20%20%20%20": "f27e268bf24bb063bc62c3d3c900fdc1a17a2f5873af6db5992e3b5e2ac5a823", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g2-2%0Adescription%3A%20A%20JSONString%20may%20not%20be%20delimited%20by%20single%20quotes%0A---*%2F%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse(%22'abc'%22)%3B%0A%7D)%3B%0A%0A%20%20%20%20%20%20": "71c38409848a1e640e20b7b33b023f32a01c2cbeec48ef6aeadd55caa924968c", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g2-3%0Adescription%3A%20A%20JSONString%20may%20not%20be%20delimited%20by%20Uncode%20escaped%20quotes%0A---*%2F%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse(%22%5C%5Cu0022abc%5C%5Cu0022%22)%3B%0A%7D)%3B%0A%0A%20%20%20%20%20%20": "5ff0486870ed5a9ceaa9dda6a2214881f5327a2e2c496b96a9407c92e6417f7f", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g2-4%0Adescription%3A%20A%20JSONString%20must%20both%20begin%20and%20end%20with%20double%20quotes%0A---*%2F%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%22ab'%2B%22c'%22)%3B%0A%7D)%3B%0A%0A%20%20%20%20%20%20": "63696ee7460b707e32a1ce1bd4b669191a98de279b16a643b86092023f230b49", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g2-5%0Adescription%3A%20%3E%0A%20%20%20%20A%20JSONStrings%20can%20contain%20no%20JSONStringCharacters%20(Empty%0A%20%20%20%20JSONStrings)%0A---*%2F%0A%0Aassert.sameValue(JSON.parse('%22%22')%2C%20%22%22%2C%20'JSON.parse(%5C'%22%22%5C')')%3B%0A%0A%20%20%20%20%20%20": "f117c3ea5636119c446f249c80a049e3fd454e56919193218d0f02484493e6ac", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g4-1%0Adescription%3A%20%3E%0A%20%20%20%20The%20JSON%20lexical%20grammar%20does%20not%20allow%20a%20JSONStringCharacter%20to%0A%20%20%20%20be%20any%20of%20the%20Unicode%20characters%20U%2B0000%20thru%20U%2B0007%0A---*%2F%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20%20%20JSON.parse('%22%5Cu0000%5Cu0001%5Cu0002%5Cu0003%5Cu0004%5Cu0005%5Cu0006%5Cu0007%22')%3B%20%2F%2F%20invalid%20string%20characters%20should%20produce%20a%20syntax%20error%0A%7D)%3B%0A%0A%20%20%20%20%20%20": "ebd2fe00d6e3fc381925a1f2078286d4c71c8dbb871e6130ce0172e266155e3b", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g4-2%0Adescription%3A%20%3E%0A%20%20%20%20The%20JSON%20lexical%20grammar%20does%20not%20allow%20a%20JSONStringCharacter%20to%0A%20%20%20%20be%20any%20of%20the%20Unicode%20characters%20U%2B0008%20thru%20U%2B000F%0A---*%2F%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20%20%20JSON.parse('%22%5Cu0008%5Cu0009%5Cu000a%5Cu000b%5Cu000c%5Cu000d%5Cu000e%5Cu000f%22')%3B%20%2F%2F%20invalid%20string%20characters%20should%20produce%20a%20syntax%20error%0A%7D)%3B%0A%0A%20%20%20%20%20%20": "a0657606fc24913d30fbba062a00149f3729829714fab24f9c9f2f29ecec5bf8", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g4-3%0Adescription%3A%20%3E%0A%20%20%20%20The%20JSON%20lexical%20grammar%20does%20not%20allow%20a%20JSONStringCharacter%20to%0A%20%20%20%20be%20any%20of%20the%20Unicode%20characters%20U%2B0010%20thru%20U%2B0017%0A---*%2F%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20%20%20JSON.parse('%22%5Cu0010%5Cu0011%5Cu0012%5Cu0013%5Cu0014%5Cu0015%5Cu0016%5Cu0017%22')%3B%20%2F%2F%20invalid%20string%20characters%20should%20produce%20a%20syntax%20error%0A%7D)%3B%0A%0A%20%20%20%20%20%20": "a3662f4105c3b5ad4500559b06480f41bc429e25e6a8203bdc9735bd6a4b2d17", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g4-4%0Adescription%3A%20%3E%0A%20%20%20%20The%20JSON%20lexical%20grammar%20does%20not%20allow%20a%20JSONStringCharacter%20to%0A%20%20%20%20be%20any%20of%20the%20Unicode%20characters%20U%2B0018%20thru%20U%2B001F%0A---*%2F%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20%20%20JSON.parse('%22%5Cu0018%5Cu0019%5Cu001a%5Cu001b%5Cu001c%5Cu001d%5Cu001e%5Cu001f%22')%3B%20%2F%2F%20invalid%20string%20characters%20should%20produce%20a%20syntax%20error%0A%7D)%3B%0A%0A%20%20%20%20%20%20": "ef58b2498e1faa9ead07c31ed79039575a99052beb2d4f8e840d3e84b5537ae3", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g5-1%0Adescription%3A%20%3E%0A%20%20%20%20The%20JSON%20lexical%20grammar%20allows%20Unicode%20escape%20sequences%20in%20a%0A%20%20%20%20JSONString%0A---*%2F%0A%0Aassert.sameValue(JSON.parse('%22%5C%5Cu0058%22')%2C%20'X'%2C%20'JSON.parse(%5C'%22%5C%5Cu0058%22%5C')')%3B%0A%0A%20%20%20%20%20%20": "0cb9c7975ea073f708441756aaa07dec094e0675bd854e59da863b33dd5963b5", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g5-2%0Adescription%3A%20%3E%0A%20%20%20%20A%20JSONStringCharacter%20UnicodeEscape%20may%20not%20have%20fewer%20than%204%20hex%0A%20%20%20%20characters%0A---*%2F%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20%20%20%20%20%20%20JSON.parse('%22%5C%5Cu005%22')%20%0A%7D)%3B%0A%0A%20%20%20%20%20%20": "33e14233ec07cb99da927086598b5e5f5e459015191d3f4d0a3b13bc07a6efd2", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g5-3%0Adescription%3A%20%3E%0A%20%20%20%20A%20JSONStringCharacter%20UnicodeEscape%20may%20not%20include%20any%20non%3Dhex%0A%20%20%20%20characters%0A---*%2F%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20%20%20%20%20%20%20JSON.parse('%22%5C%5Cu0X50%22')%20%0A%7D)%3B%0A%0A%20%20%20%20%20%20": "0aeebb5d7d8075aaf810832f1570b7501d3dd1cadf5b7be0f995e09b5c1aa42f", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g6-1%0Adescription%3A%20%3E%0A%20%20%20%20The%20JSON%20lexical%20grammer%20allows%20'%2F'%20as%20a%20JSONEscapeCharacter%20after%0A%20%20%20%20''%20in%20a%20JSONString%0A---*%2F%0A%0Aassert.sameValue(JSON.parse('%22%5C%5C%2F%22')%2C%20'%2F'%2C%20'JSON.parse(%5C'%22%5C%5C%2F%22%5C')')%3B%0A%0A%20%20%20%20%20%20": "fba805a4f4d84591376e36d035103878e1f69d5b0489d0f2a34e52fdbf45a3c5", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g6-2%0Adescription%3A%20%3E%0A%20%20%20%20The%20JSON%20lexical%20grammer%20allows%20''%20as%20a%20JSONEscapeCharacter%20after%0A%20%20%20%20''%20in%20a%20JSONString%0A---*%2F%0A%0Aassert.sameValue(JSON.parse('%22%5C%5C%5C%5C%22')%2C%20'%5C%5C'%2C%20'JSON.parse(%5C'%22%5C%5C%5C%5C%22%5C')')%3B%0A%0A%20%20%20%20%20%20": "91eb74a0d1cd064e6e354330d86cfa75373d3cb749207e99a47d950f49b23c85", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g6-3%0Adescription%3A%20%3E%0A%20%20%20%20The%20JSON%20lexical%20grammer%20allows%20'b'%20as%20a%20JSONEscapeCharacter%20after%0A%20%20%20%20''%20in%20a%20JSONString%0A---*%2F%0A%0Aassert.sameValue(JSON.parse('%22%5C%5Cb%22')%2C%20'%5Cb'%2C%20'JSON.parse(%5C'%22%5C%5Cb%22%5C')')%3B%0A%0A%20%20%20%20%20%20": "35c52e68b507866d719d12f3ffa55f06e2470596e26480ec82d100170bd9b5d1", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g6-4%0Adescription%3A%20%3E%0A%20%20%20%20The%20JSON%20lexical%20grammer%20allows%20'f'%20as%20a%20JSONEscapeCharacter%20after%0A%20%20%20%20''%20in%20a%20JSONString%0A---*%2F%0A%0Aassert.sameValue(JSON.parse('%22%5C%5Cf%22')%2C%20'%5Cf'%2C%20'JSON.parse(%5C'%22%5C%5Cf%22%5C')')%3B%0A%0A%20%20%20%20%20%20": "e34ff869921017eb9d8a16dcd63722d897d4f6aa3e4d7d45c5891be29d116b2f", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g6-5%0Adescription%3A%20%3E%0A%20%20%20%20The%20JSON%20lexical%20grammer%20allows%20'n'%20as%20a%20JSONEscapeCharacter%20after%0A%20%20%20%20''%20in%20a%20JSONString%0A---*%2F%0A%0Aassert.sameValue(JSON.parse('%22%5C%5Cn%22')%2C%20'%5Cn'%2C%20'JSON.parse(%5C'%22%5C%5Cn%22%5C')')%3B%0A%0A%20%20%20%20%20%20": "ae25d7b696a247a1402a78323a9801b0ae97926fe2c5b48336669a4e1977983f", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g6-6%0Adescription%3A%20%3E%0A%20%20%20%20The%20JSON%20lexical%20grammer%20allows%20'r'%20as%20a%20JSONEscapeCharacter%20after%0A%20%20%20%20''%20in%20a%20JSONString%0A---*%2F%0A%0Aassert.sameValue(JSON.parse('%22%5C%5Cr%22')%2C%20'%5Cr'%2C%20'JSON.parse(%5C'%22%5C%5Cr%22%5C')')%3B%0A%0A%20%20%20%20%20%20": "79ed6b44012eaf3b41b659eb743c34710dc4c256f5fb079d0baca2b341d8f81d", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.1.1-g6-7%0Adescription%3A%20%3E%0A%20%20%20%20The%20JSON%20lexical%20grammer%20allows%20't'%20as%20a%20JSONEscapeCharacter%20after%0A%20%20%20%20''%20in%20a%20JSONString%0A---*%2F%0A%0Aassert.sameValue(JSON.parse('%22%5C%5Ct%22')%2C%20'%5Ct'%2C%20'JSON.parse(%5C'%22%5C%5Ct%22%5C')')%3B%0A%0A%20%20%20%20%20%20": "85374ffed10611449d85b5d0694674cb91d727cc4c2e1101b9148b9dad30154a", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.2-2-1%0Adescription%3A%20%3E%0A%20%20%20%20JSON.parse%20-%20parsing%20an%20object%20where%20property%20name%20is%20a%20null%0A%20%20%20%20character%0A---*%2F%0A%0Avar%20nullChars%20%3D%20new%20Array()%3B%0AnullChars%5B0%5D%20%3D%20'%5C%22%5Cu0000%5C%22'%3B%0AnullChars%5B1%5D%20%3D%20'%5C%22%5Cu0001%5C%22'%3B%0AnullChars%5B2%5D%20%3D%20'%5C%22%5Cu0002%5C%22'%3B%0AnullChars%5B3%5D%20%3D%20'%5C%22%5Cu0003%5C%22'%3B%0AnullChars%5B4%5D%20%3D%20'%5C%22%5Cu0004%5C%22'%3B%0AnullChars%5B5%5D%20%3D%20'%5C%22%5Cu0005%5C%22'%3B%0AnullChars%5B6%5D%20%3D%20'%5C%22%5Cu0006%5C%22'%3B%0AnullChars%5B7%5D%20%3D%20'%5C%22%5Cu0007%5C%22'%3B%0AnullChars%5B8%5D%20%3D%20'%5C%22%5Cu0008%5C%22'%3B%0AnullChars%5B9%5D%20%3D%20'%5C%22%5Cu0009%5C%22'%3B%0AnullChars%5B10%5D%20%3D%20'%5C%22%5Cu000A%5C%22'%3B%0AnullChars%5B11%5D%20%3D%20'%5C%22%5Cu000B%5C%22'%3B%0AnullChars%5B12%5D%20%3D%20'%5C%22%5Cu000C%5C%22'%3B%0AnullChars%5B13%5D%20%3D%20'%5C%22%5Cu000D%5C%22'%3B%0AnullChars%5B14%5D%20%3D%20'%5C%22%5Cu000E%5C%22'%3B%0AnullChars%5B15%5D%20%3D%20'%5C%22%5Cu000F%5C%22'%3B%0AnullChars%5B16%5D%20%3D%20'%5C%22%5Cu0010%5C%22'%3B%0AnullChars%5B17%5D%20%3D%20'%5C%22%5Cu0011%5C%22'%3B%0AnullChars%5B18%5D%20%3D%20'%5C%22%5Cu0012%5C%22'%3B%0AnullChars%5B19%5D%20%3D%20'%5C%22%5Cu0013%5C%22'%3B%0AnullChars%5B20%5D%20%3D%20'%5C%22%5Cu0014%5C%22'%3B%0AnullChars%5B21%5D%20%3D%20'%5C%22%5Cu0015%5C%22'%3B%0AnullChars%5B22%5D%20%3D%20'%5C%22%5Cu0016%5C%22'%3B%0AnullChars%5B23%5D%20%3D%20'%5C%22%5Cu0017%5C%22'%3B%0AnullChars%5B24%5D%20%3D%20'%5C%22%5Cu0018%5C%22'%3B%0AnullChars%5B25%5D%20%3D%20'%5C%22%5Cu0019%5C%22'%3B%0AnullChars%5B26%5D%20%3D%20'%5C%22%5Cu001A%5C%22'%3B%0AnullChars%5B27%5D%20%3D%20'%5C%22%5Cu001B%5C%22'%3B%0AnullChars%5B28%5D%20%3D%20'%5C%22%5Cu001C%5C%22'%3B%0AnullChars%5B29%5D%20%3D%20'%5C%22%5Cu001D%5C%22'%3B%0AnullChars%5B30%5D%20%3D%20'%5C%22%5Cu001E%5C%22'%3B%0AnullChars%5B31%5D%20%3D%20'%5C%22%5Cu001F%5C%22'%3B%0A%0Afor%20(var%20index%20in%20nullChars)%20%7B%0A%20%20assert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20%20%20var%20obj%20%3D%20JSON.parse('%7B%20'%20%2B%20nullChars%5Bindex%5D%20%2B%20'%20%3A%20%22John%22%20%7D%20')%3B%0A%20%20%7D)%3B%0A%7D%0A%0A%20%20%20%20%20%20": "d01a3d9faacdbd2fcd057756355a24c370df8f020f1f1032c332f3b9ad07c725", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.2-2-10%0Adescription%3A%20%3E%0A%20%20%20%20JSON.parse%20-%20parsing%20an%20object%20where%20property%20value%20middles%20with%20a%0A%20%20%20%20null%20character%0A---*%2F%0A%0Avar%20nullChars%20%3D%20new%20Array()%3B%0AnullChars%5B0%5D%20%3D%20'%5C%22%5Cu0000%5C%22'%3B%0AnullChars%5B1%5D%20%3D%20'%5C%22%5Cu0001%5C%22'%3B%0AnullChars%5B2%5D%20%3D%20'%5C%22%5Cu0002%5C%22'%3B%0AnullChars%5B3%5D%20%3D%20'%5C%22%5Cu0003%5C%22'%3B%0AnullChars%5B4%5D%20%3D%20'%5C%22%5Cu0004%5C%22'%3B%0AnullChars%5B5%5D%20%3D%20'%5C%22%5Cu0005%5C%22'%3B%0AnullChars%5B6%5D%20%3D%20'%5C%22%5Cu0006%5C%22'%3B%0AnullChars%5B7%5D%20%3D%20'%5C%22%5Cu0007%5C%22'%3B%0AnullChars%5B8%5D%20%3D%20'%5C%22%5Cu0008%5C%22'%3B%0AnullChars%5B9%5D%20%3D%20'%5C%22%5Cu0009%5C%22'%3B%0AnullChars%5B10%5D%20%3D%20'%5C%22%5Cu000A%5C%22'%3B%0AnullChars%5B11%5D%20%3D%20'%5C%22%5Cu000B%5C%22'%3B%0AnullChars%5B12%5D%20%3D%20'%5C%22%5Cu000C%5C%22'%3B%0AnullChars%5B13%5D%20%3D%20'%5C%22%5Cu000D%5C%22'%3B%0AnullChars%5B14%5D%20%3D%20'%5C%22%5Cu000E%5C%22'%3B%0AnullChars%5B15%5D%20%3D%20'%5C%22%5Cu000F%5C%22'%3B%0AnullChars%5B16%5D%20%3D%20'%5C%22%5Cu0010%5C%22'%3B%0AnullChars%5B17%5D%20%3D%20'%5C%22%5Cu0011%5C%22'%3B%0AnullChars%5B18%5D%20%3D%20'%5C%22%5Cu0012%5C%22'%3B%0AnullChars%5B19%5D%20%3D%20'%5C%22%5Cu0013%5C%22'%3B%0AnullChars%5B20%5D%20%3D%20'%5C%22%5Cu0014%5C%22'%3B%0AnullChars%5B21%5D%20%3D%20'%5C%22%5Cu0015%5C%22'%3B%0AnullChars%5B22%5D%20%3D%20'%5C%22%5Cu0016%5C%22'%3B%0AnullChars%5B23%5D%20%3D%20'%5C%22%5Cu0017%5C%22'%3B%0AnullChars%5B24%5D%20%3D%20'%5C%22%5Cu0018%5C%22'%3B%0AnullChars%5B25%5D%20%3D%20'%5C%22%5Cu0019%5C%22'%3B%0AnullChars%5B26%5D%20%3D%20'%5C%22%5Cu001A%5C%22'%3B%0AnullChars%5B27%5D%20%3D%20'%5C%22%5Cu001B%5C%22'%3B%0AnullChars%5B28%5D%20%3D%20'%5C%22%5Cu001C%5C%22'%3B%0AnullChars%5B29%5D%20%3D%20'%5C%22%5Cu001D%5C%22'%3B%0AnullChars%5B30%5D%20%3D%20'%5C%22%5Cu001E%5C%22'%3B%0AnullChars%5B31%5D%20%3D%20'%5C%22%5Cu001F%5C%22'%3B%0A%0Afor%20(var%20index%20in%20nullChars)%20%7B%0A%20%20assert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20%20%20var%20obj%20%3D%20JSON.parse('%7B%20%22name%22%20%3A%20'%20%2B%20%22Jo%22%20%2B%20nullChars%5Bindex%5D%20%2B%20%22hn%22%20%2B%20'%20%7D%20')%3B%0A%20%20%7D)%3B%0A%7D%0A%0A%20%20%20%20%20%20": "ac90d44d68b7b9fd188a85e7047c4de688f5feecc724a272a8b4ca1203fa33e1", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.2-2-2%0Adescription%3A%20%3E%0A%20%20%20%20JSON.parse%20-%20parsing%20an%20object%20where%20property%20name%20starts%20with%20a%0A%20%20%20%20null%20character%0A---*%2F%0A%0Avar%20nullChars%20%3D%20new%20Array()%3B%0AnullChars%5B0%5D%20%3D%20'%5C%22%5Cu0000%5C%22'%3B%0AnullChars%5B1%5D%20%3D%20'%5C%22%5Cu0001%5C%22'%3B%0AnullChars%5B2%5D%20%3D%20'%5C%22%5Cu0002%5C%22'%3B%0AnullChars%5B3%5D%20%3D%20'%5C%22%5Cu0003%5C%22'%3B%0AnullChars%5B4%5D%20%3D%20'%5C%22%5Cu0004%5C%22'%3B%0AnullChars%5B5%5D%20%3D%20'%5C%22%5Cu0005%5C%22'%3B%0AnullChars%5B6%5D%20%3D%20'%5C%22%5Cu0006%5C%22'%3B%0AnullChars%5B7%5D%20%3D%20'%5C%22%5Cu0007%5C%22'%3B%0AnullChars%5B8%5D%20%3D%20'%5C%22%5Cu0008%5C%22'%3B%0AnullChars%5B9%5D%20%3D%20'%5C%22%5Cu0009%5C%22'%3B%0AnullChars%5B10%5D%20%3D%20'%5C%22%5Cu000A%5C%22'%3B%0AnullChars%5B11%5D%20%3D%20'%5C%22%5Cu000B%5C%22'%3B%0AnullChars%5B12%5D%20%3D%20'%5C%22%5Cu000C%5C%22'%3B%0AnullChars%5B13%5D%20%3D%20'%5C%22%5Cu000D%5C%22'%3B%0AnullChars%5B14%5D%20%3D%20'%5C%22%5Cu000E%5C%22'%3B%0AnullChars%5B15%5D%20%3D%20'%5C%22%5Cu000F%5C%22'%3B%0AnullChars%5B16%5D%20%3D%20'%5C%22%5Cu0010%5C%22'%3B%0AnullChars%5B17%5D%20%3D%20'%5C%22%5Cu0011%5C%22'%3B%0AnullChars%5B18%5D%20%3D%20'%5C%22%5Cu0012%5C%22'%3B%0AnullChars%5B19%5D%20%3D%20'%5C%22%5Cu0013%5C%22'%3B%0AnullChars%5B20%5D%20%3D%20'%5C%22%5Cu0014%5C%22'%3B%0AnullChars%5B21%5D%20%3D%20'%5C%22%5Cu0015%5C%22'%3B%0AnullChars%5B22%5D%20%3D%20'%5C%22%5Cu0016%5C%22'%3B%0AnullChars%5B23%5D%20%3D%20'%5C%22%5Cu0017%5C%22'%3B%0AnullChars%5B24%5D%20%3D%20'%5C%22%5Cu0018%5C%22'%3B%0AnullChars%5B25%5D%20%3D%20'%5C%22%5Cu0019%5C%22'%3B%0AnullChars%5B26%5D%20%3D%20'%5C%22%5Cu001A%5C%22'%3B%0AnullChars%5B27%5D%20%3D%20'%5C%22%5Cu001B%5C%22'%3B%0AnullChars%5B28%5D%20%3D%20'%5C%22%5Cu001C%5C%22'%3B%0AnullChars%5B29%5D%20%3D%20'%5C%22%5Cu001D%5C%22'%3B%0AnullChars%5B30%5D%20%3D%20'%5C%22%5Cu001E%5C%22'%3B%0AnullChars%5B31%5D%20%3D%20'%5C%22%5Cu001F%5C%22'%3B%0A%0Afor%20(var%20index%20in%20nullChars)%20%7B%0A%20%20assert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20%20%20var%20obj%20%3D%20JSON.parse('%7B%20'%20%2B%20nullChars%5Bindex%5D%20%2B%20%22name%22%20%2B%20'%20%3A%20%22John%22%20%7D%20')%3B%0A%20%20%7D)%3B%0A%7D%0A%0A%20%20%20%20%20%20": "86d46133f2f43d5ea13428a40d36b7cc4741d41444a8a2f8cce077911556004b", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.2-2-3%0Adescription%3A%20%3E%0A%20%20%20%20JSON.parse%20-%20parsing%20an%20object%20where%20property%20name%20ends%20with%20a%0A%20%20%20%20null%20character%0A---*%2F%0A%0Avar%20nullChars%20%3D%20new%20Array()%3B%0AnullChars%5B0%5D%20%3D%20'%5C%22%5Cu0000%5C%22'%3B%0AnullChars%5B1%5D%20%3D%20'%5C%22%5Cu0001%5C%22'%3B%0AnullChars%5B2%5D%20%3D%20'%5C%22%5Cu0002%5C%22'%3B%0AnullChars%5B3%5D%20%3D%20'%5C%22%5Cu0003%5C%22'%3B%0AnullChars%5B4%5D%20%3D%20'%5C%22%5Cu0004%5C%22'%3B%0AnullChars%5B5%5D%20%3D%20'%5C%22%5Cu0005%5C%22'%3B%0AnullChars%5B6%5D%20%3D%20'%5C%22%5Cu0006%5C%22'%3B%0AnullChars%5B7%5D%20%3D%20'%5C%22%5Cu0007%5C%22'%3B%0AnullChars%5B8%5D%20%3D%20'%5C%22%5Cu0008%5C%22'%3B%0AnullChars%5B9%5D%20%3D%20'%5C%22%5Cu0009%5C%22'%3B%0AnullChars%5B10%5D%20%3D%20'%5C%22%5Cu000A%5C%22'%3B%0AnullChars%5B11%5D%20%3D%20'%5C%22%5Cu000B%5C%22'%3B%0AnullChars%5B12%5D%20%3D%20'%5C%22%5Cu000C%5C%22'%3B%0AnullChars%5B13%5D%20%3D%20'%5C%22%5Cu000D%5C%22'%3B%0AnullChars%5B14%5D%20%3D%20'%5C%22%5Cu000E%5C%22'%3B%0AnullChars%5B15%5D%20%3D%20'%5C%22%5Cu000F%5C%22'%3B%0AnullChars%5B16%5D%20%3D%20'%5C%22%5Cu0010%5C%22'%3B%0AnullChars%5B17%5D%20%3D%20'%5C%22%5Cu0011%5C%22'%3B%0AnullChars%5B18%5D%20%3D%20'%5C%22%5Cu0012%5C%22'%3B%0AnullChars%5B19%5D%20%3D%20'%5C%22%5Cu0013%5C%22'%3B%0AnullChars%5B20%5D%20%3D%20'%5C%22%5Cu0014%5C%22'%3B%0AnullChars%5B21%5D%20%3D%20'%5C%22%5Cu0015%5C%22'%3B%0AnullChars%5B22%5D%20%3D%20'%5C%22%5Cu0016%5C%22'%3B%0AnullChars%5B23%5D%20%3D%20'%5C%22%5Cu0017%5C%22'%3B%0AnullChars%5B24%5D%20%3D%20'%5C%22%5Cu0018%5C%22'%3B%0AnullChars%5B25%5D%20%3D%20'%5C%22%5Cu0019%5C%22'%3B%0AnullChars%5B26%5D%20%3D%20'%5C%22%5Cu001A%5C%22'%3B%0AnullChars%5B27%5D%20%3D%20'%5C%22%5Cu001B%5C%22'%3B%0AnullChars%5B28%5D%20%3D%20'%5C%22%5Cu001C%5C%22'%3B%0AnullChars%5B29%5D%20%3D%20'%5C%22%5Cu001D%5C%22'%3B%0AnullChars%5B30%5D%20%3D%20'%5C%22%5Cu001E%5C%22'%3B%0AnullChars%5B31%5D%20%3D%20'%5C%22%5Cu001F%5C%22'%3B%0A%0Afor%20(var%20index%20in%20nullChars)%20%7B%0A%20%20assert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20%20%20var%20obj%20%3D%20JSON.parse('%7B'%20%2B%20%22name%22%20%2B%20nullChars%5Bindex%5D%20%2B%20'%20%3A%20%22John%22%20%7D%20')%3B%0A%20%20%7D)%3B%0A%7D%0A%0A%20%20%20%20%20%20": "a6c16c6d4b1377ca49ef8e578133c391c4de57869ec0bd267cc5c5a0943e402b", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.2-2-4%0Adescription%3A%20%3E%0A%20%20%20%20JSON.parse%20-%20parsing%20an%20object%20where%20property%20name%20starts%20and%20ends%0A%20%20%20%20with%20a%20null%20character%0A---*%2F%0A%0Avar%20nullChars%20%3D%20new%20Array()%3B%0AnullChars%5B0%5D%20%3D%20'%5C%22%5Cu0000%5C%22'%3B%0AnullChars%5B1%5D%20%3D%20'%5C%22%5Cu0001%5C%22'%3B%0AnullChars%5B2%5D%20%3D%20'%5C%22%5Cu0002%5C%22'%3B%0AnullChars%5B3%5D%20%3D%20'%5C%22%5Cu0003%5C%22'%3B%0AnullChars%5B4%5D%20%3D%20'%5C%22%5Cu0004%5C%22'%3B%0AnullChars%5B5%5D%20%3D%20'%5C%22%5Cu0005%5C%22'%3B%0AnullChars%5B6%5D%20%3D%20'%5C%22%5Cu0006%5C%22'%3B%0AnullChars%5B7%5D%20%3D%20'%5C%22%5Cu0007%5C%22'%3B%0AnullChars%5B8%5D%20%3D%20'%5C%22%5Cu0008%5C%22'%3B%0AnullChars%5B9%5D%20%3D%20'%5C%22%5Cu0009%5C%22'%3B%0AnullChars%5B10%5D%20%3D%20'%5C%22%5Cu000A%5C%22'%3B%0AnullChars%5B11%5D%20%3D%20'%5C%22%5Cu000B%5C%22'%3B%0AnullChars%5B12%5D%20%3D%20'%5C%22%5Cu000C%5C%22'%3B%0AnullChars%5B13%5D%20%3D%20'%5C%22%5Cu000D%5C%22'%3B%0AnullChars%5B14%5D%20%3D%20'%5C%22%5Cu000E%5C%22'%3B%0AnullChars%5B15%5D%20%3D%20'%5C%22%5Cu000F%5C%22'%3B%0AnullChars%5B16%5D%20%3D%20'%5C%22%5Cu0010%5C%22'%3B%0AnullChars%5B17%5D%20%3D%20'%5C%22%5Cu0011%5C%22'%3B%0AnullChars%5B18%5D%20%3D%20'%5C%22%5Cu0012%5C%22'%3B%0AnullChars%5B19%5D%20%3D%20'%5C%22%5Cu0013%5C%22'%3B%0AnullChars%5B20%5D%20%3D%20'%5C%22%5Cu0014%5C%22'%3B%0AnullChars%5B21%5D%20%3D%20'%5C%22%5Cu0015%5C%22'%3B%0AnullChars%5B22%5D%20%3D%20'%5C%22%5Cu0016%5C%22'%3B%0AnullChars%5B23%5D%20%3D%20'%5C%22%5Cu0017%5C%22'%3B%0AnullChars%5B24%5D%20%3D%20'%5C%22%5Cu0018%5C%22'%3B%0AnullChars%5B25%5D%20%3D%20'%5C%22%5Cu0019%5C%22'%3B%0AnullChars%5B26%5D%20%3D%20'%5C%22%5Cu001A%5C%22'%3B%0AnullChars%5B27%5D%20%3D%20'%5C%22%5Cu001B%5C%22'%3B%0AnullChars%5B28%5D%20%3D%20'%5C%22%5Cu001C%5C%22'%3B%0AnullChars%5B29%5D%20%3D%20'%5C%22%5Cu001D%5C%22'%3B%0AnullChars%5B30%5D%20%3D%20'%5C%22%5Cu001E%5C%22'%3B%0AnullChars%5B31%5D%20%3D%20'%5C%22%5Cu001F%5C%22'%3B%0A%0Afor%20(var%20index%20in%20nullChars)%20%7B%0A%20%20assert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20%20%20var%20obj%20%3D%20JSON.parse('%7B'%20%2B%20nullChars%5Bindex%5D%20%2B%20%22name%22%20%2B%20nullChars%5Bindex%5D%20%2B%20'%20%3A%20%22John%22%20%7D%20')%3B%0A%20%20%7D)%3B%0A%7D%0A%0A%20%20%20%20%20%20": "980f2bfdc8b96f2bee3703e62e93af53de1a1c4a238a91d2741740dd0934e3a5", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.2-2-5%0Adescription%3A%20%3E%0A%20%20%20%20JSON.parse%20-%20parsing%20an%20object%20where%20property%20name%20middles%20with%20a%0A%20%20%20%20null%20character%0A---*%2F%0A%0Avar%20nullChars%20%3D%20new%20Array()%3B%0AnullChars%5B0%5D%20%3D%20'%5C%22%5Cu0000%5C%22'%3B%0AnullChars%5B1%5D%20%3D%20'%5C%22%5Cu0001%5C%22'%3B%0AnullChars%5B2%5D%20%3D%20'%5C%22%5Cu0002%5C%22'%3B%0AnullChars%5B3%5D%20%3D%20'%5C%22%5Cu0003%5C%22'%3B%0AnullChars%5B4%5D%20%3D%20'%5C%22%5Cu0004%5C%22'%3B%0AnullChars%5B5%5D%20%3D%20'%5C%22%5Cu0005%5C%22'%3B%0AnullChars%5B6%5D%20%3D%20'%5C%22%5Cu0006%5C%22'%3B%0AnullChars%5B7%5D%20%3D%20'%5C%22%5Cu0007%5C%22'%3B%0AnullChars%5B8%5D%20%3D%20'%5C%22%5Cu0008%5C%22'%3B%0AnullChars%5B9%5D%20%3D%20'%5C%22%5Cu0009%5C%22'%3B%0AnullChars%5B10%5D%20%3D%20'%5C%22%5Cu000A%5C%22'%3B%0AnullChars%5B11%5D%20%3D%20'%5C%22%5Cu000B%5C%22'%3B%0AnullChars%5B12%5D%20%3D%20'%5C%22%5Cu000C%5C%22'%3B%0AnullChars%5B13%5D%20%3D%20'%5C%22%5Cu000D%5C%22'%3B%0AnullChars%5B14%5D%20%3D%20'%5C%22%5Cu000E%5C%22'%3B%0AnullChars%5B15%5D%20%3D%20'%5C%22%5Cu000F%5C%22'%3B%0AnullChars%5B16%5D%20%3D%20'%5C%22%5Cu0010%5C%22'%3B%0AnullChars%5B17%5D%20%3D%20'%5C%22%5Cu0011%5C%22'%3B%0AnullChars%5B18%5D%20%3D%20'%5C%22%5Cu0012%5C%22'%3B%0AnullChars%5B19%5D%20%3D%20'%5C%22%5Cu0013%5C%22'%3B%0AnullChars%5B20%5D%20%3D%20'%5C%22%5Cu0014%5C%22'%3B%0AnullChars%5B21%5D%20%3D%20'%5C%22%5Cu0015%5C%22'%3B%0AnullChars%5B22%5D%20%3D%20'%5C%22%5Cu0016%5C%22'%3B%0AnullChars%5B23%5D%20%3D%20'%5C%22%5Cu0017%5C%22'%3B%0AnullChars%5B24%5D%20%3D%20'%5C%22%5Cu0018%5C%22'%3B%0AnullChars%5B25%5D%20%3D%20'%5C%22%5Cu0019%5C%22'%3B%0AnullChars%5B26%5D%20%3D%20'%5C%22%5Cu001A%5C%22'%3B%0AnullChars%5B27%5D%20%3D%20'%5C%22%5Cu001B%5C%22'%3B%0AnullChars%5B28%5D%20%3D%20'%5C%22%5Cu001C%5C%22'%3B%0AnullChars%5B29%5D%20%3D%20'%5C%22%5Cu001D%5C%22'%3B%0AnullChars%5B30%5D%20%3D%20'%5C%22%5Cu001E%5C%22'%3B%0AnullChars%5B31%5D%20%3D%20'%5C%22%5Cu001F%5C%22'%3B%0A%0Afor%20(var%20index%20in%20nullChars)%20%7B%0A%20%20assert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20%20%20var%20obj%20%3D%20JSON.parse('%7B%20'%20%2B%20%22na%22%20%2B%20nullChars%5Bindex%5D%20%2B%20%22me%22%20%2B%20'%20%3A%20%22John%22%20%7D%20')%3B%0A%20%20%7D)%3B%0A%7D%0A%0A%20%20%20%20%20%20": "2b82347bf46f87c3103bca2a5f93f2ae8f9f4144bdee2766101d1b2e4976b1bf", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.2-2-6%0Adescription%3A%20%3E%0A%20%20%20%20JSON.parse%20-%20parsing%20an%20object%20where%20property%20value%20is%20a%20null%0A%20%20%20%20character%0A---*%2F%0A%0Avar%20nullChars%20%3D%20new%20Array()%3B%0AnullChars%5B0%5D%20%3D%20'%5C%22%5Cu0000%5C%22'%3B%0AnullChars%5B1%5D%20%3D%20'%5C%22%5Cu0001%5C%22'%3B%0AnullChars%5B2%5D%20%3D%20'%5C%22%5Cu0002%5C%22'%3B%0AnullChars%5B3%5D%20%3D%20'%5C%22%5Cu0003%5C%22'%3B%0AnullChars%5B4%5D%20%3D%20'%5C%22%5Cu0004%5C%22'%3B%0AnullChars%5B5%5D%20%3D%20'%5C%22%5Cu0005%5C%22'%3B%0AnullChars%5B6%5D%20%3D%20'%5C%22%5Cu0006%5C%22'%3B%0AnullChars%5B7%5D%20%3D%20'%5C%22%5Cu0007%5C%22'%3B%0AnullChars%5B8%5D%20%3D%20'%5C%22%5Cu0008%5C%22'%3B%0AnullChars%5B9%5D%20%3D%20'%5C%22%5Cu0009%5C%22'%3B%0AnullChars%5B10%5D%20%3D%20'%5C%22%5Cu000A%5C%22'%3B%0AnullChars%5B11%5D%20%3D%20'%5C%22%5Cu000B%5C%22'%3B%0AnullChars%5B12%5D%20%3D%20'%5C%22%5Cu000C%5C%22'%3B%0AnullChars%5B13%5D%20%3D%20'%5C%22%5Cu000D%5C%22'%3B%0AnullChars%5B14%5D%20%3D%20'%5C%22%5Cu000E%5C%22'%3B%0AnullChars%5B15%5D%20%3D%20'%5C%22%5Cu000F%5C%22'%3B%0AnullChars%5B16%5D%20%3D%20'%5C%22%5Cu0010%5C%22'%3B%0AnullChars%5B17%5D%20%3D%20'%5C%22%5Cu0011%5C%22'%3B%0AnullChars%5B18%5D%20%3D%20'%5C%22%5Cu0012%5C%22'%3B%0AnullChars%5B19%5D%20%3D%20'%5C%22%5Cu0013%5C%22'%3B%0AnullChars%5B20%5D%20%3D%20'%5C%22%5Cu0014%5C%22'%3B%0AnullChars%5B21%5D%20%3D%20'%5C%22%5Cu0015%5C%22'%3B%0AnullChars%5B22%5D%20%3D%20'%5C%22%5Cu0016%5C%22'%3B%0AnullChars%5B23%5D%20%3D%20'%5C%22%5Cu0017%5C%22'%3B%0AnullChars%5B24%5D%20%3D%20'%5C%22%5Cu0018%5C%22'%3B%0AnullChars%5B25%5D%20%3D%20'%5C%22%5Cu0019%5C%22'%3B%0AnullChars%5B26%5D%20%3D%20'%5C%22%5Cu001A%5C%22'%3B%0AnullChars%5B27%5D%20%3D%20'%5C%22%5Cu001B%5C%22'%3B%0AnullChars%5B28%5D%20%3D%20'%5C%22%5Cu001C%5C%22'%3B%0AnullChars%5B29%5D%20%3D%20'%5C%22%5Cu001D%5C%22'%3B%0AnullChars%5B30%5D%20%3D%20'%5C%22%5Cu001E%5C%22'%3B%0AnullChars%5B31%5D%20%3D%20'%5C%22%5Cu001F%5C%22'%3B%0A%0Afor%20(var%20index%20in%20nullChars)%20%7B%0A%20%20assert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20%20%20var%20obj%20%3D%20JSON.parse('%7B%20%22name%22%20%3A%20'%20%2B%20nullChars%5Bindex%5D%20%2B%20'%20%7D%20')%3B%0A%20%20%7D)%3B%0A%7D%0A%0A%20%20%20%20%20%20": "65155f745a03db809d4130ec03ba8d570f8151cdb59fa5b9080e9fe2a7b5462a", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.2-2-7%0Adescription%3A%20%3E%0A%20%20%20%20JSON.parse%20-%20parsing%20an%20object%20where%20property%20value%20starts%20with%20a%0A%20%20%20%20null%20character%0A---*%2F%0A%0Avar%20nullChars%20%3D%20new%20Array()%3B%0AnullChars%5B0%5D%20%3D%20'%5C%22%5Cu0000%5C%22'%3B%0AnullChars%5B1%5D%20%3D%20'%5C%22%5Cu0001%5C%22'%3B%0AnullChars%5B2%5D%20%3D%20'%5C%22%5Cu0002%5C%22'%3B%0AnullChars%5B3%5D%20%3D%20'%5C%22%5Cu0003%5C%22'%3B%0AnullChars%5B4%5D%20%3D%20'%5C%22%5Cu0004%5C%22'%3B%0AnullChars%5B5%5D%20%3D%20'%5C%22%5Cu0005%5C%22'%3B%0AnullChars%5B6%5D%20%3D%20'%5C%22%5Cu0006%5C%22'%3B%0AnullChars%5B7%5D%20%3D%20'%5C%22%5Cu0007%5C%22'%3B%0AnullChars%5B8%5D%20%3D%20'%5C%22%5Cu0008%5C%22'%3B%0AnullChars%5B9%5D%20%3D%20'%5C%22%5Cu0009%5C%22'%3B%0AnullChars%5B10%5D%20%3D%20'%5C%22%5Cu000A%5C%22'%3B%0AnullChars%5B11%5D%20%3D%20'%5C%22%5Cu000B%5C%22'%3B%0AnullChars%5B12%5D%20%3D%20'%5C%22%5Cu000C%5C%22'%3B%0AnullChars%5B13%5D%20%3D%20'%5C%22%5Cu000D%5C%22'%3B%0AnullChars%5B14%5D%20%3D%20'%5C%22%5Cu000E%5C%22'%3B%0AnullChars%5B15%5D%20%3D%20'%5C%22%5Cu000F%5C%22'%3B%0AnullChars%5B16%5D%20%3D%20'%5C%22%5Cu0010%5C%22'%3B%0AnullChars%5B17%5D%20%3D%20'%5C%22%5Cu0011%5C%22'%3B%0AnullChars%5B18%5D%20%3D%20'%5C%22%5Cu0012%5C%22'%3B%0AnullChars%5B19%5D%20%3D%20'%5C%22%5Cu0013%5C%22'%3B%0AnullChars%5B20%5D%20%3D%20'%5C%22%5Cu0014%5C%22'%3B%0AnullChars%5B21%5D%20%3D%20'%5C%22%5Cu0015%5C%22'%3B%0AnullChars%5B22%5D%20%3D%20'%5C%22%5Cu0016%5C%22'%3B%0AnullChars%5B23%5D%20%3D%20'%5C%22%5Cu0017%5C%22'%3B%0AnullChars%5B24%5D%20%3D%20'%5C%22%5Cu0018%5C%22'%3B%0AnullChars%5B25%5D%20%3D%20'%5C%22%5Cu0019%5C%22'%3B%0AnullChars%5B26%5D%20%3D%20'%5C%22%5Cu001A%5C%22'%3B%0AnullChars%5B27%5D%20%3D%20'%5C%22%5Cu001B%5C%22'%3B%0AnullChars%5B28%5D%20%3D%20'%5C%22%5Cu001C%5C%22'%3B%0AnullChars%5B29%5D%20%3D%20'%5C%22%5Cu001D%5C%22'%3B%0AnullChars%5B30%5D%20%3D%20'%5C%22%5Cu001E%5C%22'%3B%0AnullChars%5B31%5D%20%3D%20'%5C%22%5Cu001F%5C%22'%3B%0A%0Afor%20(var%20index%20in%20nullChars)%20%7B%0A%20%20assert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20%20%20var%20obj%20%3D%20JSON.parse('%7B%20%22name%22%20%3A%20'%20%2B%20nullChars%5Bindex%5D%20%2B%20%22John%22%20%2B%20'%20%7D%20')%3B%0A%20%20%7D)%3B%0A%7D%0A%0A%20%20%20%20%20%20": "eadf889df9bc5556d4b789e7689bfd6a5c3c6c6425fe6c01498a74df811a2392", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.2-2-8%0Adescription%3A%20%3E%0A%20%20%20%20JSON.parse%20-%20parsing%20an%20object%20where%20property%20value%20ends%20with%20a%0A%20%20%20%20null%20character%0A---*%2F%0A%0Avar%20nullChars%20%3D%20new%20Array()%3B%0AnullChars%5B0%5D%20%3D%20'%5C%22%5Cu0000%5C%22'%3B%0AnullChars%5B1%5D%20%3D%20'%5C%22%5Cu0001%5C%22'%3B%0AnullChars%5B2%5D%20%3D%20'%5C%22%5Cu0002%5C%22'%3B%0AnullChars%5B3%5D%20%3D%20'%5C%22%5Cu0003%5C%22'%3B%0AnullChars%5B4%5D%20%3D%20'%5C%22%5Cu0004%5C%22'%3B%0AnullChars%5B5%5D%20%3D%20'%5C%22%5Cu0005%5C%22'%3B%0AnullChars%5B6%5D%20%3D%20'%5C%22%5Cu0006%5C%22'%3B%0AnullChars%5B7%5D%20%3D%20'%5C%22%5Cu0007%5C%22'%3B%0AnullChars%5B8%5D%20%3D%20'%5C%22%5Cu0008%5C%22'%3B%0AnullChars%5B9%5D%20%3D%20'%5C%22%5Cu0009%5C%22'%3B%0AnullChars%5B10%5D%20%3D%20'%5C%22%5Cu000A%5C%22'%3B%0AnullChars%5B11%5D%20%3D%20'%5C%22%5Cu000B%5C%22'%3B%0AnullChars%5B12%5D%20%3D%20'%5C%22%5Cu000C%5C%22'%3B%0AnullChars%5B13%5D%20%3D%20'%5C%22%5Cu000D%5C%22'%3B%0AnullChars%5B14%5D%20%3D%20'%5C%22%5Cu000E%5C%22'%3B%0AnullChars%5B15%5D%20%3D%20'%5C%22%5Cu000F%5C%22'%3B%0AnullChars%5B16%5D%20%3D%20'%5C%22%5Cu0010%5C%22'%3B%0AnullChars%5B17%5D%20%3D%20'%5C%22%5Cu0011%5C%22'%3B%0AnullChars%5B18%5D%20%3D%20'%5C%22%5Cu0012%5C%22'%3B%0AnullChars%5B19%5D%20%3D%20'%5C%22%5Cu0013%5C%22'%3B%0AnullChars%5B20%5D%20%3D%20'%5C%22%5Cu0014%5C%22'%3B%0AnullChars%5B21%5D%20%3D%20'%5C%22%5Cu0015%5C%22'%3B%0AnullChars%5B22%5D%20%3D%20'%5C%22%5Cu0016%5C%22'%3B%0AnullChars%5B23%5D%20%3D%20'%5C%22%5Cu0017%5C%22'%3B%0AnullChars%5B24%5D%20%3D%20'%5C%22%5Cu0018%5C%22'%3B%0AnullChars%5B25%5D%20%3D%20'%5C%22%5Cu0019%5C%22'%3B%0AnullChars%5B26%5D%20%3D%20'%5C%22%5Cu001A%5C%22'%3B%0AnullChars%5B27%5D%20%3D%20'%5C%22%5Cu001B%5C%22'%3B%0AnullChars%5B28%5D%20%3D%20'%5C%22%5Cu001C%5C%22'%3B%0AnullChars%5B29%5D%20%3D%20'%5C%22%5Cu001D%5C%22'%3B%0AnullChars%5B30%5D%20%3D%20'%5C%22%5Cu001E%5C%22'%3B%0AnullChars%5B31%5D%20%3D%20'%5C%22%5Cu001F%5C%22'%3B%0A%0Afor%20(var%20index%20in%20nullChars)%20%7B%0A%20%20assert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20%20%20var%20obj%20%3D%20JSON.parse('%7B%20%22name%22%20%3A%20'%20%2B%20%22John%22%20%2B%20nullChars%5Bindex%5D%20%2B%20'%20%7D%20')%3B%0A%20%20%7D)%3B%0A%7D%0A%0A%20%20%20%20%20%20": "5e9c91ffadea6d5ea8e59b6c26ff13cda1eb394718b17e9b035c19afdd229f14", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aes5id%3A%2015.12.2-2-9%0Adescription%3A%20%3E%0A%20%20%20%20JSON.parse%20-%20parsing%20an%20object%20where%20property%20value%20starts%20and%0A%20%20%20%20ends%20with%20a%20null%20character%0A---*%2F%0A%0Avar%20nullChars%20%3D%20new%20Array()%3B%0AnullChars%5B0%5D%20%3D%20'%5C%22%5Cu0000%5C%22'%3B%0AnullChars%5B1%5D%20%3D%20'%5C%22%5Cu0001%5C%22'%3B%0AnullChars%5B2%5D%20%3D%20'%5C%22%5Cu0002%5C%22'%3B%0AnullChars%5B3%5D%20%3D%20'%5C%22%5Cu0003%5C%22'%3B%0AnullChars%5B4%5D%20%3D%20'%5C%22%5Cu0004%5C%22'%3B%0AnullChars%5B5%5D%20%3D%20'%5C%22%5Cu0005%5C%22'%3B%0AnullChars%5B6%5D%20%3D%20'%5C%22%5Cu0006%5C%22'%3B%0AnullChars%5B7%5D%20%3D%20'%5C%22%5Cu0007%5C%22'%3B%0AnullChars%5B8%5D%20%3D%20'%5C%22%5Cu0008%5C%22'%3B%0AnullChars%5B9%5D%20%3D%20'%5C%22%5Cu0009%5C%22'%3B%0AnullChars%5B10%5D%20%3D%20'%5C%22%5Cu000A%5C%22'%3B%0AnullChars%5B11%5D%20%3D%20'%5C%22%5Cu000B%5C%22'%3B%0AnullChars%5B12%5D%20%3D%20'%5C%22%5Cu000C%5C%22'%3B%0AnullChars%5B13%5D%20%3D%20'%5C%22%5Cu000D%5C%22'%3B%0AnullChars%5B14%5D%20%3D%20'%5C%22%5Cu000E%5C%22'%3B%0AnullChars%5B15%5D%20%3D%20'%5C%22%5Cu000F%5C%22'%3B%0AnullChars%5B16%5D%20%3D%20'%5C%22%5Cu0010%5C%22'%3B%0AnullChars%5B17%5D%20%3D%20'%5C%22%5Cu0011%5C%22'%3B%0AnullChars%5B18%5D%20%3D%20'%5C%22%5Cu0012%5C%22'%3B%0AnullChars%5B19%5D%20%3D%20'%5C%22%5Cu0013%5C%22'%3B%0AnullChars%5B20%5D%20%3D%20'%5C%22%5Cu0014%5C%22'%3B%0AnullChars%5B21%5D%20%3D%20'%5C%22%5Cu0015%5C%22'%3B%0AnullChars%5B22%5D%20%3D%20'%5C%22%5Cu0016%5C%22'%3B%0AnullChars%5B23%5D%20%3D%20'%5C%22%5Cu0017%5C%22'%3B%0AnullChars%5B24%5D%20%3D%20'%5C%22%5Cu0018%5C%22'%3B%0AnullChars%5B25%5D%20%3D%20'%5C%22%5Cu0019%5C%22'%3B%0AnullChars%5B26%5D%20%3D%20'%5C%22%5Cu001A%5C%22'%3B%0AnullChars%5B27%5D%20%3D%20'%5C%22%5Cu001B%5C%22'%3B%0AnullChars%5B28%5D%20%3D%20'%5C%22%5Cu001C%5C%22'%3B%0AnullChars%5B29%5D%20%3D%20'%5C%22%5Cu001D%5C%22'%3B%0AnullChars%5B30%5D%20%3D%20'%5C%22%5Cu001E%5C%22'%3B%0AnullChars%5B31%5D%20%3D%20'%5C%22%5Cu001F%5C%22'%3B%0A%0Afor%20(var%20index%20in%20nullChars)%20%7B%0A%20%20assert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20%20%20var%20obj%20%3D%20JSON.parse('%7B%20%22name%22%20%3A%20'%20%2B%20nullChars%5Bindex%5D%20%2B%20%22John%22%20%2B%20nullChars%5Bindex%5D%20%2B%20'%20%7D%20')%3B%0A%20%20%7D)%3B%0A%7D%0A%0A%20%20%20%20%20%20": "ad5f84072eef335109de2a89c1427c3b2001aefa7d899f17224496898598e28a", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Aesid%3A%20sec-json.parse%0Aes5id%3A%2015.12.1.1-0-7%0Adescription%3A%20%3E%0A%20%20%20%20other%20category%20z%20spaces%20are%20not%20valid%20JSON%20whitespace%20as%20specified%0A%20%20%20%20by%20the%20production%20JSONWhitespace.%0A---*%2F%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cu16801')%3B%0A%7D%2C%20'%5C%5Cu1680')%3B%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cu180e1')%3B%0A%7D%2C%20'%5C%5Cu180e')%3B%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cu20001')%3B%0A%7D%2C%20'%5C%5Cu2000')%3B%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cu20011')%3B%0A%7D%2C%20'%5C%5Cu2001')%3B%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cu20021')%3B%0A%7D%2C%20'%5C%5Cu2002')%3B%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cu20031')%3B%0A%7D%2C%20'%5C%5Cu2003')%3B%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cu20041')%3B%0A%7D%2C%20'%5C%5Cu2004')%3B%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cu20051')%3B%0A%7D%2C%20'%5C%5Cu2005')%3B%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cu20061')%3B%0A%7D%2C%20'%5C%5Cu2006')%3B%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cu20071')%3B%0A%7D%2C%20'%5C%5Cu2007')%3B%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cu20081')%3B%0A%7D%2C%20'%5C%5Cu2008')%3B%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cu20091')%3B%0A%7D%2C%20'%5C%5Cu2009')%3B%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cu200a1')%3B%0A%7D%2C%20'%5C%5Cu200a')%3B%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cu202f1')%3B%0A%7D%2C%20'%5C%5Cu202f')%3B%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cu205f1')%3B%0A%7D%2C%20'%5C%5Cu205f')%3B%0A%0Aassert.throws(SyntaxError%2C%20function()%20%7B%0A%20%20JSON.parse('%5Cu30001')%3B%0A%7D%2C%20'%5C%5Cu3000')%3B%0A%0A%20%20%20%20%20%20": "5188489197c49cf1e4b5425ff871a89ba0bae58e91b1b97c1165fd90296021e0", + "data:text/javascript,%0A%20%20%20%20%20%20%20%20import%20*%20as%20JSONC%20from%20%22file%3A%2F%2F%2FUsers%2Fasher%2FDocuments%2FGitHub%2Fdeno_std%2Fencoding%2Fjsonc.ts%22%3B%0A%20%20%20%20%20%20%20%20const%20JSON%20%3D%20JSONC%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fsta.js%0A%2F%2F%20Copyright%20(c)%202012%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Provides%20both%3A%0A%20%20%20%20-%20An%20error%20class%20to%20avoid%20false%20positives%20when%20testing%20for%20thrown%20exceptions%0A%20%20%20%20-%20A%20function%20to%20explicitly%20throw%20an%20exception%20using%20the%20Test262Error%20class%0Adefines%3A%20%5BTest262Error%2C%20%24ERROR%2C%20%24DONOTEVALUATE%5D%0A---*%2F%0A%0A%0Afunction%20Test262Error(message)%20%7B%0A%20%20this.message%20%3D%20message%20%7C%7C%20%22%22%3B%0A%7D%0A%0ATest262Error.prototype.toString%20%3D%20function%20()%20%7B%0A%20%20return%20%22Test262Error%3A%20%22%20%2B%20this.message%3B%0A%7D%3B%0A%0ATest262Error.thrower%20%3D%20(message)%20%3D%3E%20%7B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%2F%2F%20TODO%3A%20Remove%20when%20%24ERROR%20migration%20is%20completed%0Avar%20%24ERROR%20%3D%20Test262Error.thrower%3B%0A%0Afunction%20%24DONOTEVALUATE()%20%7B%0A%20%20throw%20%22Test262%3A%20This%20statement%20should%20not%20be%20evaluated.%22%3B%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F488eb365db7c613d52e72a9f5b8726684906e540%2Fharness%2Fassert.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20assertion%20functions%20used%20throughout%20test262%0Adefines%3A%20%5Bassert%5D%0A---*%2F%0A%0A%0Afunction%20assert(mustBeTrue%2C%20message)%20%7B%0A%20%20if%20(mustBeTrue%20%3D%3D%3D%20true)%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20'Expected%20true%20but%20got%20'%20%2B%20assert._toString(mustBeTrue)%3B%0A%20%20%7D%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%0A%0Aassert._isSameValue%20%3D%20function%20(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%20b)%20%7B%0A%20%20%20%20%2F%2F%20Handle%20%2B%2F-0%20vs.%20-%2F%2B0%0A%20%20%20%20return%20a%20!%3D%3D%200%20%7C%7C%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Handle%20NaN%20vs.%20NaN%0A%20%20return%20a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b%3B%0A%7D%3B%0A%0Aassert.sameValue%20%3D%20function%20(actual%2C%20expected%2C%20message)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(assert._isSameValue(actual%2C%20expected))%20%7B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20throw%20new%20Test262Error(message%20%2B%20'%20(_isSameValue%20operation%20threw)%20'%20%2B%20error)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(expected)%20%2B%20'%C2%BB)%20to%20be%20true'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.notSameValue%20%3D%20function%20(actual%2C%20unexpected%2C%20message)%20%7B%0A%20%20if%20(!assert._isSameValue(actual%2C%20unexpected))%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20SameValue(%C2%AB'%20%2B%20assert._toString(actual)%20%2B%20'%C2%BB%2C%20%C2%AB'%20%2B%20assert._toString(unexpected)%20%2B%20'%C2%BB)%20to%20be%20false'%3B%0A%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert.throws%20%3D%20function%20(expectedErrorConstructor%2C%20func%2C%20message)%20%7B%0A%20%20var%20expectedName%2C%20actualName%3B%0A%20%20if%20(typeof%20func%20!%3D%3D%20%22function%22)%20%7B%0A%20%20%20%20throw%20new%20Test262Error('assert.throws%20requires%20two%20arguments%3A%20the%20error%20constructor%20'%20%2B%0A%20%20%20%20%20%20'and%20a%20function%20to%20run')%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20if%20(message%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20message%20%3D%20''%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20message%20%2B%3D%20'%20'%3B%0A%20%20%7D%0A%0A%20%20try%20%7B%0A%20%20%20%20func()%3B%0A%20%20%7D%20catch%20(thrown)%20%7B%0A%20%20%20%20if%20(typeof%20thrown%20!%3D%3D%20'object'%20%7C%7C%20thrown%20%3D%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20message%20%2B%3D%20'Thrown%20value%20was%20not%20an%20object!'%3B%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%20else%20if%20(thrown.constructor%20!%3D%3D%20expectedErrorConstructor)%20%7B%0A%20%20%20%20%20%20expectedName%20%3D%20expectedErrorConstructor.name%3B%0A%20%20%20%20%20%20actualName%20%3D%20thrown.constructor.name%3B%0A%20%20%20%20%20%20if%20(expectedName%20%3D%3D%3D%20actualName)%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20different%20error%20constructor%20with%20the%20same%20name'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedName%20%2B%20'%20but%20got%20a%20'%20%2B%20actualName%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20throw%20new%20Test262Error(message)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20message%20%2B%3D%20'Expected%20a%20'%20%2B%20expectedErrorConstructor.name%20%2B%20'%20to%20be%20thrown%20but%20no%20exception%20was%20thrown%20at%20all'%3B%0A%20%20throw%20new%20Test262Error(message)%3B%0A%7D%3B%0A%0Aassert._toString%20%3D%20function%20(value)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20(value%20%3D%3D%3D%200%20%26%26%201%20%2F%20value%20%3D%3D%3D%20-Infinity)%20%7B%0A%20%20%20%20%20%20return%20'-0'%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20String(value)%3B%0A%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20if%20(err.name%20%3D%3D%3D%20'TypeError')%20%7B%0A%20%20%20%20%20%20return%20Object.prototype.toString.call(value)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20throw%20err%3B%0A%20%20%7D%0A%7D%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Ported%20from%20test262%0A%2F%2F%20https%3A%2F%2Fgithub.com%2Ftc39%2Ftest262%2Fblob%2F276e79d62e8c45bc1e427fc680320c4899eace27%2Fharness%2FpropertyHelper.js%0A%2F%2F%20Copyright%20(C)%202017%20Ecma%20International.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%2F*---%0Adescription%3A%20%7C%0A%20%20%20%20Collection%20of%20functions%20used%20to%20safely%20verify%20the%20correctness%20of%0A%20%20%20%20property%20descriptors.%0Adefines%3A%0A%20%20-%20verifyProperty%0A%20%20-%20verifyEqualTo%0A%20%20-%20verifyWritable%0A%20%20-%20verifyNotWritable%0A%20%20-%20verifyEnumerable%0A%20%20-%20verifyNotEnumerable%0A%20%20-%20verifyConfigurable%0A%20%20-%20verifyNotConfigurable%0A---*%2F%0A%0A%2F%2F%20%40ts-check%0A%0A%2F**%0A%20*%20%40param%20%7Bobject%7D%20obj%0A%20*%20%40param%20%7Bstring%7Csymbol%7D%20name%0A%20*%20%40param%20%7BPropertyDescriptor%7Cundefined%7D%20desc%0A%20*%20%40param%20%7Bobject%7D%20%5Boptions%5D%0A%20*%20%40param%20%7Bboolean%7D%20%5Boptions.restore%5D%0A%20*%2F%0Afunction%20verifyProperty(obj%2C%20name%2C%20desc%2C%20options)%20%7B%0A%20%20assert(%0A%20%20%20%20arguments.length%20%3E%202%2C%0A%20%20%20%20'verifyProperty%20should%20receive%20at%20least%203%20arguments%3A%20obj%2C%20name%2C%20and%20descriptor'%0A%20%20)%3B%0A%0A%20%20var%20originalDesc%20%3D%20Object.getOwnPropertyDescriptor(obj%2C%20name)%3B%0A%20%20var%20nameStr%20%3D%20String(name)%3B%0A%0A%20%20%2F%2F%20Allows%20checking%20for%20undefined%20descriptor%20if%20it's%20explicitly%20given.%0A%20%20if%20(desc%20%3D%3D%3D%20undefined)%20%7B%0A%20%20%20%20assert.sameValue(%0A%20%20%20%20%20%20originalDesc%2C%0A%20%20%20%20%20%20undefined%2C%0A%20%20%20%20%20%20%22obj%5B'%22%20%2B%20nameStr%20%2B%20%22'%5D%20descriptor%20should%20be%20undefined%22%0A%20%20%20%20)%3B%0A%0A%20%20%20%20%2F%2F%20desc%20and%20originalDesc%20are%20both%20undefined%2C%20problem%20solved%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20assert(%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%2C%0A%20%20%20%20%22obj%20should%20have%20an%20own%20property%20%22%20%2B%20nameStr%0A%20%20)%3B%0A%0A%20%20assert.notSameValue(%0A%20%20%20%20desc%2C%0A%20%20%20%20null%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20null%22%0A%20%20)%3B%0A%0A%20%20assert.sameValue(%0A%20%20%20%20typeof%20desc%2C%0A%20%20%20%20%22object%22%2C%0A%20%20%20%20%22The%20desc%20argument%20should%20be%20an%20object%20or%20undefined%2C%20%22%20%2B%20String(desc)%0A%20%20)%3B%0A%0A%20%20var%20failures%20%3D%20%5B%5D%3B%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'value'))%20%7B%0A%20%20%20%20if%20(!isSameValue(desc.value%2C%20originalDesc.value))%20%7B%0A%20%20%20%20%20%20failures.push(%22descriptor%20value%20should%20be%20%22%20%2B%20desc.value)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'enumerable'))%20%7B%0A%20%20%20%20if%20(desc.enumerable%20!%3D%3D%20originalDesc.enumerable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.enumerable%20!%3D%3D%20isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.enumerable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20enumerable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'writable'))%20%7B%0A%20%20%20%20if%20(desc.writable%20!%3D%3D%20originalDesc.writable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.writable%20!%3D%3D%20isWritable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.writable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20writable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20if%20(Object.prototype.hasOwnProperty.call(desc%2C%20'configurable'))%20%7B%0A%20%20%20%20if%20(desc.configurable%20!%3D%3D%20originalDesc.configurable%20%7C%7C%0A%20%20%20%20%20%20%20%20desc.configurable%20!%3D%3D%20isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%20%20failures.push('descriptor%20should%20'%20%2B%20(desc.configurable%20%3F%20''%20%3A%20'not%20')%20%2B%20'be%20configurable')%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20assert(!failures.length%2C%20failures.join('%3B%20'))%3B%0A%0A%20%20if%20(options%20%26%26%20options.restore)%20%7B%0A%20%20%20%20Object.defineProperty(obj%2C%20name%2C%20originalDesc)%3B%0A%20%20%7D%0A%0A%20%20return%20true%3B%0A%7D%0A%0Afunction%20isConfigurable(obj%2C%20name)%20%7B%0A%20%20var%20hasOwnProperty%20%3D%20Object.prototype.hasOwnProperty%3B%0A%20%20try%20%7B%0A%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20!hasOwnProperty.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isEnumerable(obj%2C%20name)%20%7B%0A%20%20var%20stringCheck%20%3D%20false%3B%0A%0A%20%20if%20(typeof%20name%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20for%20(var%20x%20in%20obj)%20%7B%0A%20%20%20%20%20%20if%20(x%20%3D%3D%3D%20name)%20%7B%0A%20%20%20%20%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%20else%20%7B%0A%20%20%20%20%2F%2F%20skip%20it%20if%20name%20is%20not%20string%2C%20works%20for%20Symbol%20names.%0A%20%20%20%20stringCheck%20%3D%20true%3B%0A%20%20%7D%0A%0A%20%20return%20stringCheck%20%26%26%0A%20%20%20%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%20%26%26%0A%20%20%20%20Object.prototype.propertyIsEnumerable.call(obj%2C%20name)%3B%0A%7D%0A%0Afunction%20isSameValue(a%2C%20b)%20%7B%0A%20%20if%20(a%20%3D%3D%3D%200%20%26%26%20b%20%3D%3D%3D%200)%20return%201%20%2F%20a%20%3D%3D%3D%201%20%2F%20b%3B%0A%20%20if%20(a%20!%3D%3D%20a%20%26%26%20b%20!%3D%3D%20b)%20return%20true%3B%0A%0A%20%20return%20a%20%3D%3D%3D%20b%3B%0A%7D%0A%0Avar%20__isArray%20%3D%20Array.isArray%3B%0Afunction%20isWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20var%20unlikelyValue%20%3D%20__isArray(obj)%20%26%26%20name%20%3D%3D%3D%20%22length%22%20%3F%0A%20%20%20%20Math.pow(2%2C%2032)%20-%201%20%3A%0A%20%20%20%20%22unlikelyValue%22%3B%0A%20%20var%20newValue%20%3D%20value%20%7C%7C%20unlikelyValue%3B%0A%20%20var%20hadValue%20%3D%20Object.prototype.hasOwnProperty.call(obj%2C%20name)%3B%0A%20%20var%20oldValue%20%3D%20obj%5Bname%5D%3B%0A%20%20var%20writeSucceeded%3B%0A%0A%20%20try%20%7B%0A%20%20%20%20obj%5Bname%5D%20%3D%20newValue%3B%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20if%20(!(e%20instanceof%20TypeError))%20%7B%0A%20%20%20%20%20%20%24ERROR(%22Expected%20TypeError%2C%20got%20%22%20%2B%20e)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20writeSucceeded%20%3D%20isSameValue(obj%5BverifyProp%20%7C%7C%20name%5D%2C%20newValue)%3B%0A%0A%20%20%2F%2F%20Revert%20the%20change%20only%20if%20it%20was%20successful%20(in%20other%20cases%2C%20reverting%0A%20%20%2F%2F%20is%20unnecessary%20and%20may%20trigger%20exceptions%20for%20certain%20property%0A%20%20%2F%2F%20configurations)%0A%20%20if%20(writeSucceeded)%20%7B%0A%20%20%20%20if%20(hadValue)%20%7B%0A%20%20%20%20%20%20obj%5Bname%5D%20%3D%20oldValue%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20delete%20obj%5Bname%5D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20writeSucceeded%3B%0A%7D%0A%0Afunction%20verifyEqualTo(obj%2C%20name%2C%20value)%20%7B%0A%20%20if%20(!isSameValue(obj%5Bname%5D%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20equal%20%22%20%2B%20value%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%22%2C%20actually%20%22%20%2B%20obj%5Bname%5D)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Atrue.%22)%3B%0A%20%20%7D%0A%20%20if%20(!isWritable(obj%2C%20name%2C%20verifyProp%2C%20value))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20writable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotWritable(obj%2C%20name%2C%20verifyProp%2C%20value)%20%7B%0A%20%20if%20(!verifyProp)%20%7B%0A%20%20%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).writable%2C%0A%20%20%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20writable%3Afalse.%22)%3B%0A%20%20%7D%0A%20%20if%20(isWritable(obj%2C%20name%2C%20verifyProp))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20writable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Atrue.%22)%3B%0A%20%20if%20(!isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20enumerable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotEnumerable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).enumerable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20enumerable%3Afalse.%22)%3B%0A%20%20if%20(isEnumerable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20enumerable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Atrue.%22)%3B%0A%20%20if%20(!isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20be%20configurable%2C%20but%20was%20not.%22)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20verifyNotConfigurable(obj%2C%20name)%20%7B%0A%20%20assert(!Object.getOwnPropertyDescriptor(obj%2C%20name).configurable%2C%0A%20%20%20%20%20%20%20%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20to%20have%20configurable%3Afalse.%22)%3B%0A%20%20if%20(isConfigurable(obj%2C%20name))%20%7B%0A%20%20%20%20%24ERROR(%22Expected%20obj%5B%22%20%2B%20String(name)%20%2B%20%22%5D%20NOT%20to%20be%20configurable%2C%20but%20was.%22)%3B%0A%20%20%7D%0A%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20Copyright%202018-2022%20the%20Deno%20authors.%20All%20rights%20reserved.%20MIT%20license.%0A%2F%2F%20Copyright%202011%20the%20Sputnik%20authors.%20%20All%20rights%20reserved.%0A%2F%2F%20This%20code%20is%20governed%20by%20the%20BSD%20license%20found%20in%20the%20LICENSE%20file.%0A%0A%2F*---%0Ainfo%3A%20JSON.parse%20must%20create%20a%20property%20with%20the%20given%20property%20name%0Aes5id%3A%2015.12.2_A1%0Adescription%3A%20Tests%20that%20JSON.parse%20treats%20%22__proto__%22%20as%20a%20regular%20property%20name%0A---*%2F%0A%0Avar%20x%20%3D%20JSON.parse('%7B%22__proto__%22%3A%5B%5D%7D')%3B%0A%0Aassert.sameValue(%0A%20%20Object.getPrototypeOf(x)%2C%0A%20%20Object.prototype%2C%0A%20%20'Object.getPrototypeOf(%22JSON.parse(%5C'%7B%22__proto__%22%3A%5B%5D%7D%5C')%22)%20returns%20Object.prototype'%0A)%3B%0A%0Aassert(Array.isArray(x.__proto__)%2C%20'Array.isArray(x.__proto__)%20must%20return%20true')%3B%0A%0A%20%20%20%20%20%20": "391c9e188c36229a031a1220fe999eee5733e2b3f0e66c3da3a7d21df4d572a5" + } +} diff --git a/encoding/varint/_wasm_varint/.rustfmt.toml b/encoding/varint/_wasm/.rustfmt.toml similarity index 100% rename from encoding/varint/_wasm_varint/.rustfmt.toml rename to encoding/varint/_wasm/.rustfmt.toml diff --git a/encoding/varint/_wasm_varint/Cargo.lock b/encoding/varint/_wasm/Cargo.lock similarity index 100% rename from encoding/varint/_wasm_varint/Cargo.lock rename to encoding/varint/_wasm/Cargo.lock diff --git a/encoding/varint/_wasm_varint/Cargo.toml b/encoding/varint/_wasm/Cargo.toml similarity index 100% rename from encoding/varint/_wasm_varint/Cargo.toml rename to encoding/varint/_wasm/Cargo.toml diff --git a/encoding/varint/_wasm_varint/lib/deno_std_wasm_varint.generated.mjs b/encoding/varint/_wasm/lib/deno_std_wasm_varint.generated.mjs similarity index 100% rename from encoding/varint/_wasm_varint/lib/deno_std_wasm_varint.generated.mjs rename to encoding/varint/_wasm/lib/deno_std_wasm_varint.generated.mjs diff --git a/encoding/varint/_wasm_varint/rust-toolchain.toml b/encoding/varint/_wasm/rust-toolchain.toml similarity index 100% rename from encoding/varint/_wasm_varint/rust-toolchain.toml rename to encoding/varint/_wasm/rust-toolchain.toml diff --git a/encoding/varint/_wasm_varint/src/lib.rs b/encoding/varint/_wasm/src/lib.rs similarity index 100% rename from encoding/varint/_wasm_varint/src/lib.rs rename to encoding/varint/_wasm/src/lib.rs diff --git a/encoding/varint/mod.ts b/encoding/varint/mod.ts index 609f91315..9eeddf0e5 100644 --- a/encoding/varint/mod.ts +++ b/encoding/varint/mod.ts @@ -6,7 +6,7 @@ * @module */ -import { instantiate } from "./_wasm_varint/lib/deno_std_wasm_varint.generated.mjs"; +import { instantiate } from "./_wasm/lib/deno_std_wasm_varint.generated.mjs"; const U32MAX = 4_294_967_295; const U64MAX = 18_446_744_073_709_551_615n;