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(); |