v8/test
adamk e96cbdcdd6 More accurately record an end position for default parameters in arrows
Our previous over-conservative answer caused us to emit hole checks in
full-codegen when eagerly parsing but not when lazily parsing.

With this patch, we use the positions of the BinaryOperations making up
the parameter list (which are the positions of the commas) to determine
the appropriate "end position" for each parameter's initializer. This means
that we get accurate-enough positions for the initializers in the eager
parsing step to get the same answers for hole-check-elimination that we
will later during ParseLazy.

In the included test case, for example:

  (function() { ((s = 17, y = s) => s)(); } )();
                        ^2     ^1

The old code would generate a hole check when trying to load
|s| for assignment to |y| (because it treated the closing parentheses
pointed to by "^1" as the "initialization position" of |s|).

The new code uses the comma pointed to by "^2" as the initialization
position of |s|. Since that occurs textually before the load of |s|,
full-codegen knows it can avoid the hole check.

BUG=v8:4908
LOG=n

Review URL: https://codereview.chromium.org/1900343002

Cr-Commit-Position: refs/heads/master@{#35678}
2016-04-20 20:49:16 +00:00
..
benchmarks [test] Re-enable typescript that is no longer failing on ia32. 2015-10-26 06:00:35 +00:00
cctest Disable InterpreterCreateArguments on nosnap due to issue with --mstackalign flag. 2016-04-20 15:48:36 +00:00
fuzzer Expose JSON stringifier through V8 API 2016-04-15 18:24:28 +00:00
intl [test] Set default locale in test runner 2016-04-19 11:27:08 +00:00
js-perf-test [js-perf-test] fixup error in JSTests.json 2016-03-09 11:58:00 +00:00
memory
message Remove runtime flags for sloppy mode block scoping features 2016-04-08 00:30:20 +00:00
mjsunit More accurately record an end position for default parameters in arrows 2016-04-20 20:49:16 +00:00
mozilla Pass all parser flags from Parser to PreParser 2016-03-19 00:55:10 +00:00
preparser [testing] Move the last JS tests out of "preparser". 2016-03-14 17:10:49 +00:00
promises-aplus Make test262 test runner check for which exception is thrown 2016-03-14 21:20:37 +00:00
simdjs Make test262 test runner check for which exception is thrown 2016-03-14 21:20:37 +00:00
test262 Detach ArrayBuffer in test262 2016-04-20 19:44:05 +00:00
unittests [Interpreter] Remove register file register and replace with LoadParentFramePointer. 2016-04-19 12:48:41 +00:00
webkit S390: Skip slow test. 2016-04-08 14:15:44 +00:00
bot_default.gyp Add a library suitable for libfuzzer with a small unit test runner shell 2016-01-26 10:39:03 +00:00
bot_default.isolate Add a library suitable for libfuzzer with a small unit test runner shell 2016-01-26 10:39:03 +00:00
default.gyp Add a library suitable for libfuzzer with a small unit test runner shell 2016-01-26 10:39:03 +00:00
default.isolate Add a library suitable for libfuzzer with a small unit test runner shell 2016-01-26 10:39:03 +00:00
ignition.gyp [test] Add ignition test set. 2016-01-04 17:26:42 +00:00
ignition.isolate [testing] Extend interpreter testing to webkit suite. 2016-03-14 16:12:50 +00:00
optimize_for_size.gyp [swarming] Isolate webkit and optimize_for_size. 2015-10-14 17:35:05 +00:00
optimize_for_size.isolate [swarming] Roll luci-go/isolate to 5c67f7b670b5. 2016-01-19 17:03:56 +00:00
perf.gyp [Swarming] Isolate perf tests. 2016-02-15 11:17:18 +00:00
perf.isolate [Swarming] Isolate perf tests. 2016-02-15 11:17:18 +00:00