Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: src/ic.cc

Issue 296693011: GCMole evaluation order issue in CallIC::DoCustomHandler(). (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "v8.h" 5 #include "v8.h"
6 6
7 #include "accessors.h" 7 #include "accessors.h"
8 #include "api.h" 8 #include "api.h"
9 #include "arguments.h" 9 #include "arguments.h"
10 #include "codegen.h" 10 #include "codegen.h"
(...skipping 1832 matching lines...) Expand 10 before | Expand all | Expand 10 after
1843 Handle<Object> function, 1843 Handle<Object> function,
1844 Handle<FixedArray> vector, 1844 Handle<FixedArray> vector,
1845 Handle<Smi> slot, 1845 Handle<Smi> slot,
1846 const State& state) { 1846 const State& state) {
1847 ASSERT(function->IsJSFunction()); 1847 ASSERT(function->IsJSFunction());
1848 // Are we the array function? 1848 // Are we the array function?
1849 Handle<JSFunction> array_function = Handle<JSFunction>( 1849 Handle<JSFunction> array_function = Handle<JSFunction>(
1850 isolate()->context()->native_context()->array_function(), isolate()); 1850 isolate()->context()->native_context()->array_function(), isolate());
1851 if (array_function.is_identical_to(Handle<JSFunction>::cast(function))) { 1851 if (array_function.is_identical_to(Handle<JSFunction>::cast(function))) {
1852 // Alter the slot. 1852 // Alter the slot.
1853 vector->set(slot->value(), *isolate()->factory()->NewAllocationSite()); 1853 Handle<AllocationSite> new_site = isolate()->factory()->NewAllocationSite();
1854 vector->set(slot->value(), *new_site);
1854 State new_state = state.ToMonomorphicArrayCallState(); 1855 State new_state = state.ToMonomorphicArrayCallState();
1855 CallICStub stub(isolate(), new_state); 1856 CallICStub stub(isolate(), new_state);
1856 set_target(*stub.GetCode()); 1857 set_target(*stub.GetCode());
1857 Handle<String> name; 1858 Handle<String> name;
1858 if (array_function->shared()->name()->IsString()) { 1859 if (array_function->shared()->name()->IsString()) {
1859 name = Handle<String>(String::cast(array_function->shared()->name()), 1860 name = Handle<String>(String::cast(array_function->shared()->name()),
1860 isolate()); 1861 isolate());
1861 } 1862 }
1862 1863
1863 TRACE_IC("CallIC (Array call)", name); 1864 TRACE_IC("CallIC (Array call)", name);
(...skipping 1174 matching lines...) Expand 10 before | Expand all | Expand 10 after
3038 #undef ADDR 3039 #undef ADDR
3039 }; 3040 };
3040 3041
3041 3042
3042 Address IC::AddressFromUtilityId(IC::UtilityId id) { 3043 Address IC::AddressFromUtilityId(IC::UtilityId id) {
3043 return IC_utilities[id]; 3044 return IC_utilities[id];
3044 } 3045 }
3045 3046
3046 3047
3047 } } // namespace v8::internal 3048 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698