| Index: src/wasm/asm-wasm-builder.cc
|
| diff --git a/src/wasm/asm-wasm-builder.cc b/src/wasm/asm-wasm-builder.cc
|
| index bf6db0ece66ca42974b50086d2e21723a3c6bed6..70217fe8470e7fe2b8cd486118ae7311f05d398a 100644
|
| --- a/src/wasm/asm-wasm-builder.cc
|
| +++ b/src/wasm/asm-wasm-builder.cc
|
| @@ -120,9 +120,9 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| BuildForeignInitFunction();
|
| }
|
|
|
| - void VisitVariableDeclaration(VariableDeclaration* decl) {}
|
| + void VisitVariableDeclaration(VariableDeclaration* decl) override {}
|
|
|
| - void VisitFunctionDeclaration(FunctionDeclaration* decl) {
|
| + void VisitFunctionDeclaration(FunctionDeclaration* decl) override {
|
| DCHECK_EQ(kModuleScope, scope_);
|
| DCHECK_NULL(current_function_builder_);
|
| uint32_t index = LookupOrInsertFunction(decl->proxy()->var());
|
| @@ -134,11 +134,11 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| local_variables_.Clear();
|
| }
|
|
|
| - void VisitImportDeclaration(ImportDeclaration* decl) {}
|
| + void VisitImportDeclaration(ImportDeclaration* decl) override {}
|
|
|
| - void VisitExportDeclaration(ExportDeclaration* decl) {}
|
| + void VisitExportDeclaration(ExportDeclaration* decl) override {}
|
|
|
| - void VisitStatements(ZoneList<Statement*>* stmts) {
|
| + void VisitStatements(ZoneList<Statement*>* stmts) override {
|
| for (int i = 0; i < stmts->length(); ++i) {
|
| Statement* stmt = stmts->at(i);
|
| ExpressionStatement* e = stmt->AsExpressionStatement();
|
| @@ -150,7 +150,7 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| }
|
| }
|
|
|
| - void VisitBlock(Block* stmt) {
|
| + void VisitBlock(Block* stmt) override {
|
| if (stmt->statements()->length() == 1) {
|
| ExpressionStatement* expr =
|
| stmt->statements()->at(0)->AsExpressionStatement();
|
| @@ -187,15 +187,17 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| }
|
| };
|
|
|
| - void VisitExpressionStatement(ExpressionStatement* stmt) {
|
| + void VisitExpressionStatement(ExpressionStatement* stmt) override {
|
| RECURSE(Visit(stmt->expression()));
|
| }
|
|
|
| - void VisitEmptyStatement(EmptyStatement* stmt) {}
|
| + void VisitEmptyStatement(EmptyStatement* stmt) override {}
|
|
|
| - void VisitEmptyParentheses(EmptyParentheses* paren) { UNREACHABLE(); }
|
| + void VisitEmptyParentheses(EmptyParentheses* paren) override {
|
| + UNREACHABLE();
|
| + }
|
|
|
| - void VisitIfStatement(IfStatement* stmt) {
|
| + void VisitIfStatement(IfStatement* stmt) override {
|
| DCHECK_EQ(kFuncScope, scope_);
|
| RECURSE(Visit(stmt->condition()));
|
| current_function_builder_->Emit(kExprIf);
|
| @@ -212,7 +214,7 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| breakable_blocks_.pop_back();
|
| }
|
|
|
| - void VisitContinueStatement(ContinueStatement* stmt) {
|
| + void VisitContinueStatement(ContinueStatement* stmt) override {
|
| DCHECK_EQ(kFuncScope, scope_);
|
| DCHECK_NOT_NULL(stmt->target());
|
| int i = static_cast<int>(breakable_blocks_.size()) - 1;
|
| @@ -233,7 +235,7 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| current_function_builder_->EmitVarInt(block_distance);
|
| }
|
|
|
| - void VisitBreakStatement(BreakStatement* stmt) {
|
| + void VisitBreakStatement(BreakStatement* stmt) override {
|
| DCHECK_EQ(kFuncScope, scope_);
|
| DCHECK_NOT_NULL(stmt->target());
|
| int i = static_cast<int>(breakable_blocks_.size()) - 1;
|
| @@ -256,7 +258,7 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| current_function_builder_->EmitVarInt(block_distance);
|
| }
|
|
|
| - void VisitReturnStatement(ReturnStatement* stmt) {
|
| + void VisitReturnStatement(ReturnStatement* stmt) override {
|
| if (scope_ == kModuleScope) {
|
| scope_ = kExportScope;
|
| RECURSE(Visit(stmt->expression()));
|
| @@ -271,7 +273,7 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| }
|
| }
|
|
|
| - void VisitWithStatement(WithStatement* stmt) { UNREACHABLE(); }
|
| + void VisitWithStatement(WithStatement* stmt) override { UNREACHABLE(); }
|
|
|
| void HandleCase(CaseNode* node,
|
| const ZoneMap<int, unsigned int>& case_to_block,
|
| @@ -339,7 +341,7 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| }
|
| }
|
|
|
| - void VisitSwitchStatement(SwitchStatement* stmt) {
|
| + void VisitSwitchStatement(SwitchStatement* stmt) override {
|
| VariableProxy* tag = stmt->tag()->AsVariableProxy();
|
| DCHECK_NOT_NULL(tag);
|
| ZoneList<CaseClause*>* clauses = stmt->cases();
|
| @@ -391,9 +393,9 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| }
|
| }
|
|
|
| - void VisitCaseClause(CaseClause* clause) { UNREACHABLE(); }
|
| + void VisitCaseClause(CaseClause* clause) override { UNREACHABLE(); }
|
|
|
| - void VisitDoWhileStatement(DoWhileStatement* stmt) {
|
| + void VisitDoWhileStatement(DoWhileStatement* stmt) override {
|
| DCHECK_EQ(kFuncScope, scope_);
|
| BlockVisitor visitor(this, stmt->AsBreakableStatement(), kExprLoop, true);
|
| RECURSE(Visit(stmt->body()));
|
| @@ -403,7 +405,7 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| current_function_builder_->Emit(kExprEnd);
|
| }
|
|
|
| - void VisitWhileStatement(WhileStatement* stmt) {
|
| + void VisitWhileStatement(WhileStatement* stmt) override {
|
| DCHECK_EQ(kFuncScope, scope_);
|
| BlockVisitor visitor(this, stmt->AsBreakableStatement(), kExprLoop, true);
|
| RECURSE(Visit(stmt->cond()));
|
| @@ -415,7 +417,7 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| breakable_blocks_.pop_back();
|
| }
|
|
|
| - void VisitForStatement(ForStatement* stmt) {
|
| + void VisitForStatement(ForStatement* stmt) override {
|
| DCHECK_EQ(kFuncScope, scope_);
|
| if (stmt->init() != nullptr) {
|
| RECURSE(Visit(stmt->init()));
|
| @@ -439,17 +441,23 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| current_function_builder_->EmitWithU8U8(kExprBr, ARITY_0, 0);
|
| }
|
|
|
| - void VisitForInStatement(ForInStatement* stmt) { UNREACHABLE(); }
|
| + void VisitForInStatement(ForInStatement* stmt) override { UNREACHABLE(); }
|
|
|
| - void VisitForOfStatement(ForOfStatement* stmt) { UNREACHABLE(); }
|
| + void VisitForOfStatement(ForOfStatement* stmt) override { UNREACHABLE(); }
|
|
|
| - void VisitTryCatchStatement(TryCatchStatement* stmt) { UNREACHABLE(); }
|
| + void VisitTryCatchStatement(TryCatchStatement* stmt) override {
|
| + UNREACHABLE();
|
| + }
|
|
|
| - void VisitTryFinallyStatement(TryFinallyStatement* stmt) { UNREACHABLE(); }
|
| + void VisitTryFinallyStatement(TryFinallyStatement* stmt) override {
|
| + UNREACHABLE();
|
| + }
|
|
|
| - void VisitDebuggerStatement(DebuggerStatement* stmt) { UNREACHABLE(); }
|
| + void VisitDebuggerStatement(DebuggerStatement* stmt) override {
|
| + UNREACHABLE();
|
| + }
|
|
|
| - void VisitFunctionLiteral(FunctionLiteral* expr) {
|
| + void VisitFunctionLiteral(FunctionLiteral* expr) override {
|
| Scope* scope = expr->scope();
|
| if (scope_ == kFuncScope) {
|
| if (bounds_->get(expr).lower->IsFunction()) {
|
| @@ -474,11 +482,11 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| RECURSE(VisitDeclarations(scope->declarations()));
|
| }
|
|
|
| - void VisitNativeFunctionLiteral(NativeFunctionLiteral* expr) {
|
| + void VisitNativeFunctionLiteral(NativeFunctionLiteral* expr) override {
|
| UNREACHABLE();
|
| }
|
|
|
| - void VisitConditional(Conditional* expr) {
|
| + void VisitConditional(Conditional* expr) override {
|
| DCHECK_EQ(kFuncScope, scope_);
|
| RECURSE(Visit(expr->condition()));
|
| // WASM ifs come with implicit blocks for both arms.
|
| @@ -543,7 +551,7 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| return true;
|
| }
|
|
|
| - void VisitVariableProxy(VariableProxy* expr) {
|
| + void VisitVariableProxy(VariableProxy* expr) override {
|
| if (scope_ == kFuncScope || scope_ == kInitScope) {
|
| Variable* var = expr->var();
|
| if (VisitStdlibConstant(var)) {
|
| @@ -561,7 +569,7 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| }
|
| }
|
|
|
| - void VisitLiteral(Literal* expr) {
|
| + void VisitLiteral(Literal* expr) override {
|
| Handle<Object> value = expr->value();
|
| if (!value->IsNumber() || (scope_ != kFuncScope && scope_ != kInitScope)) {
|
| return;
|
| @@ -591,9 +599,9 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| }
|
| }
|
|
|
| - void VisitRegExpLiteral(RegExpLiteral* expr) { UNREACHABLE(); }
|
| + void VisitRegExpLiteral(RegExpLiteral* expr) override { UNREACHABLE(); }
|
|
|
| - void VisitObjectLiteral(ObjectLiteral* expr) {
|
| + void VisitObjectLiteral(ObjectLiteral* expr) override {
|
| ZoneList<ObjectLiteralProperty*>* props = expr->properties();
|
| for (int i = 0; i < props->length(); ++i) {
|
| ObjectLiteralProperty* prop = props->at(i);
|
| @@ -615,7 +623,7 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| }
|
| }
|
|
|
| - void VisitArrayLiteral(ArrayLiteral* expr) { UNREACHABLE(); }
|
| + void VisitArrayLiteral(ArrayLiteral* expr) override { UNREACHABLE(); }
|
|
|
| void LoadInitFunction() {
|
| current_function_builder_ = builder_->FunctionAt(init_function_index_);
|
| @@ -829,7 +837,7 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| }
|
| }
|
|
|
| - void VisitAssignment(Assignment* expr) {
|
| + void VisitAssignment(Assignment* expr) override {
|
| bool as_init = false;
|
| if (scope_ == kModuleScope) {
|
| Property* prop = expr->value()->AsProperty();
|
| @@ -876,9 +884,9 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| if (as_init) UnLoadInitFunction();
|
| }
|
|
|
| - void VisitYield(Yield* expr) { UNREACHABLE(); }
|
| + void VisitYield(Yield* expr) override { UNREACHABLE(); }
|
|
|
| - void VisitThrow(Throw* expr) { UNREACHABLE(); }
|
| + void VisitThrow(Throw* expr) override { UNREACHABLE(); }
|
|
|
| void VisitForeignVariable(bool is_float, Variable* var, Property* expr) {
|
| DCHECK(expr->obj()->AsVariableProxy());
|
| @@ -966,7 +974,7 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| UNREACHABLE();
|
| }
|
|
|
| - void VisitProperty(Property* expr) {
|
| + void VisitProperty(Property* expr) override {
|
| MachineType type;
|
| VisitPropertyAndEmitIndex(expr, &type);
|
| WasmOpcode opcode;
|
| @@ -1254,7 +1262,7 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| }
|
| }
|
|
|
| - void VisitCall(Call* expr) {
|
| + void VisitCall(Call* expr) override {
|
| Call::CallType call_type = expr->GetCallType(isolate_);
|
| switch (call_type) {
|
| case Call::OTHER_CALL: {
|
| @@ -1315,11 +1323,11 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| }
|
| }
|
|
|
| - void VisitCallNew(CallNew* expr) { UNREACHABLE(); }
|
| + void VisitCallNew(CallNew* expr) override { UNREACHABLE(); }
|
|
|
| - void VisitCallRuntime(CallRuntime* expr) { UNREACHABLE(); }
|
| + void VisitCallRuntime(CallRuntime* expr) override { UNREACHABLE(); }
|
|
|
| - void VisitUnaryOperation(UnaryOperation* expr) {
|
| + void VisitUnaryOperation(UnaryOperation* expr) override {
|
| RECURSE(Visit(expr->expression()));
|
| switch (expr->op()) {
|
| case Token::NOT: {
|
| @@ -1332,7 +1340,7 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| }
|
| }
|
|
|
| - void VisitCountOperation(CountOperation* expr) { UNREACHABLE(); }
|
| + void VisitCountOperation(CountOperation* expr) override { UNREACHABLE(); }
|
|
|
| bool MatchIntBinaryOperation(BinaryOperation* expr, Token::Value op,
|
| int32_t val) {
|
| @@ -1469,7 +1477,7 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| }
|
| }
|
|
|
| - void VisitBinaryOperation(BinaryOperation* expr) {
|
| + void VisitBinaryOperation(BinaryOperation* expr) override {
|
| ConvertOperation convertOperation = MatchBinaryOperation(expr);
|
| if (convertOperation == kToDouble) {
|
| RECURSE(Visit(expr->left()));
|
| @@ -1547,7 +1555,7 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| }
|
| }
|
|
|
| - void VisitCompareOperation(CompareOperation* expr) {
|
| + void VisitCompareOperation(CompareOperation* expr) override {
|
| RECURSE(Visit(expr->left()));
|
| RECURSE(Visit(expr->right()));
|
| switch (expr->op()) {
|
| @@ -1618,32 +1626,37 @@ class AsmWasmBuilderImpl : public AstVisitor {
|
| #undef SIGNED
|
| #undef NON_SIGNED
|
|
|
| - void VisitThisFunction(ThisFunction* expr) { UNREACHABLE(); }
|
| + void VisitThisFunction(ThisFunction* expr) override { UNREACHABLE(); }
|
|
|
| - void VisitDeclarations(ZoneList<Declaration*>* decls) {
|
| + void VisitDeclarations(ZoneList<Declaration*>* decls) override {
|
| for (int i = 0; i < decls->length(); ++i) {
|
| Declaration* decl = decls->at(i);
|
| RECURSE(Visit(decl));
|
| }
|
| }
|
|
|
| - void VisitClassLiteral(ClassLiteral* expr) { UNREACHABLE(); }
|
| + void VisitClassLiteral(ClassLiteral* expr) override { UNREACHABLE(); }
|
|
|
| - void VisitSpread(Spread* expr) { UNREACHABLE(); }
|
| + void VisitSpread(Spread* expr) override { UNREACHABLE(); }
|
|
|
| - void VisitSuperPropertyReference(SuperPropertyReference* expr) {
|
| + void VisitSuperPropertyReference(SuperPropertyReference* expr) override {
|
| UNREACHABLE();
|
| }
|
|
|
| - void VisitSuperCallReference(SuperCallReference* expr) { UNREACHABLE(); }
|
| + void VisitSuperCallReference(SuperCallReference* expr) override {
|
| + UNREACHABLE();
|
| + }
|
|
|
| - void VisitSloppyBlockFunctionStatement(SloppyBlockFunctionStatement* expr) {
|
| + void VisitSloppyBlockFunctionStatement(
|
| + SloppyBlockFunctionStatement* expr) override {
|
| UNREACHABLE();
|
| }
|
|
|
| - void VisitDoExpression(DoExpression* expr) { UNREACHABLE(); }
|
| + void VisitDoExpression(DoExpression* expr) override { UNREACHABLE(); }
|
|
|
| - void VisitRewritableExpression(RewritableExpression* expr) { UNREACHABLE(); }
|
| + void VisitRewritableExpression(RewritableExpression* expr) override {
|
| + UNREACHABLE();
|
| + }
|
|
|
| struct IndexContainer : public ZoneObject {
|
| uint32_t index;
|
|
|