| Index: src/parameter-initializer-rewriter.cc
|
| diff --git a/src/parameter-initializer-rewriter.cc b/src/parameter-initializer-rewriter.cc
|
| deleted file mode 100644
|
| index 28f741c1f6238887a1cad6d185344b6aec2ecf62..0000000000000000000000000000000000000000
|
| --- a/src/parameter-initializer-rewriter.cc
|
| +++ /dev/null
|
| @@ -1,82 +0,0 @@
|
| -// Copyright 2015 the V8 project authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "src/parameter-initializer-rewriter.h"
|
| -
|
| -#include "src/ast.h"
|
| -#include "src/ast-expression-visitor.h"
|
| -#include "src/scopes.h"
|
| -
|
| -namespace v8 {
|
| -namespace internal {
|
| -
|
| -namespace {
|
| -
|
| -
|
| -class Rewriter final : public AstExpressionVisitor {
|
| - public:
|
| - Rewriter(uintptr_t stack_limit, Expression* initializer, Scope* old_scope,
|
| - Scope* new_scope)
|
| - : AstExpressionVisitor(stack_limit, initializer),
|
| - old_scope_(old_scope),
|
| - new_scope_(new_scope) {}
|
| -
|
| - private:
|
| - void VisitExpression(Expression* expr) override {}
|
| -
|
| - void VisitFunctionLiteral(FunctionLiteral* expr) override;
|
| - void VisitClassLiteral(ClassLiteral* expr) override;
|
| - void VisitVariableProxy(VariableProxy* expr) override;
|
| -
|
| - Scope* old_scope_;
|
| - Scope* new_scope_;
|
| -};
|
| -
|
| -
|
| -void Rewriter::VisitFunctionLiteral(FunctionLiteral* function_literal) {
|
| - function_literal->scope()->ReplaceOuterScope(new_scope_);
|
| -}
|
| -
|
| -
|
| -void Rewriter::VisitClassLiteral(ClassLiteral* class_literal) {
|
| - class_literal->scope()->ReplaceOuterScope(new_scope_);
|
| - if (class_literal->extends() != nullptr) {
|
| - Visit(class_literal->extends());
|
| - }
|
| - // No need to visit the constructor since it will have the class
|
| - // scope on its scope chain.
|
| - ZoneList<ObjectLiteralProperty*>* props = class_literal->properties();
|
| - for (int i = 0; i < props->length(); ++i) {
|
| - ObjectLiteralProperty* prop = props->at(i);
|
| - if (!prop->key()->IsLiteral()) {
|
| - Visit(prop->key());
|
| - }
|
| - // No need to visit the values, since all values are functions with
|
| - // the class scope on their scope chain.
|
| - DCHECK(prop->value()->IsFunctionLiteral());
|
| - }
|
| -}
|
| -
|
| -
|
| -void Rewriter::VisitVariableProxy(VariableProxy* proxy) {
|
| - DCHECK(!proxy->is_resolved());
|
| - if (old_scope_->RemoveUnresolved(proxy)) {
|
| - new_scope_->AddUnresolved(proxy);
|
| - }
|
| -}
|
| -
|
| -
|
| -} // anonymous namespace
|
| -
|
| -
|
| -void RewriteParameterInitializerScope(uintptr_t stack_limit,
|
| - Expression* initializer, Scope* old_scope,
|
| - Scope* new_scope) {
|
| - Rewriter rewriter(stack_limit, initializer, old_scope, new_scope);
|
| - rewriter.Run();
|
| -}
|
| -
|
| -
|
| -} // namespace internal
|
| -} // namespace v8
|
|
|