| Index: src/rewriter.cc
|
| diff --git a/src/rewriter.cc b/src/rewriter.cc
|
| index c92ccda730fbe604d04434ab7f7abf6257748eb0..1e950c2bb24e03ff8067a4a605b5fba454ea9b3b 100644
|
| --- a/src/rewriter.cc
|
| +++ b/src/rewriter.cc
|
| @@ -20,7 +20,9 @@ class Processor: public AstVisitor {
|
| result_assigned_(false),
|
| is_set_(false),
|
| in_try_(false),
|
| - factory_(zone) {
|
| + // Passing a null AstStringTable is fine, because Processor doesn't
|
| + // need to create strings or literals.
|
| + factory_(zone, NULL) {
|
| InitializeAstVisitor(zone);
|
| }
|
|
|
| @@ -234,8 +236,10 @@ bool Rewriter::Rewrite(CompilationInfo* info) {
|
|
|
| ZoneList<Statement*>* body = function->body();
|
| if (!body->is_empty()) {
|
| - Variable* result = scope->NewTemporary(
|
| - info->isolate()->factory()->dot_result_string());
|
| + Variable* result =
|
| + scope->NewTemporary(info->ast_value_factory()->dot_result_string());
|
| + // The name string must be internalized at this point.
|
| + ASSERT(!result->name().is_null());
|
| Processor processor(result, info->zone());
|
| processor.Process(body);
|
| if (processor.HasStackOverflow()) return false;
|
| @@ -250,7 +254,7 @@ bool Rewriter::Rewrite(CompilationInfo* info) {
|
| // coincides with the end of the with scope which is the position of '1'.
|
| int pos = function->end_position();
|
| VariableProxy* result_proxy = processor.factory()->NewVariableProxy(
|
| - result->name(), false, result->interface(), pos);
|
| + result->raw_name(), false, result->interface(), pos);
|
| result_proxy->BindTo(result);
|
| Statement* result_statement =
|
| processor.factory()->NewReturnStatement(result_proxy, pos);
|
|
|