1// Copyright 2011 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_REWRITER_H_
6#define V8_REWRITER_H_
7
8namespace v8 {
9namespace internal {
10
11class CompilationInfo;
12
13class Rewriter {
14 public:
15  // Rewrite top-level code (ECMA 262 "programs") so as to conservatively
16  // include an assignment of the value of the last statement in the code to
17  // a compiler-generated temporary variable wherever needed.
18  //
19  // Assumes code has been parsed and scopes have been analyzed.  Mutates the
20  // AST, so the AST should not continue to be used in the case of failure.
21  static bool Rewrite(CompilationInfo* info);
22};
23
24
25} }  // namespace v8::internal
26
27#endif  // V8_REWRITER_H_
28