v8/test/cctest
Marja Hölttä e7a46253f2 [parser] Skipping inner funcs: implement a bailout.
In some cases, PreParser cannot replicate the Scope structure created by
Parser. It happens esp. with arrow function parameters, since the relevant
information is already lost by the time we figure out it's an arrow function.

In these cases, PreParser should bail out of trying to create data for skipping
inner functions.

Implementation notes:

- The arrow function case is more fundamental; the non-arrow case could be
  hacked together somehow if we implemented tracking is_simple for each param
  separately; but now that it's possible to bail out consistently from both
  cases, I don't think the is_simple complication is worth it.

- The added mjsunit test cases are based on the test262 test cases which exposed
  the problem.

- cctest/preparser/PreParserScopeAnalysis was exercising similar cases, but the
  problem didn't show up because the function parameters didn't contain
  skippable functions. Those test cases have been repurposed for testing the
  bailout.

- Extra precaution: the bailout tests are in a separate file, to guard from the
  bug that a bailout case results in bailing out of *all* data creation, which
  would make all skipping tests in the same file useless.

BUG=v8:5516

Change-Id: I4324749a5ec602fa5d7dc27647ade0284a6842fe
Reviewed-on: https://chromium-review.googlesource.com/599849
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#47170}
2017-08-04 18:22:32 +00:00
..
compiler [Compiler] Move construction of CompilationInfo into GenerateUnoptimizedCode 2017-08-04 09:58:04 +00:00
ffi Add COMPONENT tags to OWNERS files where appropriate 2017-05-22 10:15:28 +00:00
heap [heap] Fix InvalidatedSlotsFilter. 2017-08-03 18:27:42 +00:00
interpreter [objects] Remove unused bailout reasons 2017-08-02 11:28:18 +00:00
libplatform Reland "Switch tracing to use v8::TracingController" 2017-07-03 11:49:23 +00:00
libsampler Include only stuff you need, part 6: Fix cctest.h. 2016-09-01 12:02:16 +00:00
parsing [parser] Skipping inner funcs: implement a bailout. 2017-08-04 18:22:32 +00:00
wasm [wasm] Generate unlowered graph for interpreter entry 2017-08-04 12:42:58 +00:00
BUILD.gn Reland^3 "[heap] Add mechanism for tracking invalidated slots per memory chunk." 2017-08-03 14:38:19 +00:00
cctest_exe.isolate [Swarming] Isolate perf tests. 2016-02-15 11:17:18 +00:00
cctest.cc Rename "NoBarrier" memory operations to "Relaxed". 2017-05-30 07:44:37 +00:00
cctest.gyp Reland^3 "[heap] Add mechanism for tracking invalidated slots per memory chunk." 2017-08-03 14:38:19 +00:00
cctest.h [cctest] Simplify tests that mock v8::Platform. 2017-08-01 17:06:13 +00:00
cctest.isolate [Interpreter] Refactor bytecode generator test suite. 2016-02-25 12:07:19 +00:00
cctest.status PPC: Disable wasm simd load store testcase 2017-07-31 22:16:39 +00:00
DEPS Add DEPS files and run checkdeps in presubmit check 2014-06-03 13:39:42 +00:00
expression-type-collector-macros.h Make typing-asm match spec more closely around load/store, add more tests. 2015-11-30 21:11:47 +00:00
gay-fixed.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
gay-fixed.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
gay-precision.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
gay-precision.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
gay-shortest.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
gay-shortest.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
log-eq-of-logging-and-traversal.js Fix test-log/EquivalenceOfLoggingAndTraversal 2013-08-26 14:56:23 +00:00
OWNERS Remove x87 port 2017-07-18 18:20:40 +00:00
print-extension.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
print-extension.h Remove deprecated functions the smaller half of the remaing tests 2015-11-17 12:42:44 +00:00
profiler-extension.cc Introduce v8::CpuProfiler::New and v8::CpuProfiler::Dispose API. 2016-07-08 15:01:10 +00:00
profiler-extension.h Introduce v8::CpuProfiler::New and v8::CpuProfiler::Dispose API. 2016-07-08 15:01:10 +00:00
scope-test-helper.h [parser] Skipping inner funcs: Associate data to SharedFunctionInfo, not Script. 2017-06-30 11:12:52 +00:00
setup-isolate-for-tests.cc Reland "[snapshot] Move builtins generation into mksnapshot" 2017-04-07 13:31:29 +00:00
setup-isolate-for-tests.h [cleanup] Remove unnecessary entries in cctest.status 2017-06-09 16:05:09 +00:00
test-access-checks.cc Fix receiver checks for v8::Function on a remote context receiver. 2017-02-22 10:13:24 +00:00
test-accessor-assembler.cc [csa] Enforce using BIND macro 2017-05-19 16:47:56 +00:00
test-accessors.cc [cctest] Simplify the majority of callers of CcTest::CollectAllGarbage 2017-04-27 17:20:54 +00:00
test-allocation.cc [cctest] Simplify tests that mock v8::Platform. 2017-08-01 17:06:13 +00:00
test-api-accessors.cc Remove experimental fast accessor builder API 2017-03-14 08:14:48 +00:00
test-api-interceptors.cc [ic] Properly handle loads from global interceptor via prototype chain. 2017-07-06 08:09:12 +00:00
test-api.cc Enable --harmony-strict-legacy-accessor-builtins by default 2017-08-02 21:30:57 +00:00
test-api.h Include only stuff you need, part 6: Fix cctest.h. 2016-09-01 12:02:16 +00:00
test-array-list.cc Add Smi::ToInt helper method 2017-07-10 13:33:03 +00:00
test-assembler-arm64.cc [arm64] Fix assertion in IsImmLLiteral and enable literal pool tests. 2017-06-14 13:52:00 +00:00
test-assembler-arm.cc [arm] Pass float immediates to vmov as uint32_t 2017-07-07 11:58:10 +00:00
test-assembler-ia32.cc [compiler] Delay allocation of code-embedded heap numbers. 2017-05-31 14:00:11 +00:00
test-assembler-mips64.cc MIPS64: Fix optimizations to li macro. 2017-08-03 15:08:31 +00:00
test-assembler-mips.cc Reland "MIPS[64]: Implement MSA I10 instructions in simulator" 2017-07-20 13:18:22 +00:00
test-assembler-ppc.cc PPC/s390: [compiler] Delay allocation of code-embedded heap numbers. 2017-06-08 17:41:56 +00:00
test-assembler-s390.cc PPC/s390: [compiler] Delay allocation of code-embedded heap numbers. 2017-06-08 17:41:56 +00:00
test-assembler-x64.cc [compiler] Delay allocation of code-embedded heap numbers. 2017-05-31 14:00:11 +00:00
test-ast.cc [parser|ast] Simplify AstNodeFactory Zone usage. 2017-05-17 12:15:18 +00:00
test-atomicops.cc Rename "NoBarrier" memory operations to "Relaxed". 2017-05-30 07:44:37 +00:00
test-bignum-dtoa.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-bignum.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-bit-vector.cc [bitvector] Allow BitVector to resize 2017-06-21 15:13:05 +00:00
test-circular-queue.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-code-cache.cc [elements] Rename FAST elements kinds 2017-06-30 13:31:44 +00:00
test-code-layout.cc Rename TypeFeedbackVector to FeedbackVector. 2017-02-07 14:46:36 +00:00
test-code-stub-assembler.cc [csa] Add C++ compile time type checks to CSA. 2017-08-04 01:09:24 +00:00
test-code-stubs-arm64.cc Remove compiler distinction from RegisterConfiguration. 2017-08-03 07:47:36 +00:00
test-code-stubs-arm.cc Remove compiler distinction from RegisterConfiguration. 2017-08-03 07:47:36 +00:00
test-code-stubs-ia32.cc Remove compiler distinction from RegisterConfiguration. 2017-08-03 07:47:36 +00:00
test-code-stubs-mips64.cc Remove compiler distinction from RegisterConfiguration. 2017-08-03 07:47:36 +00:00
test-code-stubs-mips.cc Remove compiler distinction from RegisterConfiguration. 2017-08-03 07:47:36 +00:00
test-code-stubs-x64.cc Remove compiler distinction from RegisterConfiguration. 2017-08-03 07:47:36 +00:00
test-code-stubs.cc [iwyu] Pre-work for removing unallowed include macro-assembler.h -> assembler-inl.h 2017-02-23 12:10:21 +00:00
test-code-stubs.h Introduce x87 port 2014-05-23 16:37:27 +00:00
test-compiler.cc [api] remove --harmony-function-tostring behavior from CompileFunctionInContext 2017-07-06 18:55:04 +00:00
test-constantpool.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-conversions.cc Rename TypeFeedbackVector to FeedbackVector. 2017-02-07 14:46:36 +00:00
test-cpu-profiler.cc Remove the unused hydrogen_track_positions flag. 2017-08-02 03:41:30 +00:00
test-date.cc [intl] Reorganize code 2017-04-24 13:54:15 +00:00
test-debug.cc Fix common misspellings 2017-08-02 09:35:28 +00:00
test-decls.cc [runtime] Intercept function declarations. 2016-09-15 15:48:34 +00:00
test-deoptimization.cc Reland "[flags] Remove some dead Crankshaft flags." 2017-07-13 13:15:34 +00:00
test-dictionary.cc Add Smi::ToInt helper method 2017-07-10 13:33:03 +00:00
test-disasm-arm64.cc [iwyu] Do not include frames.h in macro assemblers. 2017-08-03 09:23:33 +00:00
test-disasm-arm.cc [iwyu] Do not include frames.h in macro assemblers. 2017-08-03 09:23:33 +00:00
test-disasm-ia32.cc [iwyu] Do not include frames.h in macro assemblers. 2017-08-03 09:23:33 +00:00
test-disasm-mips64.cc [iwyu] Do not include frames.h in macro assemblers. 2017-08-03 09:23:33 +00:00
test-disasm-mips.cc [iwyu] Do not include frames.h in macro assemblers. 2017-08-03 09:23:33 +00:00
test-disasm-ppc.cc [iwyu] Do not include frames.h in macro assemblers. 2017-08-03 09:23:33 +00:00
test-disasm-s390.cc [iwyu] Do not include frames.h in macro assemblers. 2017-08-03 09:23:33 +00:00
test-disasm-x64.cc [iwyu] Do not include frames.h in macro assemblers. 2017-08-03 09:23:33 +00:00
test-diy-fp.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-double.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-dtoa.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-elements-kind.cc [runtime] Rename properties to properties_or_hash 2017-07-18 17:38:50 +00:00
test-experimental-extra.js Add experimental, non-snapshotted V8 extras 2015-08-20 00:01:14 +00:00
test-extra.js Add isPromise V8 extras util 2017-04-06 13:16:35 +00:00
test-fast-dtoa.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-feedback-vector.cc [ic] Drop Array constructor support from CallIC. 2017-08-04 09:22:14 +00:00
test-feedback-vector.h [objects] Make feedback vector a first-class object 2017-07-27 13:31:55 +00:00
test-field-type-tracking.cc Refactor TransitionArray access 2017-07-28 19:41:21 +00:00
test-fixed-dtoa.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-flags.cc Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
test-func-name-inference.cc [iwyu] Remove include debug.h -> arguments.h 2017-02-09 09:19:23 +00:00
test-fuzz-arm64.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-global-handles.cc Drop UniqueId from include/v8.h 2017-03-06 10:58:01 +00:00
test-global-object.cc include fixing: api.h shouldn't include objects-inl.h 2017-01-09 13:43:28 +00:00
test-hashmap.cc Instead of having a hashmap with a function pointer defining its 2016-09-30 16:17:06 +00:00
test-heap-profiler.cc [heap-profiler] Instrument JSPromise 2017-07-20 18:14:25 +00:00
test-identity-map.cc Add Smi::ToInt helper method 2017-07-10 13:33:03 +00:00
test-inobject-slack-tracking.cc Fix common misspellings 2017-08-02 09:35:28 +00:00
test-intl.cc [intl] Implement Intl.NumberFormat.prototype.formatToParts 2017-06-30 20:14:18 +00:00
test-javascript-arm64.cc include fixing: api.h shouldn't include objects-inl.h 2017-01-09 13:43:28 +00:00
test-js-arm64-variables.cc include fixing: api.h shouldn't include objects-inl.h 2017-01-09 13:43:28 +00:00
test-list.cc Include only stuff you need, part 6: Fix cctest.h. 2016-09-01 12:02:16 +00:00
test-liveedit.cc include fixing: api.h shouldn't include objects-inl.h 2017-01-09 13:43:28 +00:00
test-lockers.cc include fixing: api.h shouldn't include objects-inl.h 2017-01-09 13:43:28 +00:00
test-log-stack-tracer.cc Reland "[flags] Remove some dead Crankshaft flags." 2017-07-13 13:15:34 +00:00
test-log.cc [profiler] Fix logging addresses on Windows. 2017-07-28 14:36:14 +00:00
test-macro-assembler-arm.cc [compiler] Delay allocation of code-embedded heap numbers. 2017-05-31 14:00:11 +00:00
test-macro-assembler-ia32.cc [compiler] Delay allocation of code-embedded heap numbers. 2017-05-31 14:00:11 +00:00
test-macro-assembler-mips64.cc MIPS[64]: Port [arm] Introduce UseScratchRegisterScope 2017-07-28 11:31:35 +00:00
test-macro-assembler-mips.cc MIPS[64]: Port [arm] Introduce UseScratchRegisterScope 2017-07-28 11:31:35 +00:00
test-macro-assembler-x64.cc [macro-assembler] Remove unused Movupd. 2017-07-05 09:54:37 +00:00
test-managed.cc Implement managed objects with phantom handles 2017-06-20 10:58:45 +00:00
test-mementos.cc [heap] Fix verification of unsafe object layout changes. 2017-05-18 19:24:22 +00:00
test-modules.cc [api] Expose a module's status and exception. 2017-06-28 15:54:57 +00:00
test-object.cc Remove SIMD.js from V8. 2017-02-14 06:57:25 +00:00
test-orderedhashtable.cc Fix common misspellings 2017-08-02 09:35:28 +00:00
test-parsing.cc [ignition] Add a DCHECK that scopes are visited in nesting order 2017-08-01 14:43:26 +00:00
test-platform-linux.cc [heap] Rework ASLR for base::Platform::VirtualMemory 2017-07-14 07:15:40 +00:00
test-platform-win32.cc [heap] Rework ASLR for base::Platform::VirtualMemory 2017-07-14 07:15:40 +00:00
test-platform.cc S390:Update inline asm constraint in test-platform 2016-07-16 15:36:45 +00:00
test-profile-generator.cc [compiler] Kill the deoptimized too many times bailout 2017-07-28 10:08:29 +00:00
test-random-number-generator.cc Include only stuff you need, part 6: Fix cctest.h. 2016-09-01 12:02:16 +00:00
test-regexp.cc [regexp] Throw for patterns like /[\p{...}-\p{...}]/u. 2017-07-25 08:25:43 +00:00
test-representation.cc [turbofan] put src/types.[h/cc] into src/compiler/types.[h/cc] 2016-09-05 15:58:45 +00:00
test-run-wasm-relocation-arm64.cc [compiler] Delay allocation of code-embedded heap numbers. 2017-05-31 14:00:11 +00:00
test-run-wasm-relocation-arm.cc [compiler] Delay allocation of code-embedded heap numbers. 2017-05-31 14:00:11 +00:00
test-run-wasm-relocation-ia32.cc [iwyu] Split frame-constants.h out of frames.h to reduce transitive includes. 2017-08-03 10:12:12 +00:00
test-run-wasm-relocation-x64.cc [compiler] Delay allocation of code-embedded heap numbers. 2017-05-31 14:00:11 +00:00
test-sampler-api.cc Include only stuff you need, part 6: Fix cctest.h. 2016-09-01 12:02:16 +00:00
test-serialize.cc [snapshot] Begin splitting up Deserializer 2017-08-03 06:41:32 +00:00
test-simulator-arm64.cc [compiler] Delay allocation of code-embedded heap numbers. 2017-05-31 14:00:11 +00:00
test-simulator-arm.cc [compiler] Delay allocation of code-embedded heap numbers. 2017-05-31 14:00:11 +00:00
test-strings.cc [heap] Add API to set heap semi-space limits in KB. 2017-07-19 12:53:27 +00:00
test-strtod.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-symbols.cc [cctest] Simplify the majority of callers of CcTest::CollectAllGarbage 2017-04-27 17:20:54 +00:00
test-thread-termination.cc Assert that context creation doesn't throw 2017-01-17 13:01:03 +00:00
test-threads.cc Include only stuff you need, part 6: Fix cctest.h. 2016-09-01 12:02:16 +00:00
test-trace-event.cc [cctest] Simplify tests that mock v8::Platform. 2017-08-01 17:06:13 +00:00
test-traced-value.cc [tracing] Use locale independent writer for FP values. 2017-01-12 08:08:57 +00:00
test-transitions.cc Refactor TransitionArray access 2017-07-28 19:41:21 +00:00
test-transitions.h Refactor TransitionArray access 2017-07-28 19:41:21 +00:00
test-typedarrays.cc include fixing: api.h shouldn't include objects-inl.h 2017-01-09 13:43:28 +00:00
test-types.cc [crankshaft] Remove Crankshaft. 2017-06-26 12:33:53 +00:00
test-unbound-queue.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-unboxed-doubles.cc [elements] Rename FAST elements kinds 2017-06-30 13:31:44 +00:00
test-unscopables-hidden-prototype.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-usecounters.cc Enable --harmony-strict-legacy-accessor-builtins by default 2017-08-02 21:30:57 +00:00
test-utils-arm64.cc Reland of Reland of "ARM64: Add NEON support" 2017-05-31 13:58:43 +00:00
test-utils-arm64.h Reland of Reland of "ARM64: Add NEON support" 2017-05-31 13:58:43 +00:00
test-utils.cc Allow C++11 in unittests. 2017-03-10 06:35:51 +00:00
test-version.cc Revert of [build] Introduce an embedder version string (patchset #3 id:40001 of https://codereview.chromium.org/2619213002/ ) 2017-01-21 22:36:54 +00:00
test-weakmaps.cc Revert "[builtins] Move most WeakMap/WeakSet code from JS to C++ builtins" 2017-06-15 22:04:38 +00:00
test-weaksets.cc Revert "[builtins] Move most WeakMap/WeakSet code from JS to C++ builtins" 2017-06-15 22:04:38 +00:00
testcfg.py [test] Fix deterministic test shards. 2016-03-31 07:38:22 +00:00
trace-extension.cc Expose TickSample and its APIs in v8-profiler.h 2016-07-06 18:40:31 +00:00
trace-extension.h Expose TickSample and its APIs in v8-profiler.h 2016-07-06 18:40:31 +00:00
types-fuzz.h [turbofan] HeapConstant types should compare by handle address 2016-10-08 16:51:53 +00:00
unicode-helpers.h [parser/test] Move cctest/PreParserScopeAnalysis into a new file. 2017-02-07 10:11:01 +00:00