v8/test/mjsunit/harmony
Shu-yu Guo a3c7e96891 [class] Fix private name scope chain
Expressions in class heritage position do not have access to the
inheriting class's private names, only its lexical bindings. The parser
currently uses the same scope chain for both.

This CL makes scopes in class heritage position skip their outer class
when resolving private names. Whether a scope needs to skip is kept as a
bit on various scope-related data structures.

See implementation doc at
https://docs.google.com/document/d/1d3o_SQqcICxfjLMw53OOaiIQux0ppNHQJnjZHtCQLwA

Bug: v8:9177
Change-Id: I77e491a9d4a261131274f12ddf052af7ac31a921
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1769486
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63586}
2019-09-06 00:52:07 +00:00
..
bigint [turbofan] Push BigInt truncation over addition and heap constants 2019-07-12 09:05:29 +00:00
regress Remove always-true --harmony-object-from-entries runtime flag 2019-06-24 15:01:01 +00:00
weakrefs [WeakRefs] Make cleanup callback run as a task 2019-07-30 12:19:39 +00:00
array-concat-array-proto-getter.js [runtime] Avoid @@isConcatSpreadable lookup for fast path Array.prototype.concat 2016-05-12 08:52:36 +00:00
array-concat-array-proto.js [runtime] Avoid @@isConcatSpreadable lookup for fast path Array.prototype.concat 2016-05-12 08:52:36 +00:00
array-concat-object-proto-dict-getter.js [runtime] Avoid @@isConcatSpreadable lookup for fast path Array.prototype.concat 2016-05-12 08:52:36 +00:00
array-concat-object-proto-dict.js [runtime] Avoid @@isConcatSpreadable lookup for fast path Array.prototype.concat 2016-05-12 08:52:36 +00:00
array-concat-object-proto-generic-dict.js [runtime] Avoid @@isConcatSpreadable lookup for fast path Array.prototype.concat 2016-05-12 08:52:36 +00:00
array-concat-object-proto.js [runtime] Avoid @@isConcatSpreadable lookup for fast path Array.prototype.concat 2016-05-12 08:52:36 +00:00
array-flat-species.js Remove always-true --harmony-array-flat runtime flag 2019-02-02 17:54:27 +00:00
array-flat.js Remove always-true --harmony-array-flat runtime flag 2019-02-02 17:54:27 +00:00
array-flatMap-species.js Remove always-true --harmony-array-flat runtime flag 2019-02-02 17:54:27 +00:00
array-flatMap.js Remove always-true --harmony-array-flat runtime flag 2019-02-02 17:54:27 +00:00
array-sort-comparefn.js [js] Remove CHECK_OBJECT_COERCIBLE for Array methods 2017-10-20 19:29:36 +00:00
async-await-optimization.js [async-await] Refactor await optimization and include async generators 2018-10-05 13:25:56 +00:00
async-for-of-non-iterable.js Remove always-true --harmony-async-iteration runtime flag 2018-01-12 20:14:34 +00:00
async-from-sync-iterator-next-tick-count.js [await] Add async iterator tests for await optimization 2019-04-03 17:42:51 +00:00
async-from-sync-iterator-return-tick-count.js [await] Add async iterator tests for await optimization 2019-04-03 17:42:51 +00:00
async-from-sync-iterator-throw-tick-count.js [await] Add async iterator tests for await optimization 2019-04-03 17:42:51 +00:00
async-from-sync-iterator.js Replace %RunMicrotasks with %PerformMicrotaskCheckpoint 2018-12-06 11:10:18 +00:00
async-generators-basic.js Replace %RunMicrotasks with %PerformMicrotaskCheckpoint 2018-12-06 11:10:18 +00:00
async-generators-resume-return.js [mjsunit] Move the implementation of testAsync into a separate file 2018-08-01 08:46:24 +00:00
async-generators-return.js [mjsunit] Move the implementation of testAsync into a separate file 2018-08-01 08:46:24 +00:00
async-generators-yield.js [mjsunit] Move the implementation of testAsync into a separate file 2018-08-01 08:46:24 +00:00
async-iterators-resolve.js [await] Update async iterators to return a rejected promise on error 2019-03-18 18:32:58 +00:00
atomics-notify.js [Atomics] Add use counter for Atomics.{wake, notify} 2018-09-20 21:31:33 +00:00
atomics-value-check.js [d8] Update new Worker API to match the Web API 2018-09-20 00:10:28 +00:00
atomics.js [atomics] Make IsLockFree handle 8 bytes 2019-08-06 13:03:47 +00:00
bigintarray-keyedstore-tobigint.js Remove always-true --harmony-bigint runtime flag 2018-10-01 11:31:13 +00:00
block-lazy-compile.js [Test] Add PrepareForOptimization to some mjsunit tests. 2019-05-03 13:32:32 +00:00
dataview-accessors.js Reland of Amend DataView, ArrayBuffer, and TypedArray methods to use ToIndex. (patchset #2 id:170001 of https://codereview.chromium.org/2113593002/ ) 2016-08-17 17:38:56 +00:00
for-await-of.js Replace %RunMicrotasks with %PerformMicrotaskCheckpoint 2018-12-06 11:10:18 +00:00
function-tostring.js Remove always-true --harmony-function-tostring runtime flag 2018-10-03 15:04:16 +00:00
futex.js [d8] Update new Worker API to match the Web API 2018-09-20 00:10:28 +00:00
generators-reduced.js [Test] Add PrepareForOptimization to some mjsunit tests. 2019-05-03 13:32:32 +00:00
generators.js [Test] Add PrepareForOptimization to some mjsunit tests. 2019-05-03 13:32:32 +00:00
global-configurable.js Remove always-true --harmony-global runtime flag 2019-06-26 09:47:14 +00:00
global-writable.js Remove always-true --harmony-global runtime flag 2019-06-26 09:47:14 +00:00
global.js Remove always-true --harmony-global runtime flag 2019-06-26 09:47:14 +00:00
harmony-string-pad-end.js [builtins] Port String.prototype.{padStart, padEnd} to CSA 2017-10-16 14:19:19 +00:00
harmony-string-pad-start.js [builtins] Port String.prototype.{padStart, padEnd} to CSA 2017-10-16 14:19:19 +00:00
hashbang-eval.js Remove always-enabled --harmony-hashbang flag 2019-06-11 15:47:08 +00:00
import-from-compilation-errored.js [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
import-from-evaluation-errored.js [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
import-from-fetch-errored.js Replace %RunMicrotasks with %PerformMicrotaskCheckpoint 2018-12-06 11:10:18 +00:00
import-from-instantiation-errored.js [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
module-parsing-eval.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-1.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-2.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-3.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-4.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-5.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-6.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-7.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-8.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-9.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-10.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-11.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-12.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-13.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-14.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-15.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-16.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-17.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-large.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-meta.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-namespace.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-1.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-2.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-3.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-4.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-5.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-6.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-7.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-8.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-9.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-10.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-11.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-12.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-13.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-empty.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-export-import-meta.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-large1.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-large2.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
nullish.js [nullish] Add support for nullish operator 2019-08-21 15:48:34 +00:00
numeric-separator.js [harmony-numeric-separator] remove flag 2019-08-01 10:10:24 +00:00
object-fromentries.js Remove always-true --harmony-object-from-entries runtime flag 2019-06-24 15:01:01 +00:00
optional-catch-binding-breaks.js Remove always-true --harmony-optional-catch-binding runtime flag 2018-06-05 16:24:20 +00:00
optional-catch-binding.js Remove always-true --harmony-optional-catch-binding runtime flag 2018-06-05 16:24:20 +00:00
optional-chaining.js fix delete + optional chain jump condition 2019-08-19 15:21:20 +00:00
private-accessors.js [class] implement private accessors 2019-08-30 10:16:29 +00:00
private-fields-ic.js [class] Remove flags for class fields 2019-05-01 02:02:51 +00:00
private-fields-special-object.js [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
private-fields-static.js [class] Remove flags for class fields 2019-05-01 02:02:51 +00:00
private-fields.js [class] Remove flags for class fields 2019-05-01 02:02:51 +00:00
private-methods.js [class] fix super access in private methods 2019-08-07 10:56:43 +00:00
private-name-scopes.js [class] Fix private name scope chain 2019-09-06 00:52:07 +00:00
private-symbols.js [builtins] Port Proxy has trap to CSA 2017-08-16 13:05:45 +00:00
private.js Remove %_ClassOf and SharedFunctionInfo::instance_class_name 2018-02-15 11:52:08 +00:00
promise-all-settled.js [ESNext] Implement Promise.allSettled 2019-04-12 17:49:17 +00:00
promise-prototype-finally.js [mjsunit] Move the implementation of testAsync into a separate file 2018-08-01 08:46:24 +00:00
public-instance-class-fields.js [class] Remove flags for class fields 2019-05-01 02:02:51 +00:00
public-static-class-fields.js [class] Remove flags for class fields 2019-05-01 02:02:51 +00:00
regexp-change-exec.js Remove all harmony runtime flags which shipped in M51 2016-06-24 01:13:10 +00:00
regexp-dotall.js Ship RegExp dotAll mode / s flag 2017-07-28 08:17:38 +00:00
regexp-match-indices.js Reland "[regexp] Implement the match indices proposal" 2019-09-05 15:13:39 +00:00
regexp-named-captures.js Remove always-true --harmony-regexp-named-captures runtime flag 2018-06-05 08:27:08 +00:00
regexp-overriden-exec.js [turbofan] Brokerize reduction of RegExp.prototype.test 2019-07-17 11:40:51 +00:00
regexp-property-binary.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-char-class.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-emoji-flag-sequence-generated.js [regexp] Update RegExp property sequence data to Unicode 12 2019-03-06 10:59:12 +00:00
regexp-property-emoji-keycap-sequence-generated.js [regexp] Update RegExp property sequence data to Unicode 12 2019-03-06 10:59:12 +00:00
regexp-property-emoji-modifier-sequence-generated.js [regexp] Update RegExp property sequence data to Unicode 12 2019-03-06 10:59:12 +00:00
regexp-property-emoji-tag-sequence-generated.js [regexp] Update RegExp property sequence data to Unicode 12 2019-03-06 10:59:12 +00:00
regexp-property-emoji-zwj-sequence-generated.js [regexp] Update RegExp property sequence data to Unicode 12 2019-03-06 10:59:12 +00:00
regexp-property-enumerated.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-exact-match.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-general-category.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-invalid.js Reland "[regexp] implement regexp property sequence proposal" 2018-09-19 08:39:22 +00:00
regexp-property-lu-ui0.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-lu-ui1.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-lu-ui2.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-lu-ui3.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-lu-ui4.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-lu-ui5.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-lu-ui6.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-lu-ui7.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-lu-ui8.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-lu-ui9.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-lu-ui.js [mjsunit] Split up long RegExp tests 2017-11-22 13:38:52 +00:00
regexp-property-script-extensions.js Roll ICU to ICU 62.1 2018-07-11 10:24:26 +00:00
regexp-property-scripts.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-sequence.js [regexp] Expand test coverage for sequence properties 2018-09-20 13:00:35 +00:00
regexp-property-special.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regress-generators-resume.js [Test] Add PrepareForOptimization to some mjsunit tests. 2019-05-03 13:32:32 +00:00
set-prototype-of.js
sharedarraybuffer-stress.js [mjsunit] Add more tests for shared array buffers / memories 2019-07-17 14:08:38 +00:00
sharedarraybuffer-worker-gc-stress.js [mjsunit] Add more tests for shared array buffers / memories 2019-07-17 14:08:38 +00:00
sharedarraybuffer.js [arraybuffer] Uncomment test/mjsunit/harmony/sharedarraybuffer.js 2019-04-30 18:36:28 +00:00
string-matchAll-deleted-matchAll.js Remove always-true --harmony-string-matchall runtime flag 2019-04-25 10:46:05 +00:00
string-matchAll.js Remove always-true --harmony-string-matchall runtime flag 2019-04-25 10:46:05 +00:00
symbol-async-iterator.js Remove always-true --harmony-async-iteration runtime flag 2018-01-12 20:14:34 +00:00
symbol-description.js Remove always-true --harmony-symbol-description runtime flag 2019-02-14 10:36:05 +00:00
to-length.js
to-name.js [intrinsics] Remove obsolete intrinsics. 2016-07-12 06:41:23 +00:00
to-number.js [cleanup] Remove a lot of dead intrinsics/runtime functions. 2018-09-20 12:48:57 +00:00
to-string.js Port ToString to Torque 2019-04-23 13:55:11 +00:00
trailing-commas-length.js [cleanup] Remove on-by-default --harmony-trailing-commas flag 2017-06-13 00:09:23 +00:00
well-formed-json-stringify-checked.js Remove always-true --harmony-json-stringify runtime flag 2019-04-24 14:51:09 +00:00
well-formed-json-stringify-unchecked.js Remove always-true --harmony-json-stringify runtime flag 2019-04-24 14:51:09 +00:00