v8/test/test262
bakkot 9bbba1441a Sloppy-mode function declarations in blocks are now hoisted appropriately.
In ES2016, function declarations nested in blocks are formally allowed. This was
never a part of ECMAScript, but was a common extension. Unfortunately
implementations differed in the exact semantics. Annex B.3.3 in the spec tries
to standardize the parts which are common to different implementations, but does
so with some fairly complicated semantics.

This CL addresses three issues related to annex B.3.3:
* When the outer function had a complex parameter list, no hoisting whatsoever was
  being performed.
* Hoisting was not blocked by parameters of the same name.
* Hoisting was not blocked by nested lexical declarations of the same name.

We had tests which checked for the second, but they were incorrectly passing due to
the first. This CL adds more complete tests.

BUG=v8:5151, v8:5111

Review-Url: https://codereview.chromium.org/2099623003
Cr-Commit-Position: refs/heads/master@{#37405}
2016-06-29 20:55:35 +00:00
..
archive.py [gn] Port test262 archiving to gn 2016-06-06 08:56:58 +00:00
BUILD.gn [gn] Port test262 archiving to gn 2016-06-06 08:56:58 +00:00
detachArrayBuffer.js Detach ArrayBuffer in test262 2016-04-20 19:44:05 +00:00
harness-adapt.js [test] Copy test262-es6 into test262. 2015-09-25 13:03:36 +00:00
list.py [Swarming] Speed up test262 upload/download. 2016-02-19 14:41:29 +00:00
README Make test262 README file revision independent. 2015-11-04 10:52:44 +00:00
test262.gyp [gn] Move build to gypfiles 2016-04-29 10:11:11 +00:00
test262.isolate test262 roll 2016-05-02 23:02:38 +00:00
test262.status Sloppy-mode function declarations in blocks are now hoisted appropriately. 2016-06-29 20:55:35 +00:00
testcfg.py Detach ArrayBuffer in test262 2016-04-20 19:44:05 +00:00

This directory contains code for binding the test262 test suite
into the v8 test harness. The tests are checked out as a dependency from

  https://chromium.googlesource.com/external/github.com/tc39/test262

at a revision specified in the DEPS file as 'data' in this directory. They are
fetched with 'gclient sync'. To update to a newer version, please change the
DEPS file.

Using a newer version, e.g. 'deadbeef' may be possible but the tests are only
known to pass (and indeed run) with the DEPS revision. Example:

  cd data
  git fetch
  git checkout deadbeef

If you do update to a newer revision you may have to change the test
harness adapter code since it uses internal functionality from the
harness that comes bundled with the tests.  You will most likely also
have to update the test expectation file.