| Index: src/parser.cc
|
| diff --git a/src/parser.cc b/src/parser.cc
|
| index 383f96c8faf98609a165086a58954ddc04e454b8..a961f9140386b67cf84dbfb26b62341d37685dab 100644
|
| --- a/src/parser.cc
|
| +++ b/src/parser.cc
|
| @@ -759,12 +759,16 @@ Expression* ParserTraits::ThisExpression(Scope* scope, AstNodeFactory* factory,
|
| Expression* ParserTraits::SuperPropertyReference(Scope* scope,
|
| AstNodeFactory* factory,
|
| int pos) {
|
| - VariableProxy* home_object_proxy = scope->NewUnresolved(
|
| - factory, parser_->ast_value_factory()->home_object_string(),
|
| + // this_function[home_object_symbol]
|
| + VariableProxy* this_function_proxy = scope->NewUnresolved(
|
| + factory, parser_->ast_value_factory()->this_function_string(),
|
| Variable::NORMAL, pos);
|
| + Expression* home_object_symbol_literal =
|
| + factory->NewSymbolLiteral("home_object_symbol", RelocInfo::kNoPosition);
|
| + Expression* home_object = factory->NewProperty(
|
| + this_function_proxy, home_object_symbol_literal, pos);
|
| return factory->NewSuperPropertyReference(
|
| - ThisExpression(scope, factory, pos)->AsVariableProxy(), home_object_proxy,
|
| - pos);
|
| + ThisExpression(scope, factory, pos)->AsVariableProxy(), home_object, pos);
|
| }
|
|
|
|
|
|
|