Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(66)

Issue 7671042: Temporal dead zone behaviour for let bindings. (Closed)

Created:
9 years, 4 months ago by Steven
Modified:
9 years, 3 months ago
CC:
v8-dev
Visibility:
Public.

Description

Temporal dead zone behaviour for let bindings. BUG= TEST=mjsunit/harmony/block-let-semantics.js Committed: http://code.google.com/p/v8/source/detail?r=9070

Patch Set 1 #

Patch Set 2 : Test initialization of function declarations. #

Total comments: 8

Patch Set 3 : Addressed comments #

Patch Set 4 : Bailout in hydrogen and X64 and ARM code. #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+541 lines, -59 lines) Patch
M src/arm/full-codegen-arm.cc View 1 2 3 5 chunks +80 lines, -14 lines 0 comments Download
M src/contexts.h View 1 2 2 chunks +29 lines, -2 lines 0 comments Download
M src/contexts.cc View 1 2 4 chunks +10 lines, -1 line 0 comments Download
M src/heap.cc View 1 chunk +1 line, -2 lines 0 comments Download
M src/hydrogen.cc View 1 2 3 4 chunks +10 lines, -3 lines 0 comments Download
M src/ia32/full-codegen-ia32.cc View 5 chunks +75 lines, -12 lines 0 comments Download
M src/parser.cc View 5 chunks +13 lines, -5 lines 0 comments Download
M src/runtime.cc View 1 2 7 chunks +46 lines, -8 lines 0 comments Download
M src/token.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/x64/full-codegen-x64.cc View 1 2 3 5 chunks +75 lines, -12 lines 0 comments Download
A test/mjsunit/harmony/block-let-crankshaft.js View 1 2 3 1 chunk +63 lines, -0 lines 2 comments Download
A test/mjsunit/harmony/block-let-semantics.js View 1 2 1 chunk +138 lines, -0 lines 2 comments Download

Messages

Total messages: 8 (0 generated)
Steven
Hi Florian, PTAL at the following code for semantics of let bindings from the harmony ...
9 years, 4 months ago (2011-08-18 11:47:49 UTC) #1
rossberg
http://codereview.chromium.org/7671042/diff/3001/test/mjsunit/harmony/block-let-semantics.js File test/mjsunit/harmony/block-let-semantics.js (right): http://codereview.chromium.org/7671042/diff/3001/test/mjsunit/harmony/block-let-semantics.js#newcode92 test/mjsunit/harmony/block-let-semantics.js:92: // initialized upon entering a function / block scope. ...
9 years, 4 months ago (2011-08-22 15:12:10 UTC) #2
fschneider
http://codereview.chromium.org/7671042/diff/3001/src/contexts.cc File src/contexts.cc (right): http://codereview.chromium.org/7671042/diff/3001/src/contexts.cc#newcode98 src/contexts.cc:98: It's not so ideal to have the output parameter ...
9 years, 4 months ago (2011-08-23 08:36:12 UTC) #3
Steven
Addressed the comments. PTAL again. http://codereview.chromium.org/7671042/diff/3001/src/contexts.cc File src/contexts.cc (right): http://codereview.chromium.org/7671042/diff/3001/src/contexts.cc#newcode98 src/contexts.cc:98: On 2011/08/23 08:36:12, fschneider ...
9 years, 4 months ago (2011-08-23 12:35:44 UTC) #4
fschneider
I think you need to change the Crankshaft graph builder to bailout in case of ...
9 years, 4 months ago (2011-08-23 13:14:33 UTC) #5
fschneider
One more comment: If the plan is to support this flag only on ia32, then ...
9 years, 4 months ago (2011-08-24 08:38:43 UTC) #6
Steven
Added bailouts to hydrogen in case LET bindings are encountered and ported the code to ...
9 years, 3 months ago (2011-08-29 14:43:53 UTC) #7
fschneider
9 years, 3 months ago (2011-08-30 06:58:40 UTC) #8
LGTM.

http://codereview.chromium.org/7671042/diff/11001/test/mjsunit/harmony/block-...
File test/mjsunit/harmony/block-let-crankshaft.js (right):

http://codereview.chromium.org/7671042/diff/11001/test/mjsunit/harmony/block-...
test/mjsunit/harmony/block-let-crankshaft.js:55: } catch (e) {
Use assertThrows to test if there actually was an exception thrown.

http://codereview.chromium.org/7671042/diff/11001/test/mjsunit/harmony/block-...
test/mjsunit/harmony/block-let-crankshaft.js:60: g(42, true);
Also assertThrows here.

http://codereview.chromium.org/7671042/diff/11001/test/mjsunit/harmony/block-...
File test/mjsunit/harmony/block-let-semantics.js (right):

http://codereview.chromium.org/7671042/diff/11001/test/mjsunit/harmony/block-...
test/mjsunit/harmony/block-let-semantics.js:36: } catch (e) {
Use AssertThrows?

http://codereview.chromium.org/7671042/diff/11001/test/mjsunit/harmony/block-...
test/mjsunit/harmony/block-let-semantics.js:45: eval("(function(){ {" + s + ";}
})")();
AssertThrows here too.

Powered by Google App Engine
This is Rietveld 408576698