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

Side by Side Diff: src/objects.h

Issue 1416943005: Revert of [es6] Better support for built-ins subclassing. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 1 month 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/builtins-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 2246 matching lines...) Expand 10 before | Expand all | Expand 10 after
2257 // Support functions for v8 api (needed for correct interceptor behavior). 2257 // Support functions for v8 api (needed for correct interceptor behavior).
2258 MUST_USE_RESULT static Maybe<bool> HasRealNamedProperty( 2258 MUST_USE_RESULT static Maybe<bool> HasRealNamedProperty(
2259 Handle<JSObject> object, Handle<Name> name); 2259 Handle<JSObject> object, Handle<Name> name);
2260 MUST_USE_RESULT static Maybe<bool> HasRealElementProperty( 2260 MUST_USE_RESULT static Maybe<bool> HasRealElementProperty(
2261 Handle<JSObject> object, uint32_t index); 2261 Handle<JSObject> object, uint32_t index);
2262 MUST_USE_RESULT static Maybe<bool> HasRealNamedCallbackProperty( 2262 MUST_USE_RESULT static Maybe<bool> HasRealNamedCallbackProperty(
2263 Handle<JSObject> object, Handle<Name> name); 2263 Handle<JSObject> object, Handle<Name> name);
2264 2264
2265 // Get the header size for a JSObject. Used to compute the index of 2265 // Get the header size for a JSObject. Used to compute the index of
2266 // internal fields as well as the number of internal fields. 2266 // internal fields as well as the number of internal fields.
2267 static inline int GetHeaderSize(InstanceType instance_type);
2268 inline int GetHeaderSize(); 2267 inline int GetHeaderSize();
2269 2268
2270 static inline int GetInternalFieldCount(Map* map);
2271 inline int GetInternalFieldCount(); 2269 inline int GetInternalFieldCount();
2272 inline int GetInternalFieldOffset(int index); 2270 inline int GetInternalFieldOffset(int index);
2273 inline Object* GetInternalField(int index); 2271 inline Object* GetInternalField(int index);
2274 inline void SetInternalField(int index, Object* value); 2272 inline void SetInternalField(int index, Object* value);
2275 inline void SetInternalField(int index, Smi* value); 2273 inline void SetInternalField(int index, Smi* value);
2276 2274
2277 // Returns the number of properties on this object filtering out properties 2275 // Returns the number of properties on this object filtering out properties
2278 // with the specified attributes (ignoring interceptors). 2276 // with the specified attributes (ignoring interceptors).
2279 int NumberOfOwnProperties(PropertyAttributes filter = NONE); 2277 int NumberOfOwnProperties(PropertyAttributes filter = NONE);
2280 // Fill in details for properties into storage starting at the specified 2278 // Fill in details for properties into storage starting at the specified
(...skipping 3520 matching lines...) Expand 10 before | Expand all | Expand 10 after
5801 // is found by re-transitioning from the root of the transition tree using the 5799 // is found by re-transitioning from the root of the transition tree using the
5802 // descriptor array of the map. Returns MaybeHandle<Map>() if no updated map 5800 // descriptor array of the map. Returns MaybeHandle<Map>() if no updated map
5803 // is found. 5801 // is found.
5804 static MaybeHandle<Map> TryUpdate(Handle<Map> map) WARN_UNUSED_RESULT; 5802 static MaybeHandle<Map> TryUpdate(Handle<Map> map) WARN_UNUSED_RESULT;
5805 5803
5806 // Returns a non-deprecated version of the input. This method may deprecate 5804 // Returns a non-deprecated version of the input. This method may deprecate
5807 // existing maps along the way if encodings conflict. Not for use while 5805 // existing maps along the way if encodings conflict. Not for use while
5808 // gathering type feedback. Use TryUpdate in those cases instead. 5806 // gathering type feedback. Use TryUpdate in those cases instead.
5809 static Handle<Map> Update(Handle<Map> map); 5807 static Handle<Map> Update(Handle<Map> map);
5810 5808
5811 static inline Handle<Map> CopyInitialMap(Handle<Map> map);
5812 static Handle<Map> CopyInitialMap(Handle<Map> map, int instance_size,
5813 int in_object_properties,
5814 int unused_property_fields);
5815 static Handle<Map> CopyDropDescriptors(Handle<Map> map); 5809 static Handle<Map> CopyDropDescriptors(Handle<Map> map);
5816 static Handle<Map> CopyInsertDescriptor(Handle<Map> map, 5810 static Handle<Map> CopyInsertDescriptor(Handle<Map> map,
5817 Descriptor* descriptor, 5811 Descriptor* descriptor,
5818 TransitionFlag flag); 5812 TransitionFlag flag);
5819 5813
5820 MUST_USE_RESULT static MaybeHandle<Map> CopyWithField( 5814 MUST_USE_RESULT static MaybeHandle<Map> CopyWithField(
5821 Handle<Map> map, 5815 Handle<Map> map,
5822 Handle<Name> name, 5816 Handle<Name> name,
5823 Handle<HeapType> type, 5817 Handle<HeapType> type,
5824 PropertyAttributes attributes, 5818 PropertyAttributes attributes,
(...skipping 1011 matching lines...) Expand 10 before | Expand all | Expand 10 after
6836 6830
6837 // Whether this function is defined in native code or extensions. 6831 // Whether this function is defined in native code or extensions.
6838 inline bool IsBuiltin(); 6832 inline bool IsBuiltin();
6839 6833
6840 // Check whether or not this function is inlineable. 6834 // Check whether or not this function is inlineable.
6841 bool IsInlineable(); 6835 bool IsInlineable();
6842 6836
6843 // Source size of this function. 6837 // Source size of this function.
6844 int SourceSize(); 6838 int SourceSize();
6845 6839
6840 // Calculate the instance size.
6841 int CalculateInstanceSize();
6842
6843 // Calculate the number of in-object properties.
6844 int CalculateInObjectProperties();
6845
6846 inline bool has_simple_parameters(); 6846 inline bool has_simple_parameters();
6847 6847
6848 // Initialize a SharedFunctionInfo from a parsed function literal. 6848 // Initialize a SharedFunctionInfo from a parsed function literal.
6849 static void InitFromFunctionLiteral(Handle<SharedFunctionInfo> shared_info, 6849 static void InitFromFunctionLiteral(Handle<SharedFunctionInfo> shared_info,
6850 FunctionLiteral* lit); 6850 FunctionLiteral* lit);
6851 6851
6852 // Dispatched behavior. 6852 // Dispatched behavior.
6853 DECLARE_PRINTER(SharedFunctionInfo) 6853 DECLARE_PRINTER(SharedFunctionInfo)
6854 DECLARE_VERIFIER(SharedFunctionInfo) 6854 DECLARE_VERIFIER(SharedFunctionInfo)
6855 6855
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after
7329 7329
7330 inline BindingsArray* function_bindings(); 7330 inline BindingsArray* function_bindings();
7331 inline void set_function_bindings(BindingsArray* bindings); 7331 inline void set_function_bindings(BindingsArray* bindings);
7332 7332
7333 // The initial map for an object created by this constructor. 7333 // The initial map for an object created by this constructor.
7334 inline Map* initial_map(); 7334 inline Map* initial_map();
7335 static void SetInitialMap(Handle<JSFunction> function, Handle<Map> map, 7335 static void SetInitialMap(Handle<JSFunction> function, Handle<Map> map,
7336 Handle<Object> prototype); 7336 Handle<Object> prototype);
7337 inline bool has_initial_map(); 7337 inline bool has_initial_map();
7338 static void EnsureHasInitialMap(Handle<JSFunction> function); 7338 static void EnsureHasInitialMap(Handle<JSFunction> function);
7339 // Ensures that the |original_constructor| has correct initial map and
7340 // returns it. If the |original_constructor| is not a subclass constructor
7341 // its initial map is left unmodified.
7342 static Handle<Map> EnsureDerivedHasInitialMap(
7343 Handle<JSFunction> original_constructor, Handle<JSFunction> constructor);
7344 7339
7345 // Get and set the prototype property on a JSFunction. If the 7340 // Get and set the prototype property on a JSFunction. If the
7346 // function has an initial map the prototype is set on the initial 7341 // function has an initial map the prototype is set on the initial
7347 // map. Otherwise, the prototype is put in the initial map field 7342 // map. Otherwise, the prototype is put in the initial map field
7348 // until an initial map is needed. 7343 // until an initial map is needed.
7349 inline bool has_prototype(); 7344 inline bool has_prototype();
7350 inline bool has_instance_prototype(); 7345 inline bool has_instance_prototype();
7351 inline Object* prototype(); 7346 inline Object* prototype();
7352 inline Object* instance_prototype(); 7347 inline Object* instance_prototype();
7353 static void SetPrototype(Handle<JSFunction> function, 7348 static void SetPrototype(Handle<JSFunction> function,
(...skipping 28 matching lines...) Expand all
7382 // of optimized functions hanging off the native_context. The CodeFlusher 7377 // of optimized functions hanging off the native_context. The CodeFlusher
7383 // uses this link to chain together flushing candidates. Treated weakly 7378 // uses this link to chain together flushing candidates. Treated weakly
7384 // by the garbage collector. 7379 // by the garbage collector.
7385 DECL_ACCESSORS(next_function_link, Object) 7380 DECL_ACCESSORS(next_function_link, Object)
7386 7381
7387 // Prints the name of the function using PrintF. 7382 // Prints the name of the function using PrintF.
7388 void PrintName(FILE* out = stdout); 7383 void PrintName(FILE* out = stdout);
7389 7384
7390 DECLARE_CAST(JSFunction) 7385 DECLARE_CAST(JSFunction)
7391 7386
7392 // Calculate the instance size and in-object properties count.
7393 void CalculateInstanceSize(InstanceType instance_type,
7394 int requested_internal_fields, int* instance_size,
7395 int* in_object_properties);
7396 void CalculateInstanceSizeForDerivedClass(InstanceType instance_type,
7397 int requested_internal_fields,
7398 int* instance_size,
7399 int* in_object_properties);
7400
7401 // Iterates the objects, including code objects indirectly referenced 7387 // Iterates the objects, including code objects indirectly referenced
7402 // through pointers to the first instruction in the code object. 7388 // through pointers to the first instruction in the code object.
7403 void JSFunctionIterateBody(int object_size, ObjectVisitor* v); 7389 void JSFunctionIterateBody(int object_size, ObjectVisitor* v);
7404 7390
7405 // Dispatched behavior. 7391 // Dispatched behavior.
7406 DECLARE_PRINTER(JSFunction) 7392 DECLARE_PRINTER(JSFunction)
7407 DECLARE_VERIFIER(JSFunction) 7393 DECLARE_VERIFIER(JSFunction)
7408 7394
7409 // Returns the number of allocated literals. 7395 // Returns the number of allocated literals.
7410 inline int NumberOfLiterals(); 7396 inline int NumberOfLiterals();
(...skipping 3441 matching lines...) Expand 10 before | Expand all | Expand 10 after
10852 // (elements + properties) in the current level. 10838 // (elements + properties) in the current level.
10853 int levelLength_ = 0; 10839 int levelLength_ = 0;
10854 10840
10855 DISALLOW_COPY_AND_ASSIGN(KeyAccumulator); 10841 DISALLOW_COPY_AND_ASSIGN(KeyAccumulator);
10856 }; 10842 };
10857 10843
10858 } // NOLINT, false-positive due to second-order macros. 10844 } // NOLINT, false-positive due to second-order macros.
10859 } // NOLINT, false-positive due to second-order macros. 10845 } // NOLINT, false-positive due to second-order macros.
10860 10846
10861 #endif // V8_OBJECTS_H_ 10847 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/mips64/builtins-mips64.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698