v8/test/cctest
Nicolò Ribaudo b3b9466a05 [class] Improve errors for reinitialized private elements
Previously V8 was reusing the error fur duplicate declarations, using
the private name for class fields or the class name for class methods
as the redeclared identifier.

    class A { constructor(o) { return o } }
    class B extends A { #x }
    class C extends A { #x() {} }
    let D = (0, class extends A { #x() {} });

    new B(new B({})) // Identifier '#x' has already been declared
    new C(new C({})) // Identifier 'C' has already been declared
    new D(new D({})) // Identifier '' has already been declared

This patch changes it to use error messages that better explain what's
happening:

    new B(new B({})) // Cannot initialize #x twice on the same object
    new C(new C({})) // Cannot initialize private methods of
                     // class C twice on the same object
    new D(new D({})) // Cannot initialize private methods of
                     // class anonymous twice on the same object

I initially tried to use the same message for both fields and methods,
but the problem with that is that when initializing fields we only
have access to the field name, while when initializing methods we only
have access to the class name (using the "private brand" symbol).
However, almost all the error messages are different for private fields
and for methods so this shouldn't be a problem.

Bug: v8:12042
Change-Id: Iaa50c16e4fa5c0646ad9ef2aa7e65bb649b3fce2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3078362
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Joyee Cheung <joyee@igalia.com>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76279}
2021-08-13 10:04:36 +00:00
..
compiler [Compiler] Remove untrusted code mitigations. 2021-08-12 12:58:24 +00:00
heap Introduce v8_enable_virtual_memory_cage 2021-08-11 16:13:42 +00:00
interpreter [class] Improve errors for reinitialized private elements 2021-08-13 10:04:36 +00:00
libplatform [cleanup] Remove DISALLOW_COPY_AND_ASSIGN in test/{cctest,fuzzer,inspector} 2020-11-10 01:24:43 +00:00
libsampler [base] Avoid pthread_rwlock_t on Mac 2021-07-30 10:51:09 +00:00
parsing Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
torque [torque] Add LazyNode support 2021-02-23 16:51:53 +00:00
wasm Reland "[wasm] fix float to/from int reinterpretation tests" 2021-08-09 21:44:49 +00:00
assembler-helper-arm.cc [test, arm] Take isolate as argument for AssembleCode 2020-11-18 14:17:05 +00:00
assembler-helper-arm.h [test, arm] Take isolate as argument for AssembleCode 2020-11-18 14:17:05 +00:00
BUILD.gn [Compiler] Remove untrusted code mitigations. 2021-08-12 12:58:24 +00:00
cctest-utils.h Move DISABLE_ASAN macro to base/sanitizer/asan.h 2021-05-27 11:03:23 +00:00
cctest.cc Introduce v8_enable_virtual_memory_cage 2021-08-11 16:13:42 +00:00
cctest.h [cctest][wasm] Ensure FLAG_stack_size has an effect 2021-05-03 14:24:46 +00:00
cctest.status Revert "[wasm][diagnostics] Support WasmCode in gdb JIT integration" 2021-08-12 23:59:14 +00:00
collector.h [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
DEPS Reland "[tracing] Roll perfetto @ 28b633cd" 2019-09-06 13:42:02 +00:00
disasm-regex-helper.cc [utils] Remove StringBuilder class 2021-06-22 12:37:42 +00:00
disasm-regex-helper.h [turbofan] Improve load poisoning tests. 2019-07-02 17:55:04 +00:00
expression-type-collector-macros.h [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
gay-fixed.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
gay-fixed.h Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
gay-precision.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
gay-precision.h Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
gay-shortest.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
gay-shortest.h Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
manually-externalized-buffer.h [api] Deprecate [Shared]ArrayBuffer::Externalize/GetContents and constructors 2019-10-29 22:01:54 +00:00
OWNERS Update OWNERS in test/* 2021-02-25 14:26:24 +00:00
print-extension.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
print-extension.h [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
profiler-extension.cc Reland "[Compile] Ensure we don't access the native context during bytecode finalization." 2018-10-26 22:33:56 +00:00
profiler-extension.h [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
scope-test-helper.h [parser] Various Scope and Context speedups 2019-01-28 13:06:03 +00:00
setup-isolate-for-tests.cc [interpreter] Always put bytecode handlers in builtins table 2018-09-20 09:58:15 +00:00
setup-isolate-for-tests.h Move initialization code into src/init 2019-05-16 12:36:15 +00:00
test-access-checks.cc Replace CHECK(false) by UNREACHABLE() 2017-12-19 18:58:07 +00:00
test-accessor-assembler.cc [ext-code-space][ic] Migrate IC handlers to CodeT 2021-06-17 14:55:31 +00:00
test-accessors.cc [sparkplug] Support shorter builtin calls, pt.2 2021-03-17 14:35:14 +00:00
test-allocation.cc [cleanup][test] Remove redundant NOLINT annotations 2021-04-30 11:46:14 +00:00
test-api-accessors.cc Remove one-shot function optimizations. 2021-05-21 12:38:18 +00:00
test-api-array-buffer.cc [base] Create base/strings.h 2021-06-22 16:55:32 +00:00
test-api-icu.cc [Intl] Update ICU to 69-1 2021-04-20 22:37:09 +00:00
test-api-interceptors.cc [runtime] Refactor interceptor handling 2021-06-09 09:16:42 +00:00
test-api-stack-traces.cc [base] Create base/strings.h 2021-06-22 16:55:32 +00:00
test-api-typed-array.cc [base] Create base/strings.h 2021-06-22 16:55:32 +00:00
test-api-wasm.cc [cleanup] Remove API for the WebAssembly Threads origin trial 2021-02-16 12:30:54 +00:00
test-api.cc Revert "[wasm][diagnostics] Support WasmCode in gdb JIT integration" 2021-08-12 23:59:14 +00:00
test-api.h Reland "Fix -Wimplicit-int-float-conversions." 2021-06-29 16:36:18 +00:00
test-array-list.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-assembler-arm64.cc [wasm-simd] Remove PrefetchTemporal and PrefetchNonTemporal operations 2021-03-22 17:47:49 +00:00
test-assembler-arm.cc [wasm-simd][arm] Fuse extadd_pairwise and add SIMD on arm. 2021-06-28 14:26:00 +00:00
test-assembler-ia32.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-assembler-mips64.cc [cleanup][test] Remove redundant NOLINT annotations 2021-04-30 11:46:14 +00:00
test-assembler-mips.cc [cleanup][test] Remove redundant NOLINT annotations 2021-04-30 11:46:14 +00:00
test-assembler-ppc.cc Reland "Reland "[deoptimizer] Change deopt entries into builtins"" 2020-10-21 06:01:38 +00:00
test-assembler-riscv64.cc [riscv64] Add RVC Instr CB and fix some RVC Instr CA 2021-05-27 01:52:40 +00:00
test-assembler-s390.cc Reland "Reland "[deoptimizer] Change deopt entries into builtins"" 2020-10-21 06:01:38 +00:00
test-assembler-x64.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-atomicops.cc Fix data race in TypedArray::copyWithin 2021-07-16 11:41:24 +00:00
test-bignum-dtoa.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-bignum.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-bit-vector.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-circular-queue.cc Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
test-code-layout.cc [code] Make metadata offsets relative to metadata section 2020-10-27 10:49:13 +00:00
test-code-pages.cc [test] Replace turboprop_as_toptier with always_sparkplug 2021-05-03 12:33:38 +00:00
test-code-stub-assembler.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-compiler.cc [codegen] Use ScriptDetails as parameter in CompilationCacheScript 2021-08-04 08:24:22 +00:00
test-concurrent-descriptor-array.cc [heap, infra] Remove --local-heaps and --concurrent-allocation flags 2021-02-01 11:01:26 +00:00
test-concurrent-feedback-vector.cc [heap, infra] Remove --local-heaps and --concurrent-allocation flags 2021-02-01 11:01:26 +00:00
test-concurrent-js-array.cc Reland "[compiler] Direct heap reads for JSArrayRef" 2021-02-22 12:15:50 +00:00
test-concurrent-prototype.cc [cleanup] Remove synchronized_ from map accessors 2021-05-17 15:07:46 +00:00
test-concurrent-script-context-table.cc [cleanup] Remove synchronized_ from slot_count and used accessors 2021-05-20 15:19:48 +00:00
test-concurrent-string.cc [string] Skip concurrent tests if FLAG_single_generation is on 2021-06-09 12:30:28 +00:00
test-concurrent-transition-array.cc Reland "[heap] Introduce LocalIsolate for main thread" 2020-11-19 10:44:43 +00:00
test-constantpool.cc PPC: [cleanup] Replace all remaining Min/Max uses with std::min/max 2020-11-25 08:49:53 +00:00
test-conversions.cc [cleanup] Remove V8_2PART_UINT64_C macro 2020-07-20 11:52:17 +00:00
test-cpu-profiler.cc [cpu-profiler] Disable logging in lazy mode when no profiles are active 2021-07-12 22:36:11 +00:00
test-date.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-debug-helper.cc Allowing map word to be used for other state in GC header. 2021-04-12 17:34:13 +00:00
test-debug.cc [base] Create base/strings.h 2021-06-22 16:55:32 +00:00
test-decls.cc [api] Create v8::String::NewFromLiteral that returns Local<String> 2020-03-09 12:02:07 +00:00
test-deoptimization.cc [base] Create base/strings.h 2021-06-22 16:55:32 +00:00
test-descriptor-array.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-dictionary.cc Disable --stress-concurrent-allocation for tests that change free lists 2020-09-03 11:15:39 +00:00
test-disasm-arm64.cc [wasm-simd] Remove PrefetchTemporal and PrefetchNonTemporal operations 2021-03-22 17:47:49 +00:00
test-disasm-arm.cc [wasm-simd][arm] Fuse extadd_pairwise and add SIMD on arm. 2021-06-28 14:26:00 +00:00
test-disasm-ia32.cc Reland "[wasm-simd][ia32] Implement i64x2 signed compares" 2021-02-12 19:30:01 +00:00
test-disasm-mips64.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-disasm-mips.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-disasm-ppc.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-disasm-riscv64.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-disasm-s390.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-disasm-x64.cc [x64][ia32] Move more AVX_OP into SharedTurboAssembler 2021-04-14 23:46:56 +00:00
test-diy-fp.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-double.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-dtoa.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-elements-kind.cc [factory] Remove deprecated JSFunction ctors 2020-11-11 06:12:35 +00:00
test-factory.cc [heap] Cache regular code object size 2021-06-17 13:35:21 +00:00
test-fast-dtoa.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-feedback-vector.cc Fix FeedbackNexus::SetSpeculationMode 2021-05-27 14:39:03 +00:00
test-feedback-vector.h [runtime] Rename Builtins::Name to Builtin 1/2 2021-06-07 20:05:44 +00:00
test-field-type-tracking.cc [compiler] Support concurrent map updates 2021-08-11 10:13:32 +00:00
test-fixed-dtoa.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-flags.cc [no-wasm][flags] Remove wasm flags 2021-03-16 07:31:25 +00:00
test-func-name-inference.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-fuzz-arm64.cc Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-global-handles.cc [heap] Make creation of NewSpace and NewLargeObjectSpace optional 2021-05-04 06:47:54 +00:00
test-global-object.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-hashcode.cc [dict-proto] Rename v8_dict_mode_prototypes flag 2021-03-29 11:53:45 +00:00
test-hashmap.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-heap-profiler.cc [profiler] Use description for Symbols in Heap snapshots. 2021-07-28 14:18:36 +00:00
test-helper-riscv64.cc Add RISC-V backend 2021-02-09 17:06:36 +00:00
test-helper-riscv64.h Add RISC-V backend 2021-02-09 17:06:36 +00:00
test-icache.cc [wasm] Remove low-level test-only functions 2021-07-15 11:07:26 +00:00
test-identity-map.cc [string] Remove FLAG_thin_string and enable it all the time 2021-06-09 09:52:48 +00:00
test-ignition-statistics-extension.cc Fix counting ignition dispatches 2021-06-07 18:47:24 +00:00
test-inobject-slack-tracking.cc Refactor of ScopeInfo::ContextSlotIndex 2021-05-19 18:12:40 +00:00
test-inspector.cc Implement protocol::Binary to/from base64 conversion 2020-04-30 08:46:05 +00:00
test-intl.cc [lookup] Refactor LookupIterator "property or element" creation 2020-01-09 18:39:11 +00:00
test-javascript-arm64.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-js-arm64-variables.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-js-to-wasm.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-js-weak-refs.cc Reland "[weakrefs] Clear unregister token-related fields when clearing weak cells" 2021-06-02 14:46:43 +00:00
test-liveedit.cc Add quotes around unexpected token SyntaxError 2019-06-11 06:11:58 +00:00
test-local-handles.cc [heap, infra] Remove --local-heaps and --concurrent-allocation flags 2021-02-01 11:01:26 +00:00
test-lockers.cc [ptr-cage] Factor CodeRange out of MemoryAllocator and share along with ptr cage 2021-04-28 19:17:00 +00:00
test-log-stack-tracer.cc [base] Create base/strings.h 2021-06-22 16:55:32 +00:00
test-log.cc [heap] Skip more tests for TPH 2021-06-29 07:37:19 +00:00
test-macro-assembler-arm64.cc [runtime] Rename Builtins::Name to Builtin 1/2 2021-06-07 20:05:44 +00:00
test-macro-assembler-arm.cc [runtime] Rename Builtins::Name to Builtin 1/2 2021-06-07 20:05:44 +00:00
test-macro-assembler-mips64.cc [mips] Fix build failed 2021-06-15 04:24:28 +00:00
test-macro-assembler-mips.cc [runtime] Rename Builtins::Name to Builtin 1/2 2021-06-07 20:05:44 +00:00
test-macro-assembler-riscv64.cc [runtime] Rename Builtins::Name to Builtin 1/2 2021-06-07 20:05:44 +00:00
test-macro-assembler-x64.cc [runtime] Rename Builtins::Name to Builtin 1/2 2021-06-07 20:05:44 +00:00
test-managed.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-mementos.cc [heap] Make creation of NewSpace and NewLargeObjectSpace optional 2021-05-04 06:47:54 +00:00
test-modules.cc Revert "Resolving or rejecting promises doesn't execute script" 2021-04-20 09:45:07 +00:00
test-object.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-orderedhashtable.cc [dict-proto] make small ordered hash tables use InternalIndex, too 2020-10-29 13:00:53 +00:00
test-parsing.cc [parsing] Split FLAG_lazy into three subflags 2021-07-01 17:14:15 +00:00
test-persistent-handles.cc [heap, infra] Remove --local-heaps and --concurrent-allocation flags 2021-02-01 11:01:26 +00:00
test-platform.cc [test] Fix StackAlignment test 2020-10-14 10:48:27 +00:00
test-pointer-auth-arm64.cc [arm64][cfi] Enable sim_abort_on_bad_auth by default. 2021-02-05 10:23:40 +00:00
test-profile-generator.cc [base] Create base/strings.h 2021-06-22 16:55:32 +00:00
test-property-details.cc [dict-proto] Allow storing certain PropertyDetails in single byte 2021-02-04 13:45:13 +00:00
test-ptr-compr-cage.cc Revert "[ptr-cage] Better support sharing CodeRange with re-embedded builtins" 2021-05-13 21:40:27 +00:00
test-random-number-generator.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-regexp.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-representation.cc Move relevant files to src/objects 2019-05-20 08:57:47 +00:00
test-roots.cc [heap] Use BasicMemoryChunk::FromHeapObject more 2020-06-17 14:05:48 +00:00
test-sampler-api.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-serialize.cc [codegen] Use StrictEquals for host defined options code cache checks 2021-08-09 14:15:01 +00:00
test-simple-riscv64.cc [cleanup][test] Remove redundant NOLINT annotations 2021-04-30 11:46:14 +00:00
test-smi-lexicographic-compare.cc [cleanup] Eliminate non-const reference parameters 2019-09-10 09:31:07 +00:00
test-stack-unwinding-win64.cc Remove windows.h from win32-headers.h 2021-08-03 16:07:16 +00:00
test-strings.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-strtod.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-swiss-name-dictionary-csa.cc [runtime] Rename Builtins::Name to Builtin 2/2 2021-06-14 12:48:46 +00:00
test-swiss-name-dictionary-infra.cc Reland [dict-proto] C++ implementation of SwissNameDictionary, pt. 10 2021-03-24 17:12:21 +00:00
test-swiss-name-dictionary-infra.h Reland [dict-proto] C++ implementation of SwissNameDictionary, pt. 10 2021-03-24 17:12:21 +00:00
test-swiss-name-dictionary-shared-tests.h Reland "[dict-proto] SIMD support for SwissNameDictionary in Torque" 2021-03-31 13:01:34 +00:00
test-swiss-name-dictionary.cc Reland "[dict-proto] SIMD support for SwissNameDictionary in Torque" 2021-03-31 13:01:34 +00:00
test-symbols.cc [runtime] Rename Name::Hash() to Name::EnsureHash() 2020-11-16 10:48:15 +00:00
test-sync-primitives-arm64.cc Reland "Reland "[deoptimizer] Change deopt entries into builtins"" 2020-10-21 06:01:38 +00:00
test-sync-primitives-arm.cc [test, arm] Take isolate as argument for AssembleCode 2020-11-18 14:17:05 +00:00
test-thread-termination.cc [bigint] Move String-to-BigInt parsing to src/bigint/ 2021-07-30 14:19:48 +00:00
test-threads.cc Replace base::make_unique by std::make_unique 2019-09-10 11:21:51 +00:00
test-trace-event.cc [cleanup] Remove DISALLOW_COPY_AND_ASSIGN in test/{cctest,fuzzer,inspector} 2020-11-10 01:24:43 +00:00
test-traced-value.cc [tracing] Improve tracing signals for compilation/optimization. 2019-03-25 14:49:08 +00:00
test-transitions.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-transitions.h [asserts] Make assert scopes LocalHeap friendly 2020-11-20 17:39:14 +00:00
test-typedarrays.cc [api] Remove deprecated [Shared]ArrayBuffer API 2021-03-12 16:24:42 +00:00
test-types.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-unscopables-hidden-prototype.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-unwinder-code-pages.cc [runtime] Rename Builtins::Name to Builtin 2/2 2021-06-14 12:48:46 +00:00
test-usecounters.cc [atomics] Remove the deprecated Atomics.wake 2020-08-10 23:02:17 +00:00
test-utils-arm64.cc [arm64][cleanup] Remove CPURegister::Is and CPURegister::is 2019-11-14 12:58:09 +00:00
test-utils-arm64.h Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-utils.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-v8windbg.cc [tools] Add v8windbg, a WinDbg extension for V8 2020-02-18 19:16:18 +00:00
test-verifiers.cc [cleanup] Remove atomic kRelaxed accessors in favour for non-atomic ones 2021-03-08 10:57:19 +00:00
test-version.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-virtual-memory-cage.cc Introduce v8_enable_virtual_memory_cage 2021-08-11 16:13:42 +00:00
test-weakmaps.cc [test] Fix or skip CHECKs in tests for TPH 2021-05-03 09:05:08 +00:00
test-weaksets.cc [test] Fix or skip CHECKs in tests for TPH 2021-05-03 09:05:08 +00:00
test-web-snapshots.cc [sparkplug] Add support to flush only baseline code 2021-08-04 08:22:18 +00:00
testcfg.py Reland "Preparing v8 to use with python3 /test" 2019-03-20 09:56:06 +00:00
trace-extension.cc [api] Create v8::String::NewFromLiteral that returns Local<String> 2020-03-09 12:02:07 +00:00
trace-extension.h [cleanup] Remove unused TickSample class from the public API 2019-08-22 07:27:35 +00:00
unicode-helpers.cc Move string-related files to src/strings 2019-05-21 07:17:48 +00:00
unicode-helpers.h Move string-related files to src/strings 2019-05-21 07:17:48 +00:00