summaryrefslogtreecommitdiff
path: root/deps/v8/src/parsing/preparser.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/parsing/preparser.h')
-rw-r--r--deps/v8/src/parsing/preparser.h53
1 files changed, 32 insertions, 21 deletions
diff --git a/deps/v8/src/parsing/preparser.h b/deps/v8/src/parsing/preparser.h
index 06c33eb42d..cca3b3675d 100644
--- a/deps/v8/src/parsing/preparser.h
+++ b/deps/v8/src/parsing/preparser.h
@@ -8,8 +8,8 @@
#include "src/ast/ast.h"
#include "src/ast/scopes.h"
#include "src/parsing/parser-base.h"
+#include "src/parsing/pending-compilation-error-handler.h"
#include "src/parsing/preparser-logger.h"
-#include "src/pending-compilation-error-handler.h"
namespace v8 {
namespace internal {
@@ -1230,32 +1230,39 @@ class PreParser : public ParserBase<PreParser> {
&was_added);
}
}
- V8_INLINE void DeclareClassProperty(ClassScope* scope,
- const PreParserIdentifier& class_name,
- const PreParserExpression& property,
- bool is_constructor,
- ClassInfo* class_info) {}
-
- V8_INLINE void DeclareClassField(ClassScope* scope,
- const PreParserExpression& property,
- const PreParserIdentifier& property_name,
- bool is_static, bool is_computed_name,
- bool is_private, ClassInfo* class_info) {
- DCHECK_IMPLIES(is_computed_name, !is_private);
+ V8_INLINE void DeclarePublicClassMethod(const PreParserIdentifier& class_name,
+ const PreParserExpression& property,
+ bool is_constructor,
+ ClassInfo* class_info) {}
+ V8_INLINE void DeclarePublicClassField(ClassScope* scope,
+ const PreParserExpression& property,
+ bool is_static, bool is_computed_name,
+ ClassInfo* class_info) {
if (is_computed_name) {
bool was_added;
DeclareVariableName(
ClassFieldVariableName(ast_value_factory(),
class_info->computed_field_count),
VariableMode::kConst, scope, &was_added);
- } else if (is_private) {
- bool was_added;
- DeclarePrivateVariableName(property_name.string_, scope, &was_added);
- if (!was_added) {
- Scanner::Location loc(property.position(), property.position() + 1);
- ReportMessageAt(loc, MessageTemplate::kVarRedeclaration,
- property_name.string_);
- }
+ }
+ }
+
+ V8_INLINE void DeclarePrivateClassMember(
+ ClassScope* scope, const PreParserIdentifier& property_name,
+ const PreParserExpression& property, ClassLiteralProperty::Kind kind,
+ bool is_static, ClassInfo* class_info) {
+ // TODO(joyee): We do not support private accessors yet (which allow
+ // declaring the same private name twice). Make them noops.
+ if (kind != ClassLiteralProperty::Kind::FIELD &&
+ kind != ClassLiteralProperty::Kind::METHOD) {
+ return;
+ }
+ bool was_added;
+ DeclarePrivateVariableName(property_name.string_, scope, &was_added);
+ if (!was_added) {
+ Scanner::Location loc(property.position(), property.position() + 1);
+ ReportMessageAt(loc, MessageTemplate::kVarRedeclaration,
+ property_name.string_);
}
}
@@ -1505,6 +1512,10 @@ class PreParser : public ParserBase<PreParser> {
scanner()->set_parser_error();
}
+ const AstRawString* GetRawNameFromIdentifier(const PreParserIdentifier& arg) {
+ return arg.string_;
+ }
+
// "null" return type creators.
V8_INLINE static PreParserIdentifier NullIdentifier() {
return PreParserIdentifier::Null();