| OLD | NEW |
| 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/func-name-inferrer.h" | 10 #include "src/func-name-inferrer.h" |
| (...skipping 1230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1241 } | 1241 } |
| 1242 | 1242 |
| 1243 // Odd-ball literal creators. | 1243 // Odd-ball literal creators. |
| 1244 static PreParserExpression GetLiteralTheHole(int position, | 1244 static PreParserExpression GetLiteralTheHole(int position, |
| 1245 PreParserFactory* factory) { | 1245 PreParserFactory* factory) { |
| 1246 return PreParserExpression::Default(); | 1246 return PreParserExpression::Default(); |
| 1247 } | 1247 } |
| 1248 | 1248 |
| 1249 // Producing data during the recursive descent. | 1249 // Producing data during the recursive descent. |
| 1250 PreParserIdentifier GetSymbol(Scanner* scanner); | 1250 PreParserIdentifier GetSymbol(Scanner* scanner); |
| 1251 PreParserIdentifier GetNumberAsSymbol(Scanner* scanner); |
| 1251 | 1252 |
| 1252 static PreParserIdentifier GetNextSymbol(Scanner* scanner) { | 1253 static PreParserIdentifier GetNextSymbol(Scanner* scanner) { |
| 1253 return PreParserIdentifier::Default(); | 1254 return PreParserIdentifier::Default(); |
| 1254 } | 1255 } |
| 1255 | 1256 |
| 1256 static PreParserExpression ThisExpression(PreParserScope* scope, | 1257 static PreParserExpression ThisExpression(PreParserScope* scope, |
| 1257 PreParserFactory* factory) { | 1258 PreParserFactory* factory) { |
| 1258 return PreParserExpression::This(); | 1259 return PreParserExpression::This(); |
| 1259 } | 1260 } |
| 1260 | 1261 |
| (...skipping 625 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1886 // { ... , get foo() { ... }, ... , set foo(v) { ... v ... } , ... } | 1887 // { ... , get foo() { ... }, ... , set foo(v) { ... v ... } , ... } |
| 1887 // We have already read the "get" or "set" keyword. | 1888 // We have already read the "get" or "set" keyword. |
| 1888 IdentifierT name = this->EmptyIdentifier(); | 1889 IdentifierT name = this->EmptyIdentifier(); |
| 1889 switch (peek()) { | 1890 switch (peek()) { |
| 1890 case Token::STRING: | 1891 case Token::STRING: |
| 1891 Consume(Token::STRING); | 1892 Consume(Token::STRING); |
| 1892 name = this->GetSymbol(scanner_); | 1893 name = this->GetSymbol(scanner_); |
| 1893 break; | 1894 break; |
| 1894 case Token::NUMBER: | 1895 case Token::NUMBER: |
| 1895 Consume(Token::NUMBER); | 1896 Consume(Token::NUMBER); |
| 1896 // TODO(arv): Fix issue with numeric keys. get 1.0() should be | 1897 name = this->GetNumberAsSymbol(scanner_); |
| 1897 // treated as if the key was '1' | |
| 1898 // https://code.google.com/p/v8/issues/detail?id=3507 | |
| 1899 name = this->GetSymbol(scanner_); | |
| 1900 break; | 1898 break; |
| 1901 default: | 1899 default: |
| 1902 name = ParseIdentifierName( | 1900 name = ParseIdentifierName( |
| 1903 CHECK_OK_CUSTOM(EmptyObjectLiteralProperty)); | 1901 CHECK_OK_CUSTOM(EmptyObjectLiteralProperty)); |
| 1904 } | 1902 } |
| 1905 // Validate the property. | 1903 // Validate the property. |
| 1906 PropertyKind type = is_getter ? kGetterProperty : kSetterProperty; | 1904 PropertyKind type = is_getter ? kGetterProperty : kSetterProperty; |
| 1907 checker->CheckProperty(next, type, | 1905 checker->CheckProperty(next, type, |
| 1908 CHECK_OK_CUSTOM(EmptyObjectLiteralProperty)); | 1906 CHECK_OK_CUSTOM(EmptyObjectLiteralProperty)); |
| 1909 typename Traits::Type::FunctionLiteral value = | 1907 typename Traits::Type::FunctionLiteral value = |
| (...skipping 751 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2661 DCHECK(IsAccessorAccessorConflict(old_type, type)); | 2659 DCHECK(IsAccessorAccessorConflict(old_type, type)); |
| 2662 // Both accessors of the same type. | 2660 // Both accessors of the same type. |
| 2663 parser()->ReportMessage("accessor_get_set"); | 2661 parser()->ReportMessage("accessor_get_set"); |
| 2664 } | 2662 } |
| 2665 *ok = false; | 2663 *ok = false; |
| 2666 } | 2664 } |
| 2667 } | 2665 } |
| 2668 } } // v8::internal | 2666 } } // v8::internal |
| 2669 | 2667 |
| 2670 #endif // V8_PREPARSER_H | 2668 #endif // V8_PREPARSER_H |
| OLD | NEW |