Index: src/builtins.cc |
diff --git a/src/builtins.cc b/src/builtins.cc |
index edbc887afef30aa88a686414da554c32b4f2177f..3f68642bb2427b2bd14770b0f191e7d1b56aad04 100644 |
--- a/src/builtins.cc |
+++ b/src/builtins.cc |
@@ -31,6 +31,7 @@ |
#include "arguments.h" |
#include "bootstrapper.h" |
#include "builtins.h" |
+#include "cpu-profiler.h" |
#include "gdb-jit.h" |
#include "ic-inl.h" |
#include "heap-profiler.h" |
@@ -181,6 +182,7 @@ static inline bool CalledAsConstructor(Isolate* isolate) { |
return result; |
} |
+ |
// ---------------------------------------------------------------------------- |
BUILTIN(Illegal) { |
@@ -210,8 +212,9 @@ static MaybeObject* ArrayCodeGenericCommon(Arguments* args, |
if (maybe_array->IsFailure()) return maybe_array; |
AllocationSiteInfo* info = AllocationSiteInfo::FindForJSObject(array); |
- ElementsKind to_kind = array->GetElementsKind(); |
- if (info != NULL && info->GetElementsKindPayload(&to_kind)) { |
+ if (info != NULL && info->IsValid()) { |
+ AllocationSite* site = info->GetAllocationSite(); |
+ ElementsKind to_kind = site->GetElementsKindPayload(); |
if (IsMoreGeneralElementsKindTransition(array->GetElementsKind(), |
to_kind)) { |
// We have advice that we should change the elements kind |
@@ -1152,6 +1155,7 @@ BUILTIN(StrictModePoisonPill) { |
"strict_poison_pill", HandleVector<Object>(NULL, 0))); |
} |
+ |
// ----------------------------------------------------------------------------- |
// |
@@ -1431,14 +1435,17 @@ static void Generate_KeyedLoadIC_PreMonomorphic(MacroAssembler* masm) { |
KeyedLoadIC::GeneratePreMonomorphic(masm); |
} |
+ |
static void Generate_KeyedLoadIC_IndexedInterceptor(MacroAssembler* masm) { |
KeyedLoadIC::GenerateIndexedInterceptor(masm); |
} |
+ |
static void Generate_KeyedLoadIC_NonStrictArguments(MacroAssembler* masm) { |
KeyedLoadIC::GenerateNonStrictArguments(masm); |
} |
+ |
static void Generate_StoreIC_Slow(MacroAssembler* masm) { |
StoreIC::GenerateSlow(masm); |
} |
@@ -1538,14 +1545,17 @@ static void Generate_KeyedStoreIC_Initialize_Strict(MacroAssembler* masm) { |
KeyedStoreIC::GenerateInitialize(masm); |
} |
+ |
static void Generate_KeyedStoreIC_NonStrictArguments(MacroAssembler* masm) { |
KeyedStoreIC::GenerateNonStrictArguments(masm); |
} |
+ |
static void Generate_TransitionElementsSmiToDouble(MacroAssembler* masm) { |
KeyedStoreIC::GenerateTransitionElementsSmiToDouble(masm); |
} |
+ |
static void Generate_TransitionElementsDoubleToObject(MacroAssembler* masm) { |
KeyedStoreIC::GenerateTransitionElementsDoubleToObject(masm); |
} |
@@ -1715,6 +1725,7 @@ void Builtins::InitBuiltinFunctionTable() { |
#undef DEF_FUNCTION_PTR_A |
} |
+ |
void Builtins::SetUp(bool create_heap_objects) { |
ASSERT(!initialized_); |
Isolate* isolate = Isolate::Current(); |