v8/test/cctest
Leszek Swirski 5e2c23e2d3 [destructuring] Get non-coercible message contents in runtime
For desrtucturing assignments from null/undefined, we throw an error
that references the destructuring object literal's property name, e.g.
for
  var { x } = null;
we report that we cannot destructure 'x' from null.

Rather than calculating this property during bytecode generation (and
including it in the bytecode as an argument to the type error
constructor), we can calculate it at exception throwing time, by
re-parsing the source in a similar way to the existing call site
rendering.

This slightly decreases bytecode size and slightly decreases the amount
of work the bytecode compiler needs to do. In the future, it could also
allow us to give more detailed error messages, as we now have access to
the entire AST and are on the slow path anyway.

Bug: v8:6499
Change-Id: Icdbd4667db548b4e5e62ef97797a3771b5c1bf72
Reviewed-on: https://chromium-review.googlesource.com/c/1396080
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58706}
2019-01-10 15:23:05 +00:00
..
compiler [ubsan] Fix numerical overflows in the compiler 2019-01-10 11:17:37 +00:00
heap [ubsan] Rename ObjectPtr to Object 2019-01-08 09:08:59 +00:00
interpreter [destructuring] Get non-coercible message contents in runtime 2019-01-10 15:23:05 +00:00
libplatform [tracing] Custom tag for the traceEvents array 2018-05-07 16:54:59 +00:00
libsampler [cleanup] Refactor general tests to use default members. 2018-09-14 14:40:47 +00:00
parsing [parser] Cleaning up adding skippable function preparse data 2019-01-09 15:19:46 +00:00
torque [builtins] Port Frame-related CSA functionality to Torque 2018-12-07 17:13:43 +00:00
wasm [ubsan] Fix numerical overflows in wasm 2019-01-10 12:24:51 +00:00
assembler-helper-arm.cc [cleanup] Remove Isolate parameter from object print 2018-07-12 11:31:57 +00:00
assembler-helper-arm.h [ubsan] Port Object to the new design 2018-12-26 20:54:07 +00:00
BUILD.gn Reland "[deoptimizer] Refactor GenerateDeoptimizationEntries" 2018-12-21 14:30:17 +00:00
cctest.cc [cpu-profiler] Add logging to flaky tests 2019-01-08 15:38:42 +00:00
cctest.h [ia32,root] Remove ebx from ALLOCATABLE_GENERAL_REGISTERS 2018-10-26 08:33:48 +00:00
cctest.status [nojit] Don't allocate executable memory in jitless mode 2019-01-10 10:55:48 +00:00
DEPS [torque]: Add the ability to test Torque functionality with cctest 2018-05-13 10:58:56 +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 Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-fixed.h
gay-precision.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-precision.h
gay-shortest.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-shortest.h
log-eq-of-logging-and-traversal.js [log] Improve log parsing 2018-06-20 13:40:22 +00:00
OWNERS [MIPS] Add Predrag Rudic and Aleksandar Rikalo as owners of MIPS files 2019-01-09 13:40:20 +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] Rename PreParsedScopeData to PreparseData 2019-01-07 14:49:21 +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 [interpreter] Always put bytecode handlers in builtins table 2018-09-20 09:58:15 +00:00
test-access-checks.cc Replace CHECK(false) by UNREACHABLE() 2017-12-19 18:58:07 +00:00
test-accessor-assembler.cc [ubsan] Port Map to the new design 2018-11-13 06:59:12 +00:00
test-accessors.cc [ubsan] Port Code to the new design 2018-11-12 18:47:04 +00:00
test-allocation.cc Clean up VirtualMemory allocation 2018-09-17 10:16:38 +00:00
test-api-accessors.cc [cleanup] Replace 0 and NULL with nullptr for test files. 2018-09-14 12:56:00 +00:00
test-api-interceptors.cc [ubsan] Port JSReceiver and subclasses to the new design 2018-12-08 04:05:50 +00:00
test-api.cc [ubsan] Fix various cases of undefined behavior 2019-01-10 13:52:04 +00:00
test-api.h [ubsan] Replace a few more Object** with alternatives 2018-12-17 14:17:22 +00:00
test-array-list.cc [explicit isolates] Remove GetIsolate from objects.cc 2018-07-13 12:42:14 +00:00
test-assembler-arm64.cc Reland: [wasm] Add more unit tests for trap handler 2018-11-29 16:33:10 +00:00
test-assembler-arm.cc [nojit] Migrate JSEntry variants to builtins 2018-12-07 10:16:06 +00:00
test-assembler-ia32.cc [cleanup] Remove Isolate parameter from object print 2018-07-12 11:31:57 +00:00
test-assembler-mips64.cc [ubsan] Port Object to the new design 2018-12-26 20:54:07 +00:00
test-assembler-mips.cc [ubsan] Port Object to the new design 2018-12-26 20:54:07 +00:00
test-assembler-ppc.cc [ubsan] Port Object to the new design 2018-12-26 20:54:07 +00:00
test-assembler-s390.cc [ubsan] Port Object to the new design 2018-12-26 20:54:07 +00:00
test-assembler-x64.cc [cleanup] Replace old c-style casts with c++ casts. 2018-09-13 14:48:25 +00:00
test-atomicops.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-bignum-dtoa.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-bignum.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-bit-vector.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-circular-queue.cc [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
test-code-layout.cc Reland "Reland "Reland "[code-comments] Put code comments into the code object""" 2018-12-13 22:35:55 +00:00
test-code-stub-assembler.cc Optionally use halfsiphash for integer hashing. 2019-01-09 15:20:51 +00:00
test-compiler.cc Assume flat string when checking CompileFunctionInContext arguments. 2019-01-07 07:19:06 +00:00
test-constantpool.cc [assembler] Move ConstantPools out of src/assembler.h 2018-10-19 11:38:39 +00:00
test-conversions.cc [objects.h splitting] Move HeapNumber to heap-number.h 2018-12-17 17:58:09 +00:00
test-cpu-profiler.cc [cpu-profiler] Add logging to flaky tests 2019-01-08 15:38:42 +00:00
test-date.cc [Intl] Move cachedOrNewService to C++ w/o caching 2018-11-02 07:08:26 +00:00
test-debug.cc [js] Remove CORE JS Natives (prologue.js), port extra utils to C++/Torque 2019-01-07 11:57:46 +00:00
test-decls.cc [iwyu] Include heap-inl.h less. 2018-11-26 09:25:05 +00:00
test-deoptimization.cc [deprecation] Deprecate ToBoolean(Local<Context>) 2018-09-24 12:02:09 +00:00
test-dictionary.cc [ubsan] Port Object to the new design 2018-12-26 20:54:07 +00:00
test-disasm-arm64.cc [iwyu] Ensure that macro assembler includes happen correctly 2018-11-16 15:52:56 +00:00
test-disasm-arm.cc [arm] Alter disasm-arm to print a fixed size address 2018-11-08 11:38:11 +00:00
test-disasm-ia32.cc [ubsan] Port Object to the new design 2018-12-26 20:54:07 +00:00
test-disasm-mips64.cc [mips64] Deprecate use of J and JAL instructions 2018-09-13 09:39:21 +00:00
test-disasm-mips.cc MIPS32: Implement AtomicPair operators through runtime 2018-11-14 11:30:53 +00:00
test-disasm-ppc.cc [turbofan] Thread through AssemblerOptions 2018-07-06 09:42:00 +00:00
test-disasm-s390.cc [turbofan] Thread through AssemblerOptions 2018-07-06 09:42:00 +00:00
test-disasm-x64.cc [ubsan] Port Object to the new design 2018-12-26 20:54:07 +00:00
test-diy-fp.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-double.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-dtoa.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-elements-kind.cc [cleanup][csa] Introduce Times[SystemPointer|Tagged]Size instead of TimesPointerSize 2018-12-27 03:48:55 +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 [factory] Make sure large code objects actually go to large code space 2018-12-05 16:54:30 +00:00
test-fast-dtoa.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-feedback-vector.cc [ubsan] Port HeapObject to the new design 2018-12-20 16:43:49 +00:00
test-feedback-vector.h [objects] Merge SFI outer_scope_info and feedback_metadata 2018-04-06 15:06:04 +00:00
test-field-type-tracking.cc [ubsan] Misc post-Object-migration cleanup 2019-01-08 12:34:34 +00:00
test-fixed-dtoa.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-flags.cc [js] Remove CORE JS Natives (prologue.js), port extra utils to C++/Torque 2019-01-07 11:57:46 +00:00
test-func-name-inference.cc [Cleanup] String::GetChars() should take a DisallowHeapAllocation ref. 2018-12-04 16:07:46 +00:00
test-fuzz-arm64.cc Reland "Add Windows ARM64 ABI support to V8" 2018-10-24 19:46:36 +00:00
test-global-handles.cc Fix DCHECK in finalizer scavenging logic 2018-12-20 20:13:03 +00:00
test-global-object.cc [iwyu] api.h iwyu 2018-07-20 11:49:02 +00:00
test-hashcode.cc Optionally use halfsiphash for integer hashing. 2019-01-09 15:20:51 +00:00
test-hashmap.cc [ubsan] Fix various cases of undefined behavior 2019-01-10 13:52:04 +00:00
test-heap-profiler.cc [cleanup][heap] Fix kPointerSize usages in src/heap/ 2018-12-19 19:58:20 +00:00
test-icache.cc aix: [test] fix i-cache cctest on Aix platform 2018-11-28 18:43:20 +00:00
test-identity-map.cc [objects.h splitting] Move HeapNumber to heap-number.h 2018-12-17 17:58:09 +00:00
test-inobject-slack-tracking.cc [ubsan] Port Object to the new design 2018-12-26 20:54:07 +00:00
test-inspector.cc [cleanup] Refactor inspector to use default members. 2018-09-18 09:13:59 +00:00
test-intl.cc [Intl] Decentralize GetAvailableLocales 2018-10-24 01:41:10 +00:00
test-javascript-arm64.cc [deprecation] Deprecate ToBoolean(Local<Context>) 2018-09-24 12:02:09 +00:00
test-js-arm64-variables.cc [jumbo] arm64 cctest fixes 2017-09-30 17:17:23 +00:00
test-js-weak-refs.cc [ubsan] Port Object to the new design 2018-12-26 20:54:07 +00:00
test-liveedit.cc [cleanup] Replace calls to deprecated String::Concat and ToInt32 from tests. 2018-07-24 17:30:14 +00:00
test-lockers.cc [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
test-log-stack-tracer.cc [ubsan] Port JSReceiver and subclasses to the new design 2018-12-08 04:05:50 +00:00
test-log.cc [ubsan] Port HeapObject to the new design 2018-12-20 16:43:49 +00:00
test-macro-assembler-arm.cc [ubsan] Port Object to the new design 2018-12-26 20:54:07 +00:00
test-macro-assembler-mips64.cc [ubsan] Port Object to the new design 2018-12-26 20:54:07 +00:00
test-macro-assembler-mips.cc [ubsan] Port Object to the new design 2018-12-26 20:54:07 +00:00
test-macro-assembler-x64.cc [cleanup][x64] Final set of x64-specific kPointerSize fixes 2018-12-21 11:52:43 +00:00
test-managed.cc Add size estimate to Managed<T> 2018-05-30 10:26:21 +00:00
test-mementos.cc [ubsan] Rename ObjectPtr to Object 2019-01-08 09:08:59 +00:00
test-modules.cc [api,modules] Allow GetModuleNamespace on unevaluated modules. 2018-01-08 09:01:25 +00:00
test-object.cc [ubsan] Port Object to the new design 2018-12-26 20:54:07 +00:00
test-orderedhashtable.cc [dict] Add more useful methods 2019-01-07 19:39:34 +00:00
test-parsing.cc [parser] Don't desugar destructuring declarations. 2019-01-09 14:09:23 +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-poison-disasm-arm.cc [test] Add type confusion poisoning test for polymorhic access. 2018-10-10 17:57:57 +00:00
test-profile-generator.cc [reland] Don't allocate feedback vectors and feedback metadata in lite mode 2018-12-19 14:29:30 +00:00
test-random-number-generator.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-regexp.cc [ubsan] Port Name/String/Symbol to the new design 2018-11-27 01:42:36 +00:00
test-representation.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-roots.cc [ubsan] Port Object to the new design 2018-12-26 20:54:07 +00:00
test-sampler-api.cc [cleanup] Refactor general tests to use default members. 2018-09-14 14:40:47 +00:00
test-serialize.cc [base] Refactor STATIC_CHAR_VECTOR into a template 2019-01-03 12:55:15 +00:00
test-smi-lexicographic-compare.cc [ubsan] Port Smi to the new design 2018-11-05 20:52:51 +00:00
test-strings.cc [api] simplify String::WriteToUtf8. 2018-12-18 11:08:04 +00:00
test-strtod.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-symbols.cc [cleanup] Remove Isolate parameter from object print 2018-07-12 11:31:57 +00:00
test-sync-primitives-arm64.cc [base] Introduce MutexGuard as typedef for LockGuard<Mutex> 2018-10-12 15:44:51 +00:00
test-sync-primitives-arm.cc [base] Introduce MutexGuard as typedef for LockGuard<Mutex> 2018-10-12 15:44:51 +00:00
test-thread-termination.cc Make termination exception more consistent. 2018-11-30 11:33:07 +00:00
test-threads.cc [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
test-trace-event.cc [deprecation] Deprecate ToBoolean(Local<Context>) 2018-09-24 12:02:09 +00:00
test-traced-value.cc [tracing] Escape UTF8 strings in JSON compliant form. 2018-10-31 17:46:52 +00:00
test-transitions.cc [ubsan] Port Name/String/Symbol to the new design 2018-11-27 01:42:36 +00:00
test-transitions.h [ubsan] Port Map to the new design 2018-11-13 06:59:12 +00:00
test-typedarrays.cc Remove always-true --harmony-bigint runtime flag 2018-10-01 11:31:13 +00:00
test-types.cc [turbofan] Put some tests under a canonical handle scope. 2018-07-31 18:20:53 +00:00
test-unbound-queue.cc
test-unboxed-doubles.cc [ubsan] Fix various cases of undefined behavior 2019-01-10 13:52:04 +00:00
test-unscopables-hidden-prototype.cc
test-unwinder.cc [nojit] Migrate JSEntry variants to builtins 2018-12-07 10:16:06 +00:00
test-usecounters.cc [regexp] Add use counters for IsRegExp 2018-12-06 08:15:37 +00:00
test-utils-arm64.cc [iwyu] Ensure that macro assembler includes happen correctly 2018-11-16 15:52:56 +00:00
test-utils-arm64.h [iwyu] Ensure that macro assembler includes happen correctly 2018-11-16 15:52:56 +00:00
test-utils.cc [cleanup] Split off api-inl.h from api.h to make latter self contained 2018-07-23 16:03:49 +00:00
test-version.cc [build] Introduce an embedder version string 2017-10-05 07:17:45 +00:00
test-weakmaps.cc [heap] Remove support for aborting incremental marking 2018-09-17 10:44:52 +00:00
test-weaksets.cc [heap] Remove support for aborting incremental marking 2018-09-17 10:44:52 +00:00
testcfg.py [test] Add non-d8 test suites to Android testing 2018-09-11 11:12:21 +00:00
trace-extension.cc [ubsan] Port Smi to the new design 2018-11-05 20:52:51 +00:00
trace-extension.h [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
types-fuzz.h [turbofan] Prepare broker for serialization. 2018-07-23 17:20:49 +00:00
unicode-helpers.cc [Parser] Add support for Zone allocated ConsumedPreParsingScopeData. 2018-09-07 10:28:40 +00:00
unicode-helpers.h [Parser] Add support for Zone allocated ConsumedPreParsingScopeData. 2018-09-07 10:28:40 +00:00