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

Unified Diff: src/preparser.h

Issue 1161393007: OLD type Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fix Created 5 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/preparse-data.h ('k') | src/preparser.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/preparser.h
diff --git a/src/preparser.h b/src/preparser.h
index 7a68e835ff2870e5397c2be37f7f17acb4fed00f..09dcccbc0eae101a0c862db6bd9888befc70f799 100644
--- a/src/preparser.h
+++ b/src/preparser.h
@@ -536,6 +536,7 @@ class ParserBase : public Traits {
}
LanguageMode language_mode() { return scope_->language_mode(); }
+ AsmMode asm_mode() { return scope_->asm_mode(); }
bool is_generator() const { return function_state_->is_generator(); }
// Report syntax errors.
@@ -1143,6 +1144,11 @@ class PreParserExpression {
IsUseStrongField::encode(true));
}
+ static PreParserExpression UseAsmStringLiteral() {
+ return PreParserExpression(TypeField::encode(kStringLiteralExpression) |
+ IsUseAsmField::encode(true));
+ }
+
static PreParserExpression This() {
return PreParserExpression(TypeField::encode(kExpression) |
ExpressionTypeField::encode(kThisExpression));
@@ -1194,6 +1200,11 @@ class PreParserExpression {
IsUseStrongField::decode(code_);
}
+ bool IsUseAsmLiteral() const {
+ return TypeField::decode(code_) == kStringLiteralExpression &&
+ IsUseAsmField::decode(code_);
+ }
+
bool IsThis() const {
return TypeField::decode(code_) == kExpression &&
ExpressionTypeField::decode(code_) == kThisExpression;
@@ -1277,6 +1288,7 @@ class PreParserExpression {
typedef BitField<ExpressionType, TypeField::kNext, 3> ExpressionTypeField;
typedef BitField<bool, TypeField::kNext, 1> IsUseStrictField;
typedef BitField<bool, IsUseStrictField::kNext, 1> IsUseStrongField;
+ typedef BitField<bool, IsUseStrongField::kNext, 1> IsUseAsmField;
typedef BitField<PreParserIdentifier::Type, TypeField::kNext, 10>
IdentifierTypeField;
@@ -1327,6 +1339,9 @@ class PreParserStatement {
if (expression.IsUseStrongLiteral()) {
return PreParserStatement(kUseStrongExpressionStatement);
}
+ if (expression.IsUseAsmLiteral()) {
+ return PreParserStatement(kUseAsmExpressionStatement);
+ }
if (expression.IsStringLiteral()) {
return PreParserStatement(kStringLiteralExpressionStatement);
}
@@ -1343,6 +1358,8 @@ class PreParserStatement {
bool IsUseStrongLiteral() { return code_ == kUseStrongExpressionStatement; }
+ bool IsUseAsmLiteral() { return code_ == kUseAsmExpressionStatement; }
+
bool IsFunctionDeclaration() {
return code_ == kFunctionDeclaration;
}
@@ -1358,6 +1375,7 @@ class PreParserStatement {
kStringLiteralExpressionStatement,
kUseStrictExpressionStatement,
kUseStrongExpressionStatement,
+ kUseAsmExpressionStatement,
kFunctionDeclaration
};
« no previous file with comments | « src/preparse-data.h ('k') | src/preparser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698