summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoradamk <adamk@chromium.org>2015-09-30 12:17:23 -0700
committerJongsoo Yoon <join.yoon@samsung.com>2015-11-20 22:32:16 +0900
commit4084dabbee07f7f439e4322cde08fef099e44355 (patch)
tree1307c68184428467da47f950174e2a248c87007c
parent9ba7a8ca77090b2904377aaa2a74a51e68ff79d3 (diff)
downloadv8-4084dabbee07f7f439e4322cde08fef099e44355.tar.gz
v8-4084dabbee07f7f439e4322cde08fef099e44355.tar.bz2
v8-4084dabbee07f7f439e4322cde08fef099e44355.zip
Revert "Stage sloppy block-scoped functions (Annex B 3.3)"
The current implemention breaks sloppy mode code that uses function declarations inside blocks at top-level. Work is ongoing on a patch to fix this issue, but in the meantime it seems reasonable to move the feature out of staging. Manual revert of commit 6e07f5a75ba2c949ac96efabd5248c76b9957112. R=littledan@chromium.org BUG=chromium:535836 LOG=y Review URL: https://codereview.chromium.org/1375213005 Cr-Commit-Position: refs/heads/master@{#31029}
-rw-r--r--src/flag-definitions.h22
-rw-r--r--test/test262/test262.status9
2 files changed, 20 insertions, 11 deletions
diff --git a/src/flag-definitions.h b/src/flag-definitions.h
index 2c2a0fa42..e9e136393 100644
--- a/src/flag-definitions.h
+++ b/src/flag-definitions.h
@@ -188,16 +188,17 @@ DEFINE_IMPLICATION(es_staging, harmony)
DEFINE_BOOL(legacy_const, true, "legacy semantics for const in sloppy mode")
// Features that are still work in progress (behind individual flags).
-#define HARMONY_INPROGRESS(V) \
- V(harmony_modules, "harmony modules") \
- V(harmony_regexps, "harmony regular expression extensions") \
- V(harmony_proxies, "harmony proxies") \
- V(harmony_unicode_regexps, "harmony unicode regexps") \
- V(harmony_tolength, "harmony ToLength") \
- V(harmony_reflect, "harmony Reflect API") \
- V(harmony_destructuring, "harmony destructuring") \
- V(harmony_default_parameters, "harmony default parameters") \
- V(harmony_sharedarraybuffer, "harmony sharedarraybuffer") \
+#define HARMONY_INPROGRESS(V) \
+ V(harmony_modules, "harmony modules") \
+ V(harmony_regexps, "harmony regular expression extensions") \
+ V(harmony_proxies, "harmony proxies") \
+ V(harmony_unicode_regexps, "harmony unicode regexps") \
+ V(harmony_tolength, "harmony ToLength") \
+ V(harmony_reflect, "harmony Reflect API") \
+ V(harmony_sloppy_function, "harmony sloppy function block scoping") \
+ V(harmony_destructuring, "harmony destructuring") \
+ V(harmony_default_parameters, "harmony default parameters") \
+ V(harmony_sharedarraybuffer, "harmony sharedarraybuffer") \
V(harmony_simd, "harmony simd")
// Features that are complete (but still behind --harmony/es-staging flag).
@@ -205,7 +206,6 @@ DEFINE_BOOL(legacy_const, true, "legacy semantics for const in sloppy mode")
V(harmony_tostring, "harmony toString") \
V(harmony_concat_spreadable, "harmony isConcatSpreadable") \
V(harmony_sloppy, "harmony features in sloppy mode") \
- V(harmony_sloppy_function, "harmony sloppy function block scoping") \
V(harmony_sloppy_let, "harmony let in sloppy mode")
// Features that are shipping (turned on by default, but internal flag remains).
diff --git a/test/test262/test262.status b/test/test262/test262.status
index 802a7d8f1..52c003821 100644
--- a/test/test262/test262.status
+++ b/test/test262/test262.status
@@ -113,6 +113,15 @@
'language/statements/for-of/const-bound-names-fordecl-tdz-for-of': [PASS, FAIL_SLOPPY],
'language/statements/for-of/const-fresh-binding-per-iteration-for-of': [PASS, FAIL_SLOPPY],
+ # Functions in blocks are var-declared and hoisted in sloppy mode
+ # https://code.google.com/p/v8/issues/detail?id=3305
+ 'language/block-scope/shadowing/dynamic-lookup-from-closure': [PASS, FAIL_SLOPPY],
+ 'language/block-scope/shadowing/lookup-from-closure': [PASS, FAIL_SLOPPY],
+ 'language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-function-declaration': [PASS, FAIL_SLOPPY],
+ 'language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-var': [PASS, FAIL_SLOPPY],
+ 'language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-var-with-function-declaration': [PASS, FAIL_SLOPPY],
+ 'language/statements/let/block-local-closure-set-before-initialization': [PASS, FAIL_SLOPPY],
+
# https://code.google.com/p/v8/issues/detail?id=4405
'language/block-scope/leave/outermost-binding-updated-in-catch-block-nested-block-let-declaration-unseen-outside-of-block': [PASS, FAIL],