v8/test/cctest
Joyee Cheung 7fa12e2a4f [class] fix undefined private name access in computed property keys
This patch implements https://github.com/tc39/proposal-class-fields/pull/269
and makes sure we always throw TypeError when there is invalid private
name access in computed property keys.

Before this patch, private name variables of private fields and methods
are initialized together with computed property keys in the order they
are declared. Accessing undefined private names in the computed property
keys thus fail silently.

After this patch, we initialize the private name variables of private
fields before we initialize the computed property keys, so that invalid
access to private fields in the computed keys can be checked in the IC.
We now also initialize the brand early, so that invalid access to private
methods or accessors in the computed keys throw TypeError during brand
checks - and since these accesses are guarded by brand checks, we can
create the private methods and accessors after the class is
defined, and merge the home object setting with the creation
of the closures.

Bug: v8:8330, v8:9611
Change-Id: I01363f7befac6cf9dd28ec229b99a99102bcf012
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1846571
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64225}
2019-10-10 19:43:01 +00:00
..
compiler [ptr-compr] Fix build issues on win64 and mac64 2019-10-09 13:02:01 +00:00
heap [api, heap] Implement TracedReference 2019-10-07 22:34:54 +00:00
interpreter [class] fix undefined private name access in computed property keys 2019-10-10 19:43:01 +00:00
libplatform Replace base::make_unique by std::make_unique 2019-09-10 11:21:51 +00:00
libsampler [cpu-profiler] Only record SIGPROF-based samples for samplers that request samples 2019-02-13 09:29:38 +00:00
parsing [Parsing] Fix a bug in UpdateBufferPointers where it incorrectly updated the buffer range. 2019-08-13 14:20:17 +00:00
torque Avoid defining class name Label as type alias in cctest because it is used by V8 2019-09-09 07:06:40 +00:00
wasm [wasm] Move break point info list from module to Script. 2019-10-10 11:26:43 +00:00
assembler-helper-arm.cc [cleanup] Drop some dead (Macro)Assembler code 2019-05-27 08:53:28 +00:00
assembler-helper-arm.h Move handles-related files to src/handles 2019-05-23 06:00:15 +00:00
BUILD.gn Reland x6 [arraybuffer] Rearchitect backing store ownership 2019-09-09 13:07:42 +00:00
cctest.cc Replace base::make_unique by std::make_unique 2019-09-10 11:21:51 +00:00
cctest.h [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
cctest.status [arm64-simulator] Disable load poison disasm tests 2019-10-07 23:09:27 +00:00
collector.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
DEPS Reland "[tracing] Roll perfetto @ 28b633cd" 2019-09-06 13:42:02 +00:00
disasm-regex-helper.cc [turbofan] Improve load poisoning tests. 2019-07-02 17:55:04 +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 Move remaining files in src/ 2019-05-24 18:24:36 +00:00
gay-fixed.h Move utility code to src/utils 2019-05-23 14:13:34 +00:00
gay-precision.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
gay-precision.h Move utility code to src/utils 2019-05-23 14:13:34 +00:00
gay-shortest.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
gay-shortest.h Move utility code to src/utils 2019-05-23 14:13:34 +00:00
manually-externalized-buffer.h Reland x6 [arraybuffer] Rearchitect backing store ownership 2019-09-09 13:07:42 +00:00
OWNERS [owners] Remove redundant OWNERS files in test/ 2019-06-24 12:44:32 +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 [csa] move TNode to separate header 2019-09-12 14:48:03 +00:00
test-accessors.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-allocation.cc [utils] Fix Malloced implementation 2019-07-15 09:59:22 +00:00
test-api-accessors.cc [inspector] Add "disableBreaks" parameter to "Runtime.evaluate". 2019-09-27 12:16:01 +00:00
test-api-array-buffer.cc Avoid deduplication overhead for backing stores managed by embedder 2019-09-24 10:39:25 +00:00
test-api-interceptors.cc [inspector] Add "disableBreaks" parameter to "Runtime.evaluate". 2019-09-27 12:16:01 +00:00
test-api-stack-traces.cc [debug] Report line numbers for Function constructor functions correctly 2019-08-08 13:49:17 +00:00
test-api-typed-array.cc [typed-arrays] Introduce JSTypedArray::kMaxSizeInHeap constant 2019-06-18 17:19:19 +00:00
test-api.cc [ic] Remove premonomorphic state 2019-10-02 15:21:15 +00:00
test-api.h [test-api] Extract arraybufs and typed arrays 2019-06-17 15:27:01 +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 Renaming variables which conflict with macro definition in Windows SDK 2019-09-04 20:37:48 +00:00
test-assembler-arm.cc [cleanup] Eliminate non-const reference parameters 2019-09-10 09:31:07 +00:00
test-assembler-ia32.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-assembler-mips64.cc [mips][heap] Remove dynamic allocation flag on NewNumber functions 2019-09-17 14:07:59 +00:00
test-assembler-mips.cc [mips][heap] Remove dynamic allocation flag on NewNumber functions 2019-09-17 14:07:59 +00:00
test-assembler-ppc.cc Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-assembler-s390.cc [s390]tm family test: change a label name 2019-07-22 20:05:10 +00:00
test-assembler-x64.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-atomicops.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-backing-store.cc Reland x6 [arraybuffer] Rearchitect backing store ownership 2019-09-09 13:07:42 +00:00
test-bignum-dtoa.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-bignum.cc Move remaining files in src/ 2019-05-24 18:24:36 +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 Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-code-stub-assembler.cc [cleanup] Remove dead code related to side-effect checks 2019-10-07 12:11:49 +00:00
test-compiler.cc [debug] Don't disable the RegExp compilation cache when debugger is active. 2019-09-18 19:14:36 +00:00
test-constantpool.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-conversions.cc Reland "[utils] Make BitField final" 2019-07-29 14:20:58 +00:00
test-cpu-profiler.cc Reland "[tracing] Roll perfetto @ 28b633cd" 2019-09-06 13:42:02 +00:00
test-date.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-debug-helper.cc [tools] Use instance types of known Maps in v8_debug_helper 2019-09-20 16:00:59 +00:00
test-debug.cc Remove JS natives support, step 1 2019-10-02 10:21:12 +00:00
test-decls.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-deoptimization.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-dictionary.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-arm64.cc [arm64][asan] Add missing CLEANUP to test 2019-10-07 14:19:13 +00:00
test-disasm-arm.cc Add disasm for vshl (register) on arm 2019-09-18 19:21:06 +00:00
test-disasm-ia32.cc [wasm-simd] Implement f64x2 comparisons for ia32 2019-10-09 18:14:52 +00:00
test-disasm-mips64.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-mips.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-ppc.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-s390.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-x64.cc Revert "[wasm-simd] Implement F64x2ConvertI64x2 for x64" 2019-09-09 18:04:14 +00:00
test-diy-fp.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-double.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-dtoa.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-elements-kind.cc Add new nonextensible element kinds 2019-08-28 17:24:49 +00:00
test-extra.js [js] Remove CORE JS Natives (prologue.js), port extra utils to C++/Torque 2019-01-07 11:57:46 +00:00
test-factory.cc Move handles-related files to src/handles 2019-05-23 06:00:15 +00:00
test-fast-dtoa.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-feedback-vector.cc Reland "[ic] Don't transition to premonomorphic state" 2019-08-05 15:51:47 +00:00
test-feedback-vector.h Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-field-type-tracking.cc [cleanup] Eliminate non-const reference parameters 2019-09-10 09:31:07 +00:00
test-fixed-dtoa.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-flags.cc [regexp] Multiple interpreter executions tier-up 2019-09-09 15:43:42 +00:00
test-func-name-inference.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-fuzz-arm64.cc Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-global-handles.cc [api] Advance deprecations in EmbedderHeapTracer 2019-10-04 19:05:12 +00:00
test-global-object.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-hashcode.cc [ptr-compr] Pass Isolate to JSObject::NormalizeProperties() 2019-06-11 11:11:10 +00:00
test-hashmap.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-heap-profiler.cc [cleanup] Eliminate non-const reference parameters 2019-09-10 09:31:07 +00:00
test-icache.cc Move handles-related files to src/handles 2019-05-23 06:00:15 +00:00
test-identity-map.cc Move utility code to src/utils 2019-05-23 14:13:34 +00:00
test-inobject-slack-tracking.cc Use consistent capitalization rules for instance types 2019-10-09 17:44:42 +00:00
test-inspector.cc [inspector] fix typo in fromUTF16LE and cleanup test 2019-06-26 11:50:31 +00:00
test-intl.cc Better GetAvilableLocales check resources 2019-06-21 23:04:09 +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-weak-refs.cc [WeakRefs] Make cleanup callback run as a task 2019-07-30 12:19:39 +00:00
test-liveedit.cc Add quotes around unexpected token SyntaxError 2019-06-11 06:11:58 +00:00
test-lockers.cc Replace base::make_unique by std::make_unique 2019-09-10 11:21:51 +00:00
test-log-stack-tracer.cc [cleanup] Remove unused TickSample class from the public API 2019-08-22 07:27:35 +00:00
test-log.cc [cleanup][heap] Improve heap iterator naming 2019-06-17 14:38:02 +00:00
test-macro-assembler-arm64.cc [ptr-compr][arm64] Use ldr_w to load on 32 bits for CompressedHeapConstants 2019-06-21 07:37:04 +00:00
test-macro-assembler-arm.cc [cleanup] Remove 'typedef struct' and 'typedef enum' 2019-05-28 12:17:35 +00:00
test-macro-assembler-mips64.cc [mips64][codegen] Remove dead argument to Assember::stop 2019-07-12 12:06:27 +00:00
test-macro-assembler-mips.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-macro-assembler-x64.cc [codegen][x64] Add an in place version of Smi(Un)Tag 2019-09-27 13:03:28 +00:00
test-managed.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-mementos.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-modules.cc [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
test-object.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-orderedhashtable.cc [runtime] Throw range error on too many properties 2019-08-28 15:58:04 +00:00
test-parsing.cc [class] fix undefined private name access in computed property keys 2019-10-10 19:43:01 +00:00
test-platform.cc s390: Edited Generate_CEntry to correctly return buffer when built with clang 2018-09-05 07:01:16 +00:00
test-pointer-auth-arm64.cc [arm64] Add support for pointer authentication instructions 2019-07-24 17:00:26 +00:00
test-poison-disasm-arm64.cc [turboprop] Disable Float poisoning test 2019-10-07 16:58:35 +00:00
test-poison-disasm-arm.cc Reland "[TurboProp] Add MidTierMachineLoweringPhase to avoid Late/MemoryOptimizationPhases" 2019-09-26 16:39:15 +00:00
test-profile-generator.cc [cleanup] Eliminate non-const reference parameters 2019-09-10 09:31:07 +00:00
test-random-number-generator.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-regexp.cc [regexp] Remove UseCounter for matchAll with non-g RegExp 2019-10-07 09:04:23 +00:00
test-representation.cc Move relevant files to src/objects 2019-05-20 08:57:47 +00:00
test-roots.cc Remove noscript_shared_function_infos 2019-09-11 15:18:24 +00:00
test-sampler-api.cc [cleanup] Replace simple typedefs by using 2019-05-27 12:39:49 +00:00
test-serialize.cc [debug] Don't disable the RegExp compilation cache when debugger is active. 2019-09-18 19:14:36 +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 Unwind V8 frames correctly on Windows ARM64 2019-07-31 06:24:45 +00:00
test-strings.cc [strings] Introduce "is not integer index" bit 2019-10-08 16:12:52 +00:00
test-strtod.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-symbols.cc Move utility code to src/utils 2019-05-23 14:13:34 +00:00
test-sync-primitives-arm64.cc Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
test-sync-primitives-arm.cc Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
test-thread-termination.cc Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +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 Replace base::make_unique by std::make_unique 2019-09-10 11:21:51 +00:00
test-traced-value.cc [tracing] Improve tracing signals for compilation/optimization. 2019-03-25 14:49:08 +00:00
test-transitions.cc [ptr-compr] Isolatify Map::MigrateToMap() and friends 2019-07-03 08:08:05 +00:00
test-transitions.h Move relevant files to src/objects 2019-05-20 08:57:47 +00:00
test-typedarrays.cc [api] Add [Shared]ArrayBuffer::GetBackingStore() 2019-09-19 10:03:02 +00:00
test-types.cc [turbofan] Disentangle header include chains 2019-07-05 14:26:05 +00:00
test-unboxed-doubles.cc [object] Remove MutableHeapNumber 2019-08-20 19:04:04 +00:00
test-unscopables-hidden-prototype.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-unwinder.cc [cleanup] Avoid {Object::operator->} 2019-05-23 07:52:07 +00:00
test-usecounters.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-utils-arm64.cc Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-utils-arm64.h Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-utils.cc [cleanup] Replace simple typedefs by using 2019-05-27 12:39:49 +00:00
test-version.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-weakmaps.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-weaksets.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
testcfg.py Reland "Preparing v8 to use with python3 /test" 2019-03-20 09:56:06 +00:00
trace-extension.cc [cleanup] Remove unused TickSample class from the public API 2019-08-22 07:27:35 +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