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

Side by Side Diff: src/parsing/parser.cc

Issue 2617923003: PreParsing inner funcs: make scope analysis more complete. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/parsing/parser.h" 5 #include "src/parsing/parser.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "src/api.h" 9 #include "src/api.h"
10 #include "src/ast/ast-expression-rewriter.h" 10 #include "src/ast/ast-expression-rewriter.h"
(...skipping 1873 matching lines...) Expand 10 before | Expand all | Expand 10 after
1884 // let/const/var x; 1884 // let/const/var x;
1885 // x = x'; 1885 // x = x';
1886 // b; 1886 // b;
1887 // } 1887 // }
1888 // let x; // for TDZ 1888 // let x; // for TDZ
1889 // } 1889 // }
1890 void Parser::DesugarBindingInForEachStatement(ForInfo* for_info, 1890 void Parser::DesugarBindingInForEachStatement(ForInfo* for_info,
1891 Block** body_block, 1891 Block** body_block,
1892 Expression** each_variable, 1892 Expression** each_variable,
1893 bool* ok) { 1893 bool* ok) {
1894 DCHECK(for_info->parsing_result.declarations.length() == 1);
marja 2017/01/06 15:44:29 Unrelated to this CL, but makes sense to add this.
1894 DeclarationParsingResult::Declaration& decl = 1895 DeclarationParsingResult::Declaration& decl =
1895 for_info->parsing_result.declarations[0]; 1896 for_info->parsing_result.declarations[0];
1896 Variable* temp = NewTemporary(ast_value_factory()->dot_for_string()); 1897 Variable* temp = NewTemporary(ast_value_factory()->dot_for_string());
1897 auto each_initialization_block = 1898 auto each_initialization_block =
1898 factory()->NewBlock(nullptr, 1, true, kNoSourcePosition); 1899 factory()->NewBlock(nullptr, 1, true, kNoSourcePosition);
1899 { 1900 {
1900 auto descriptor = for_info->parsing_result.descriptor; 1901 auto descriptor = for_info->parsing_result.descriptor;
1901 descriptor.declaration_pos = kNoSourcePosition; 1902 descriptor.declaration_pos = kNoSourcePosition;
1902 descriptor.initialization_pos = kNoSourcePosition; 1903 descriptor.initialization_pos = kNoSourcePosition;
1903 decl.initializer = factory()->NewVariableProxy(temp); 1904 decl.initializer = factory()->NewVariableProxy(temp);
(...skipping 3226 matching lines...) Expand 10 before | Expand all | Expand 10 after
5130 5131
5131 return final_loop; 5132 return final_loop;
5132 } 5133 }
5133 5134
5134 #undef CHECK_OK 5135 #undef CHECK_OK
5135 #undef CHECK_OK_VOID 5136 #undef CHECK_OK_VOID
5136 #undef CHECK_FAILED 5137 #undef CHECK_FAILED
5137 5138
5138 } // namespace internal 5139 } // namespace internal
5139 } // namespace v8 5140 } // namespace v8
OLDNEW
« no previous file with comments | « src/ast/scopes.cc ('k') | src/parsing/preparser.h » ('j') | src/parsing/preparser.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698