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

Side by Side Diff: src/objects.h

Issue 1109333003: Use a stub in crankshaft for grow store arrays. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix ARM failure. Created 5 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
« no previous file with comments | « src/mips64/interface-descriptors-mips64.cc ('k') | src/objects.cc » ('j') | 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 #ifndef V8_OBJECTS_H_ 5 #ifndef V8_OBJECTS_H_
6 #define V8_OBJECTS_H_ 6 #define V8_OBJECTS_H_
7 7
8 #include <iosfwd> 8 #include <iosfwd>
9 9
10 #include "src/allocation.h" 10 #include "src/allocation.h"
(...skipping 1924 matching lines...) Expand 10 before | Expand all | Expand 10 after
1935 EnsureElementsMode mode); 1935 EnsureElementsMode mode);
1936 static void EnsureCanContainElements( 1936 static void EnsureCanContainElements(
1937 Handle<JSObject> object, 1937 Handle<JSObject> object,
1938 Arguments* arguments, 1938 Arguments* arguments,
1939 uint32_t first_arg, 1939 uint32_t first_arg,
1940 uint32_t arg_count, 1940 uint32_t arg_count,
1941 EnsureElementsMode mode); 1941 EnsureElementsMode mode);
1942 1942
1943 // Would we convert a fast elements array to dictionary mode given 1943 // Would we convert a fast elements array to dictionary mode given
1944 // an access at key? 1944 // an access at key?
1945 bool WouldConvertToSlowElements(Handle<Object> key); 1945 bool WouldConvertToSlowElements(uint32_t index);
1946 inline bool WouldConvertToSlowElements(Handle<Object> key);
1946 // Do we want to keep the elements in fast case when increasing the 1947 // Do we want to keep the elements in fast case when increasing the
1947 // capacity? 1948 // capacity?
1948 bool ShouldConvertToSlowElements(int new_capacity); 1949 bool ShouldConvertToSlowElements(int new_capacity);
1949 // Returns true if the backing storage for the slow-case elements of 1950 // Returns true if the backing storage for the slow-case elements of
1950 // this object takes up nearly as much space as a fast-case backing 1951 // this object takes up nearly as much space as a fast-case backing
1951 // storage would. In that case the JSObject should have fast 1952 // storage would. In that case the JSObject should have fast
1952 // elements. 1953 // elements.
1953 bool ShouldConvertToFastElements(); 1954 bool ShouldConvertToFastElements();
1954 // Returns true if the elements of JSObject contains only values that can be 1955 // Returns true if the elements of JSObject contains only values that can be
1955 // represented in a FixedDoubleArray and has at least one value that can only 1956 // represented in a FixedDoubleArray and has at least one value that can only
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1989 MUST_USE_RESULT static MaybeHandle<Object> GetElementWithInterceptor( 1990 MUST_USE_RESULT static MaybeHandle<Object> GetElementWithInterceptor(
1990 Handle<JSObject> object, Handle<Object> receiver, uint32_t index, 1991 Handle<JSObject> object, Handle<Object> receiver, uint32_t index,
1991 bool check_prototype); 1992 bool check_prototype);
1992 1993
1993 enum SetFastElementsCapacitySmiMode { 1994 enum SetFastElementsCapacitySmiMode {
1994 kAllowSmiElements, 1995 kAllowSmiElements,
1995 kForceSmiElements, 1996 kForceSmiElements,
1996 kDontAllowSmiElements 1997 kDontAllowSmiElements
1997 }; 1998 };
1998 1999
2000 static Handle<FixedArray> SetFastElementsCapacity(
2001 Handle<JSObject> object, int capacity,
2002 SetFastElementsCapacitySmiMode smi_mode);
2003 static Handle<FixedArrayBase> SetFastDoubleElementsCapacity(
2004 Handle<JSObject> object, int capacity);
2005
1999 // Replace the elements' backing store with fast elements of the given 2006 // Replace the elements' backing store with fast elements of the given
2000 // capacity. Update the length for JSArrays. Returns the new backing 2007 // capacity. Update the length for JSArrays. Returns the new backing
2001 // store. 2008 // store.
2002 static Handle<FixedArray> SetFastElementsCapacityAndLength( 2009 static Handle<FixedArray> SetFastElementsCapacityAndLength(
2003 Handle<JSObject> object, 2010 Handle<JSObject> object,
2004 int capacity, 2011 int capacity,
2005 int length, 2012 int length,
2006 SetFastElementsCapacitySmiMode smi_mode); 2013 SetFastElementsCapacitySmiMode smi_mode);
2007 static void SetFastDoubleElementsCapacityAndLength( 2014 static Handle<FixedArrayBase> SetFastDoubleElementsCapacityAndLength(
2008 Handle<JSObject> object, 2015 Handle<JSObject> object, int capacity, int length);
2009 int capacity,
2010 int length);
2011 2016
2012 // Lookup interceptors are used for handling properties controlled by host 2017 // Lookup interceptors are used for handling properties controlled by host
2013 // objects. 2018 // objects.
2014 inline bool HasNamedInterceptor(); 2019 inline bool HasNamedInterceptor();
2015 inline bool HasIndexedInterceptor(); 2020 inline bool HasIndexedInterceptor();
2016 2021
2017 // Computes the enumerable keys from interceptors. Used for debug mirrors and 2022 // Computes the enumerable keys from interceptors. Used for debug mirrors and
2018 // by JSReceiver::GetKeys. 2023 // by JSReceiver::GetKeys.
2019 MUST_USE_RESULT static MaybeHandle<JSObject> GetKeysForNamedInterceptor( 2024 MUST_USE_RESULT static MaybeHandle<JSObject> GetKeysForNamedInterceptor(
2020 Handle<JSObject> object, 2025 Handle<JSObject> object,
(...skipping 9083 matching lines...) Expand 10 before | Expand all | Expand 10 after
11104 } else { 11109 } else {
11105 value &= ~(1 << bit_position); 11110 value &= ~(1 << bit_position);
11106 } 11111 }
11107 return value; 11112 return value;
11108 } 11113 }
11109 }; 11114 };
11110 11115
11111 } } // namespace v8::internal 11116 } } // namespace v8::internal
11112 11117
11113 #endif // V8_OBJECTS_H_ 11118 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/mips64/interface-descriptors-mips64.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698