| Index: src/full-codegen.cc
|
| diff --git a/src/full-codegen.cc b/src/full-codegen.cc
|
| index 61a6eac6349a73896b88b5676b8660552affb151..bd3846711d3216b7935a1d32d643408dd5caed50 100644
|
| --- a/src/full-codegen.cc
|
| +++ b/src/full-codegen.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "src/v8.h"
|
|
|
| +#include "src/ast.h"
|
| +#include "src/ast-numbering.h"
|
| #include "src/code-factory.h"
|
| #include "src/codegen.h"
|
| #include "src/compiler.h"
|
| @@ -367,11 +369,22 @@ unsigned FullCodeGenerator::EmitBackEdgeTable() {
|
|
|
| void FullCodeGenerator::EnsureSlotContainsAllocationSite(
|
| FeedbackVectorSlot slot) {
|
| - Handle<FixedArray> vector = FeedbackVector();
|
| - if (!vector->get(slot.ToInt())->IsAllocationSite()) {
|
| + Handle<TypeFeedbackVector> vector = FeedbackVector();
|
| + if (!vector->Get(slot)->IsAllocationSite()) {
|
| Handle<AllocationSite> allocation_site =
|
| isolate()->factory()->NewAllocationSite();
|
| - vector->set(slot.ToInt(), *allocation_site);
|
| + vector->Set(slot, *allocation_site);
|
| + }
|
| +}
|
| +
|
| +
|
| +void FullCodeGenerator::EnsureSlotContainsAllocationSite(
|
| + FeedbackVectorICSlot slot) {
|
| + Handle<TypeFeedbackVector> vector = FeedbackVector();
|
| + if (!vector->Get(slot)->IsAllocationSite()) {
|
| + Handle<AllocationSite> allocation_site =
|
| + isolate()->factory()->NewAllocationSite();
|
| + vector->Set(slot, *allocation_site);
|
| }
|
| }
|
|
|
| @@ -1567,9 +1580,9 @@ void FullCodeGenerator::VisitClassLiteral(ClassLiteral* lit) {
|
| __ Push(Smi::FromInt(lit->start_position()));
|
| __ Push(Smi::FromInt(lit->end_position()));
|
|
|
| - // TODO(arv): Process methods
|
| -
|
| __ CallRuntime(Runtime::kDefineClass, 6);
|
| + EmitClassDefineProperties(lit);
|
| +
|
| context()->Plug(result_register());
|
| }
|
|
|
|
|