|
|
Created:
5 years, 4 months ago by Dan Ehrenberg Modified:
5 years, 4 months ago Reviewers:
adamk CC:
v8-dev Base URL:
https://chromium.googlesource.com/v8/v8.git@master Target Ref:
refs/pending/heads/master Project:
v8 Visibility:
Public. |
DescriptionSplit function block scoping into a separate flag
In an initial attempt to implement sloppy mode lexical bindings,
functions were made lexically scoped in sloppy mode. However, the
ES2015 spec says that they need an additional hoisted var binding,
and further, it's not clear when we'll implement that behavior
or whether it's web-compatible.
This patch splits off function block scoping into a new, separate
flag called --harmony_sloppy_function. This change will enable the
possibility of testing and shipping this feature separately from
other block scoping-related features which don't have the same risks.
BUG=v8:4285
R=adamk
LOG=N
Committed: https://crrev.com/1ebf0d7c5d86853ccb5c97c7b4486d644f0e0334
Cr-Commit-Position: refs/heads/master@{#30122}
Patch Set 1 #Patch Set 2 : Switch to new flag and fix errors #Patch Set 3 : Add flags to tests #Patch Set 4 : Propagate flag #
Total comments: 2
Patch Set 5 : name change #Patch Set 6 : fix a test flag #Patch Set 7 : rebase #
Created: 5 years, 4 months ago
Messages
Total messages: 46 (19 generated)
The CQ bit was checked by littledan@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1282093002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1282093002/1
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: v8_mac_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_mac_rel/builds/8499)
On 2015/08/08 00:00:12, commit-bot: I haz the power wrote: > Dry run: Try jobs failed on following builders: > v8_mac_rel on tryserver.v8 (JOB_FAILED, > http://build.chromium.org/p/tryserver.v8/builders/v8_mac_rel/builds/8499) I should've waited for the tests to finish before mailing... I guess we don't want to just delete those tests. What do we want to do with v8:4285? Should this be split into a separate flag in favor of eventually fixing v8:4285? I'm wondering if we could ship other lexical scoping things without this part.
I like the idea of further-splitting the scoping options, putting the ES2015 semantics for function scoping behind their own flag (at least for the purposes of facilitating development). I don't think we're ready to give up on implementing the Appendix B behavior, though.
The CQ bit was checked by littledan@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1282093002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1282093002/1
The CQ bit was unchecked by littledan@chromium.org
The CQ bit was checked by littledan@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1282093002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1282093002/20001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: v8_mac_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_mac_rel/builds/8544)
The CQ bit was checked by littledan@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1282093002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1282093002/40001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: v8_mac_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_mac_rel/builds/8545)
The CQ bit was checked by littledan@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1282093002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1282093002/40001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: v8_mac_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_mac_rel/builds/8574)
The CQ bit was checked by littledan@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1282093002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1282093002/60001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
PTAL
https://codereview.chromium.org/1282093002/diff/60001/src/flag-definitions.h File src/flag-definitions.h (right): https://codereview.chromium.org/1282093002/diff/60001/src/flag-definitions.h#... src/flag-definitions.h:191: V(harmony_block_function, "harmony function block scoping") \ How about "harmony_sloppy_function" instead? We already block-scope functions in strict mode (it also puts it next to the analogous "harmony_sloppy_let").
The CQ bit was checked by littledan@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1282093002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1282093002/80001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: v8_linux_nodcheck_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_nodcheck_rel/build...)
The CQ bit was checked by littledan@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1282093002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1282093002/100001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: v8_linux_arm64_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_arm64_rel/builds/8480) v8_linux_dbg on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_dbg/builds/7532)
The CQ bit was checked by littledan@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1282093002/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1282093002/120001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
https://codereview.chromium.org/1282093002/diff/60001/src/flag-definitions.h File src/flag-definitions.h (right): https://codereview.chromium.org/1282093002/diff/60001/src/flag-definitions.h#... src/flag-definitions.h:191: V(harmony_block_function, "harmony function block scoping") \ On 2015/08/11 at 21:50:11, adamk wrote: > How about "harmony_sloppy_function" instead? We already block-scope functions in strict mode (it also puts it next to the analogous "harmony_sloppy_let"). Renamed the flag, what do you think?
lgtm, thanks
The CQ bit was checked by littledan@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1282093002/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1282093002/120001
Message was sent while issue was closed.
Committed patchset #7 (id:120001)
Message was sent while issue was closed.
Patchset 7 (id:??) landed as https://crrev.com/1ebf0d7c5d86853ccb5c97c7b4486d644f0e0334 Cr-Commit-Position: refs/heads/master@{#30122} |