144bc7080a85cc25bff3b9b77cd53f7beffab711bkarlklose@chromium.org// Copyright 2011 the V8 project authors. All rights reserved. 23484964a86451e86dcf04be9bd8c0d76ee04f081rossberg@chromium.org// Use of this source code is governed by a BSD-style license that can be 33484964a86451e86dcf04be9bd8c0d76ee04f081rossberg@chromium.org// found in the LICENSE file. 443d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 543d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen#ifndef V8_REWRITER_H_ 643d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen#define V8_REWRITER_H_ 743d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 871affb54842da76b24f0bb3184e9f0960523f89dkasperl@chromium.orgnamespace v8 { 971affb54842da76b24f0bb3184e9f0960523f89dkasperl@chromium.orgnamespace internal { 1043d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 11b61a0d13e9690ef4c2de424bbe82a38884d981a6ager@chromium.orgclass CompilationInfo; 1243d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 1343d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansenclass Rewriter { 1443d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen public: 15b61a0d13e9690ef4c2de424bbe82a38884d981a6ager@chromium.org // Rewrite top-level code (ECMA 262 "programs") so as to conservatively 16b61a0d13e9690ef4c2de424bbe82a38884d981a6ager@chromium.org // include an assignment of the value of the last statement in the code to 17b61a0d13e9690ef4c2de424bbe82a38884d981a6ager@chromium.org // a compiler-generated temporary variable wherever needed. 18b61a0d13e9690ef4c2de424bbe82a38884d981a6ager@chromium.org // 19b61a0d13e9690ef4c2de424bbe82a38884d981a6ager@chromium.org // Assumes code has been parsed and scopes have been analyzed. Mutates the 20b61a0d13e9690ef4c2de424bbe82a38884d981a6ager@chromium.org // AST, so the AST should not continue to be used in the case of failure. 21b61a0d13e9690ef4c2de424bbe82a38884d981a6ager@chromium.org static bool Rewrite(CompilationInfo* info); 2243d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen}; 2343d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 2443d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 2543d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen} } // namespace v8::internal 2643d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 2743d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen#endif // V8_REWRITER_H_ 28