v8/test
Leszek Swirski ef2df57aa5 Reland "[destructuring] Elide coercible check for simple keys"
This is a reland of 1fba044154
Chromium expectation tests have been disabled, and will be enabled

Original change's description:
> [destructuring] Elide coercible check for simple keys
>
> Simple object destructuring, such as `let {a,b} = o`, is less efficient
> than the equivalent assignments `let a = o.a; let b = o.b`. This is
> because it does a nil check of `o` before the assignments. However, this
> nil check is not strictly necessary for simple (i.e. non-computed) names,
> as there will be an equivalent nil check on the first access to o in
> `o.a`. For computed names the computation is unfortunately obervable.
>
> So, we can elide the nil check when the first property (if any) of the
> destructuring target is a non-computed name. This messes a bit with our
> error messages, so we re-use the CallPrinter to also find destructuring
> assignment based errors, and fiddle with the error message there. As
> a side-effect, we also get out the object name in the AST, so we can
> output a slightly nicer error message.
>
> Change-Id: Iafa858e27ed771a146cd3ba57903cc73bb46951d
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1773254
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#63453}

TBR=verwaest@chromium.org

Bug: chromium:999473
Change-Id: Ib0b2e4be433c50521ba1722e1c06b672bfefa405
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1777702
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63477}
2019-08-30 10:51:49 +00:00
..
benchmarks
cctest Reland "[destructuring] Elide coercible check for simple keys" 2019-08-30 10:51:49 +00:00
common Use relative paths to OWNERS files 2019-08-12 13:52:52 +00:00
debugger Use relative paths to OWNERS files 2019-08-12 13:52:52 +00:00
fuzzer [wasm] Enable --wasm-staging in libfuzzer fuzzers 2019-08-26 09:32:24 +00:00
inspector Do not run microtasks when there are scheduled exceptions 2019-08-23 16:17:58 +00:00
intl Fix crash under lb_LU locale 2019-08-26 17:07:12 +00:00
js-perf-test [jsperf] Add benchmark for LoadConstantFromPrototype 2019-08-16 09:33:06 +00:00
memory
message Reland "[destructuring] Elide coercible check for simple keys" 2019-08-30 10:51:49 +00:00
mjsunit [class] implement private accessors 2019-08-30 10:16:29 +00:00
mkgrokdump Reland "Add postmortem debugging helper library" 2019-07-31 14:30:19 +00:00
mozilla [regexp] Add missing case for EscapeRegExpPattern 2019-07-09 08:11:51 +00:00
preparser
test262 [names] Fix some test262 name tests to conform with spec changes 2019-08-23 15:04:31 +00:00
torque Reland "[torque] introduce JSAny type for user-accessible JavaScript values" 2019-08-26 13:25:12 +00:00
unittests [turbofan] Clean up heap broker initialization 2019-08-30 10:19:20 +00:00
wasm-api-tests [wasm-c-api] Roll bf31edf: Fix life times of host info 2019-08-26 14:28:51 +00:00
wasm-js [wasm] Stage type reflection support. 2019-08-28 14:45:52 +00:00
wasm-spec-tests PPC/s390: [wasm] Stage type reflection support. 2019-08-29 12:58:28 +00:00
webkit [regexp] Add missing case for EscapeRegExpPattern 2019-07-09 08:11:51 +00:00
BUILD.gn
OWNERS Use relative paths to OWNERS files 2019-08-12 13:52:52 +00:00