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