| 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/bailout-reason.h" | 8 #include "src/bailout-reason.h" |
| 9 #include "src/expression-classifier.h" | 9 #include "src/expression-classifier.h" |
| 10 #include "src/func-name-inferrer.h" | 10 #include "src/func-name-inferrer.h" |
| (...skipping 930 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 941 | 941 |
| 942 static PreParserExpression BinaryOperation(PreParserExpression left, | 942 static PreParserExpression BinaryOperation(PreParserExpression left, |
| 943 Token::Value op, | 943 Token::Value op, |
| 944 PreParserExpression right) { | 944 PreParserExpression right) { |
| 945 return PreParserExpression( | 945 return PreParserExpression( |
| 946 TypeField::encode(kBinaryOperationExpression) | | 946 TypeField::encode(kBinaryOperationExpression) | |
| 947 HasRestField::encode(op == Token::COMMA && | 947 HasRestField::encode(op == Token::COMMA && |
| 948 right->IsSpreadExpression())); | 948 right->IsSpreadExpression())); |
| 949 } | 949 } |
| 950 | 950 |
| 951 static PreParserExpression ObjectLiteral() { |
| 952 return PreParserExpression(TypeField::encode(kObjectLiteralExpression)); |
| 953 } |
| 954 |
| 955 static PreParserExpression ArrayLiteral() { |
| 956 return PreParserExpression(TypeField::encode(kArrayLiteralExpression)); |
| 957 } |
| 958 |
| 951 static PreParserExpression StringLiteral() { | 959 static PreParserExpression StringLiteral() { |
| 952 return PreParserExpression(TypeField::encode(kStringLiteralExpression)); | 960 return PreParserExpression(TypeField::encode(kStringLiteralExpression)); |
| 953 } | 961 } |
| 954 | 962 |
| 955 static PreParserExpression UseStrictStringLiteral() { | 963 static PreParserExpression UseStrictStringLiteral() { |
| 956 return PreParserExpression(TypeField::encode(kStringLiteralExpression) | | 964 return PreParserExpression(TypeField::encode(kStringLiteralExpression) | |
| 957 IsUseStrictField::encode(true)); | 965 IsUseStrictField::encode(true)); |
| 958 } | 966 } |
| 959 | 967 |
| 960 static PreParserExpression UseStrongStringLiteral() { | 968 static PreParserExpression UseStrongStringLiteral() { |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 998 | 1006 |
| 999 bool IsIdentifier() const { | 1007 bool IsIdentifier() const { |
| 1000 return TypeField::decode(code_) == kIdentifierExpression; | 1008 return TypeField::decode(code_) == kIdentifierExpression; |
| 1001 } | 1009 } |
| 1002 | 1010 |
| 1003 PreParserIdentifier AsIdentifier() const { | 1011 PreParserIdentifier AsIdentifier() const { |
| 1004 DCHECK(IsIdentifier()); | 1012 DCHECK(IsIdentifier()); |
| 1005 return PreParserIdentifier(IdentifierTypeField::decode(code_)); | 1013 return PreParserIdentifier(IdentifierTypeField::decode(code_)); |
| 1006 } | 1014 } |
| 1007 | 1015 |
| 1016 bool IsObjectLiteral() const { |
| 1017 return TypeField::decode(code_) == kObjectLiteralExpression; |
| 1018 } |
| 1019 |
| 1020 bool IsArrayLiteral() const { |
| 1021 return TypeField::decode(code_) == kArrayLiteralExpression; |
| 1022 } |
| 1023 |
| 1008 bool IsStringLiteral() const { | 1024 bool IsStringLiteral() const { |
| 1009 return TypeField::decode(code_) == kStringLiteralExpression; | 1025 return TypeField::decode(code_) == kStringLiteralExpression; |
| 1010 } | 1026 } |
| 1011 | 1027 |
| 1012 bool IsUseStrictLiteral() const { | 1028 bool IsUseStrictLiteral() const { |
| 1013 return TypeField::decode(code_) == kStringLiteralExpression && | 1029 return TypeField::decode(code_) == kStringLiteralExpression && |
| 1014 IsUseStrictField::decode(code_); | 1030 IsUseStrictField::decode(code_); |
| 1015 } | 1031 } |
| 1016 | 1032 |
| 1017 bool IsUseStrongLiteral() const { | 1033 bool IsUseStrongLiteral() const { |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1086 | 1102 |
| 1087 int position() const { return RelocInfo::kNoPosition; } | 1103 int position() const { return RelocInfo::kNoPosition; } |
| 1088 void set_function_token_position(int position) {} | 1104 void set_function_token_position(int position) {} |
| 1089 | 1105 |
| 1090 private: | 1106 private: |
| 1091 enum Type { | 1107 enum Type { |
| 1092 kExpression, | 1108 kExpression, |
| 1093 kIdentifierExpression, | 1109 kIdentifierExpression, |
| 1094 kStringLiteralExpression, | 1110 kStringLiteralExpression, |
| 1095 kBinaryOperationExpression, | 1111 kBinaryOperationExpression, |
| 1096 kSpreadExpression | 1112 kSpreadExpression, |
| 1113 kObjectLiteralExpression, |
| 1114 kArrayLiteralExpression |
| 1097 }; | 1115 }; |
| 1098 | 1116 |
| 1099 enum ExpressionType { | 1117 enum ExpressionType { |
| 1100 kThisExpression, | 1118 kThisExpression, |
| 1101 kThisPropertyExpression, | 1119 kThisPropertyExpression, |
| 1102 kPropertyExpression, | 1120 kPropertyExpression, |
| 1103 kCallExpression, | 1121 kCallExpression, |
| 1104 kSuperCallReference, | 1122 kSuperCallReference, |
| 1105 kNoTemplateTagExpression | 1123 kNoTemplateTagExpression |
| 1106 }; | 1124 }; |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1224 PreParserIdentifier js_flags, | 1242 PreParserIdentifier js_flags, |
| 1225 int literal_index, | 1243 int literal_index, |
| 1226 bool is_strong, | 1244 bool is_strong, |
| 1227 int pos) { | 1245 int pos) { |
| 1228 return PreParserExpression::Default(); | 1246 return PreParserExpression::Default(); |
| 1229 } | 1247 } |
| 1230 PreParserExpression NewArrayLiteral(PreParserExpressionList values, | 1248 PreParserExpression NewArrayLiteral(PreParserExpressionList values, |
| 1231 int literal_index, | 1249 int literal_index, |
| 1232 bool is_strong, | 1250 bool is_strong, |
| 1233 int pos) { | 1251 int pos) { |
| 1234 return PreParserExpression::Default(); | 1252 return PreParserExpression::ArrayLiteral(); |
| 1235 } | 1253 } |
| 1236 PreParserExpression NewArrayLiteral(PreParserExpressionList values, | 1254 PreParserExpression NewArrayLiteral(PreParserExpressionList values, |
| 1237 int first_spread_index, int literal_index, | 1255 int first_spread_index, int literal_index, |
| 1238 bool is_strong, int pos) { | 1256 bool is_strong, int pos) { |
| 1239 return PreParserExpression::Default(); | 1257 return PreParserExpression::ArrayLiteral(); |
| 1240 } | 1258 } |
| 1241 PreParserExpression NewObjectLiteralProperty(PreParserExpression key, | 1259 PreParserExpression NewObjectLiteralProperty(PreParserExpression key, |
| 1242 PreParserExpression value, | 1260 PreParserExpression value, |
| 1243 ObjectLiteralProperty::Kind kind, | 1261 ObjectLiteralProperty::Kind kind, |
| 1244 bool is_static, | 1262 bool is_static, |
| 1245 bool is_computed_name) { | 1263 bool is_computed_name) { |
| 1246 return PreParserExpression::Default(); | 1264 return PreParserExpression::Default(); |
| 1247 } | 1265 } |
| 1248 PreParserExpression NewObjectLiteralProperty(PreParserExpression key, | 1266 PreParserExpression NewObjectLiteralProperty(PreParserExpression key, |
| 1249 PreParserExpression value, | 1267 PreParserExpression value, |
| 1250 bool is_static, | 1268 bool is_static, |
| 1251 bool is_computed_name) { | 1269 bool is_computed_name) { |
| 1252 return PreParserExpression::Default(); | 1270 return PreParserExpression::Default(); |
| 1253 } | 1271 } |
| 1254 PreParserExpression NewObjectLiteral(PreParserExpressionList properties, | 1272 PreParserExpression NewObjectLiteral(PreParserExpressionList properties, |
| 1255 int literal_index, | 1273 int literal_index, |
| 1256 int boilerplate_properties, | 1274 int boilerplate_properties, |
| 1257 bool has_function, | 1275 bool has_function, |
| 1258 bool is_strong, | 1276 bool is_strong, |
| 1259 int pos) { | 1277 int pos) { |
| 1260 return PreParserExpression::Default(); | 1278 return PreParserExpression::ObjectLiteral(); |
| 1261 } | 1279 } |
| 1262 PreParserExpression NewVariableProxy(void* variable) { | 1280 PreParserExpression NewVariableProxy(void* variable) { |
| 1263 return PreParserExpression::Default(); | 1281 return PreParserExpression::Default(); |
| 1264 } | 1282 } |
| 1265 PreParserExpression NewProperty(PreParserExpression obj, | 1283 PreParserExpression NewProperty(PreParserExpression obj, |
| 1266 PreParserExpression key, | 1284 PreParserExpression key, |
| 1267 int pos) { | 1285 int pos) { |
| 1268 if (obj.IsThis()) { | 1286 if (obj.IsThis()) { |
| 1269 return PreParserExpression::ThisProperty(); | 1287 return PreParserExpression::ThisProperty(); |
| 1270 } | 1288 } |
| (...skipping 2933 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4204 return; | 4222 return; |
| 4205 } | 4223 } |
| 4206 has_seen_constructor_ = true; | 4224 has_seen_constructor_ = true; |
| 4207 return; | 4225 return; |
| 4208 } | 4226 } |
| 4209 } | 4227 } |
| 4210 } // namespace internal | 4228 } // namespace internal |
| 4211 } // namespace v8 | 4229 } // namespace v8 |
| 4212 | 4230 |
| 4213 #endif // V8_PREPARSER_H | 4231 #endif // V8_PREPARSER_H |
| OLD | NEW |