| Index: src/fast-codegen.cc
|
| diff --git a/src/fast-codegen.cc b/src/fast-codegen.cc
|
| index adca9908064d52eee0981cec09cf6281aa221d7b..5a8c09e6e280dc2c48352577e9df97490f0cf6b5 100644
|
| --- a/src/fast-codegen.cc
|
| +++ b/src/fast-codegen.cc
|
| @@ -49,9 +49,10 @@ namespace internal {
|
| } while (false)
|
|
|
|
|
| -void FastCodeGenSyntaxChecker::Check(FunctionLiteral* fun) {
|
| +void FastCodeGenSyntaxChecker::Check(FunctionLiteral* fun,
|
| + CompilationInfo* info) {
|
| // We do not specialize if we do not have a receiver.
|
| - if (receiver().is_null()) BAILOUT("No receiver");
|
| + if (!info->has_receiver()) BAILOUT("No receiver");
|
|
|
| // We do not support stack or heap slots (both of which require
|
| // allocation).
|
| @@ -253,10 +254,11 @@ void FastCodeGenSyntaxChecker::VisitAssignment(Assignment* expr) {
|
| // symbol but we do not assume that.
|
| Literal* key = prop->key()->AsLiteral();
|
| if (key != NULL && key->handle()->IsString()) {
|
| + Handle<Object> receiver = info()->receiver();
|
| Handle<String> name = Handle<String>::cast(key->handle());
|
| LookupResult lookup;
|
| - receiver()->Lookup(*name, &lookup);
|
| - if (lookup.holder() != *receiver()) BAILOUT("Non-own property assignment");
|
| + receiver->Lookup(*name, &lookup);
|
| + if (lookup.holder() != *receiver) BAILOUT("Non-own property assignment");
|
| if (!lookup.type() == FIELD) BAILOUT("Non-field property assignment");
|
| } else {
|
| UNREACHABLE();
|
|
|