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

Side by Side Diff: src/preparser.h

Issue 1135493006: Revert of [strong] Object literals create strong objects (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 7 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
« no previous file with comments | « src/parser.cc ('k') | src/runtime/runtime.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #ifndef V8_PREPARSER_H 5 #ifndef V8_PREPARSER_H
6 #define V8_PREPARSER_H 6 #define V8_PREPARSER_H
7 7
8 #include "src/v8.h" 8 #include "src/v8.h"
9 9
10 #include "src/bailout-reason.h" 10 #include "src/bailout-reason.h"
(...skipping 1322 matching lines...) Expand 10 before | Expand all | Expand 10 after
1333 int pos) { 1333 int pos) {
1334 return PreParserExpression::Default(); 1334 return PreParserExpression::Default();
1335 } 1335 }
1336 PreParserExpression NewNumberLiteral(double number, 1336 PreParserExpression NewNumberLiteral(double number,
1337 int pos) { 1337 int pos) {
1338 return PreParserExpression::Default(); 1338 return PreParserExpression::Default();
1339 } 1339 }
1340 PreParserExpression NewRegExpLiteral(PreParserIdentifier js_pattern, 1340 PreParserExpression NewRegExpLiteral(PreParserIdentifier js_pattern,
1341 PreParserIdentifier js_flags, 1341 PreParserIdentifier js_flags,
1342 int literal_index, 1342 int literal_index,
1343 bool is_strong,
1344 int pos) { 1343 int pos) {
1345 return PreParserExpression::Default(); 1344 return PreParserExpression::Default();
1346 } 1345 }
1347 PreParserExpression NewArrayLiteral(PreParserExpressionList values, 1346 PreParserExpression NewArrayLiteral(PreParserExpressionList values,
1348 int literal_index, 1347 int literal_index,
1349 bool is_strong,
1350 int pos) { 1348 int pos) {
1351 return PreParserExpression::Default(); 1349 return PreParserExpression::Default();
1352 } 1350 }
1353 PreParserExpression NewObjectLiteralProperty(PreParserExpression key, 1351 PreParserExpression NewObjectLiteralProperty(PreParserExpression key,
1354 PreParserExpression value, 1352 PreParserExpression value,
1355 ObjectLiteralProperty::Kind kind, 1353 ObjectLiteralProperty::Kind kind,
1356 bool is_static, 1354 bool is_static,
1357 bool is_computed_name) { 1355 bool is_computed_name) {
1358 return PreParserExpression::Default(); 1356 return PreParserExpression::Default();
1359 } 1357 }
1360 PreParserExpression NewObjectLiteralProperty(PreParserExpression key, 1358 PreParserExpression NewObjectLiteralProperty(PreParserExpression key,
1361 PreParserExpression value, 1359 PreParserExpression value,
1362 bool is_static, 1360 bool is_static,
1363 bool is_computed_name) { 1361 bool is_computed_name) {
1364 return PreParserExpression::Default(); 1362 return PreParserExpression::Default();
1365 } 1363 }
1366 PreParserExpression NewObjectLiteral(PreParserExpressionList properties, 1364 PreParserExpression NewObjectLiteral(PreParserExpressionList properties,
1367 int literal_index, 1365 int literal_index,
1368 int boilerplate_properties, 1366 int boilerplate_properties,
1369 bool has_function, 1367 bool has_function,
1370 bool is_strong,
1371 int pos) { 1368 int pos) {
1372 return PreParserExpression::Default(); 1369 return PreParserExpression::Default();
1373 } 1370 }
1374 PreParserExpression NewVariableProxy(void* variable) { 1371 PreParserExpression NewVariableProxy(void* variable) {
1375 return PreParserExpression::Default(); 1372 return PreParserExpression::Default();
1376 } 1373 }
1377 PreParserExpression NewProperty(PreParserExpression obj, 1374 PreParserExpression NewProperty(PreParserExpression obj,
1378 PreParserExpression key, 1375 PreParserExpression key,
1379 int pos) { 1376 int pos) {
1380 if (obj.IsThis()) { 1377 if (obj.IsThis()) {
(...skipping 825 matching lines...) Expand 10 before | Expand all | Expand 10 after
2206 2203
2207 IdentifierT js_pattern = this->GetNextSymbol(scanner()); 2204 IdentifierT js_pattern = this->GetNextSymbol(scanner());
2208 if (!scanner()->ScanRegExpFlags()) { 2205 if (!scanner()->ScanRegExpFlags()) {
2209 Next(); 2206 Next();
2210 ReportMessage("malformed_regexp_flags"); 2207 ReportMessage("malformed_regexp_flags");
2211 *ok = false; 2208 *ok = false;
2212 return Traits::EmptyExpression(); 2209 return Traits::EmptyExpression();
2213 } 2210 }
2214 IdentifierT js_flags = this->GetNextSymbol(scanner()); 2211 IdentifierT js_flags = this->GetNextSymbol(scanner());
2215 Next(); 2212 Next();
2216 return factory()->NewRegExpLiteral(js_pattern, js_flags, literal_index, 2213 return factory()->NewRegExpLiteral(js_pattern, js_flags, literal_index, pos);
2217 is_strong(language_mode()), pos);
2218 } 2214 }
2219 2215
2220 2216
2221 #define CHECK_OK ok); \ 2217 #define CHECK_OK ok); \
2222 if (!*ok) return this->EmptyExpression(); \ 2218 if (!*ok) return this->EmptyExpression(); \
2223 ((void)0 2219 ((void)0
2224 #define DUMMY ) // to make indentation work 2220 #define DUMMY ) // to make indentation work
2225 #undef DUMMY 2221 #undef DUMMY
2226 2222
2227 // Used in functions where the return type is not ExpressionT. 2223 // Used in functions where the return type is not ExpressionT.
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
2472 values->Add(elem, zone_); 2468 values->Add(elem, zone_);
2473 if (peek() != Token::RBRACK) { 2469 if (peek() != Token::RBRACK) {
2474 Expect(Token::COMMA, CHECK_OK); 2470 Expect(Token::COMMA, CHECK_OK);
2475 } 2471 }
2476 } 2472 }
2477 Expect(Token::RBRACK, CHECK_OK); 2473 Expect(Token::RBRACK, CHECK_OK);
2478 2474
2479 // Update the scope information before the pre-parsing bailout. 2475 // Update the scope information before the pre-parsing bailout.
2480 int literal_index = function_state_->NextMaterializedLiteralIndex(); 2476 int literal_index = function_state_->NextMaterializedLiteralIndex();
2481 2477
2482 return factory()->NewArrayLiteral(values, literal_index, 2478 return factory()->NewArrayLiteral(values, literal_index, pos);
2483 is_strong(language_mode()), pos);
2484 } 2479 }
2485 2480
2486 2481
2487 template <class Traits> 2482 template <class Traits>
2488 typename ParserBase<Traits>::ExpressionT ParserBase<Traits>::ParsePropertyName( 2483 typename ParserBase<Traits>::ExpressionT ParserBase<Traits>::ParsePropertyName(
2489 IdentifierT* name, bool* is_get, bool* is_set, bool* is_static, 2484 IdentifierT* name, bool* is_get, bool* is_set, bool* is_static,
2490 bool* is_computed_name, ExpressionClassifier* classifier, bool* ok) { 2485 bool* is_computed_name, ExpressionClassifier* classifier, bool* ok) {
2491 Token::Value token = peek(); 2486 Token::Value token = peek();
2492 int pos = peek_position(); 2487 int pos = peek_position();
2493 2488
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
2729 } 2724 }
2730 Expect(Token::RBRACE, CHECK_OK); 2725 Expect(Token::RBRACE, CHECK_OK);
2731 2726
2732 // Computation of literal_index must happen before pre parse bailout. 2727 // Computation of literal_index must happen before pre parse bailout.
2733 int literal_index = function_state_->NextMaterializedLiteralIndex(); 2728 int literal_index = function_state_->NextMaterializedLiteralIndex();
2734 2729
2735 return factory()->NewObjectLiteral(properties, 2730 return factory()->NewObjectLiteral(properties,
2736 literal_index, 2731 literal_index,
2737 number_of_boilerplate_properties, 2732 number_of_boilerplate_properties,
2738 has_function, 2733 has_function,
2739 is_strong(language_mode()),
2740 pos); 2734 pos);
2741 } 2735 }
2742 2736
2743 2737
2744 template <class Traits> 2738 template <class Traits>
2745 typename Traits::Type::ExpressionList ParserBase<Traits>::ParseArguments( 2739 typename Traits::Type::ExpressionList ParserBase<Traits>::ParseArguments(
2746 Scanner::Location* first_spread_arg_loc, ExpressionClassifier* classifier, 2740 Scanner::Location* first_spread_arg_loc, ExpressionClassifier* classifier,
2747 bool* ok) { 2741 bool* ok) {
2748 // Arguments :: 2742 // Arguments ::
2749 // '(' (AssignmentExpression)*[','] ')' 2743 // '(' (AssignmentExpression)*[','] ')'
(...skipping 1179 matching lines...) Expand 10 before | Expand all | Expand 10 after
3929 *ok = false; 3923 *ok = false;
3930 return; 3924 return;
3931 } 3925 }
3932 has_seen_constructor_ = true; 3926 has_seen_constructor_ = true;
3933 return; 3927 return;
3934 } 3928 }
3935 } 3929 }
3936 } } // v8::internal 3930 } } // v8::internal
3937 3931
3938 #endif // V8_PREPARSER_H 3932 #endif // V8_PREPARSER_H
OLDNEW
« no previous file with comments | « src/parser.cc ('k') | src/runtime/runtime.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698