1// Copyright 2015 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef V8_PARSING_PARAMETER_EXPRESSION_REWRITER_H_
6#define V8_PARSING_PARAMETER_EXPRESSION_REWRITER_H_
7
8#include "src/ast/ast-types.h"
9
10namespace v8 {
11namespace internal {
12
13class Expression;
14class Scope;
15
16// When an extra declaration scope needs to be inserted to account for
17// a sloppy eval in a default parameter or function body, the expressions
18// needs to be in that new inner scope which was added after initial
19// parsing.
20//
21// param_scope is the new inner scope, and its outer_scope() is assumed
22// to be the function scope which was used during the initial parse.
23void ReparentParameterExpressionScope(uintptr_t stack_limit, Expression* expr,
24                                      Scope* param_scope);
25
26}  // namespace internal
27}  // namespace v8
28
29#endif  // V8_PARSING_PARAMETER_EXPRESSION_REWRITER_H_
30