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

Side by Side Diff: src/objects.h

Issue 1218403002: Increment descriptor array slack for prototypes by a constant rather than 50% (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: More comments Created 5 years, 5 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/api-natives.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 6003 matching lines...) Expand 10 before | Expand all | Expand 10 after
6014 // Update code cache. 6014 // Update code cache.
6015 static void UpdateCodeCache(Handle<Map> map, 6015 static void UpdateCodeCache(Handle<Map> map,
6016 Handle<Name> name, 6016 Handle<Name> name,
6017 Handle<Code> code); 6017 Handle<Code> code);
6018 6018
6019 // Extend the descriptor array of the map with the list of descriptors. 6019 // Extend the descriptor array of the map with the list of descriptors.
6020 // In case of duplicates, the latest descriptor is used. 6020 // In case of duplicates, the latest descriptor is used.
6021 static void AppendCallbackDescriptors(Handle<Map> map, 6021 static void AppendCallbackDescriptors(Handle<Map> map,
6022 Handle<Object> descriptors); 6022 Handle<Object> descriptors);
6023 6023
6024 static inline int SlackForArraySize(int old_size, int size_limit); 6024 static inline int SlackForArraySize(bool is_prototype_map, int old_size,
6025 int size_limit);
6025 6026
6026 static void EnsureDescriptorSlack(Handle<Map> map, int slack); 6027 static void EnsureDescriptorSlack(Handle<Map> map, int slack);
6027 6028
6028 // Returns the found code or undefined if absent. 6029 // Returns the found code or undefined if absent.
6029 Object* FindInCodeCache(Name* name, Code::Flags flags); 6030 Object* FindInCodeCache(Name* name, Code::Flags flags);
6030 6031
6031 // Returns the non-negative index of the code object if it is in the 6032 // Returns the non-negative index of the code object if it is in the
6032 // cache and -1 otherwise. 6033 // cache and -1 otherwise.
6033 int IndexInCodeCache(Object* name, Code* code); 6034 int IndexInCodeCache(Object* name, Code* code);
6034 6035
(...skipping 4410 matching lines...) Expand 10 before | Expand all | Expand 10 after
10445 static const int kSize = kDataOffset + kPointerSize; 10446 static const int kSize = kDataOffset + kPointerSize;
10446 10447
10447 private: 10448 private:
10448 DISALLOW_IMPLICIT_CONSTRUCTORS(CallHandlerInfo); 10449 DISALLOW_IMPLICIT_CONSTRUCTORS(CallHandlerInfo);
10449 }; 10450 };
10450 10451
10451 10452
10452 class TemplateInfo: public Struct { 10453 class TemplateInfo: public Struct {
10453 public: 10454 public:
10454 DECL_ACCESSORS(tag, Object) 10455 DECL_ACCESSORS(tag, Object)
10456 inline int number_of_properties() const;
10457 inline void set_number_of_properties(int value);
10455 DECL_ACCESSORS(property_list, Object) 10458 DECL_ACCESSORS(property_list, Object)
10456 DECL_ACCESSORS(property_accessors, Object) 10459 DECL_ACCESSORS(property_accessors, Object)
10457 10460
10458 DECLARE_VERIFIER(TemplateInfo) 10461 DECLARE_VERIFIER(TemplateInfo)
10459 10462
10460 static const int kTagOffset = HeapObject::kHeaderSize; 10463 static const int kTagOffset = HeapObject::kHeaderSize;
10461 static const int kPropertyListOffset = kTagOffset + kPointerSize; 10464 static const int kNumberOfProperties = kTagOffset + kPointerSize;
10465 static const int kPropertyListOffset = kNumberOfProperties + kPointerSize;
10462 static const int kPropertyAccessorsOffset = 10466 static const int kPropertyAccessorsOffset =
10463 kPropertyListOffset + kPointerSize; 10467 kPropertyListOffset + kPointerSize;
10464 static const int kHeaderSize = kPropertyAccessorsOffset + kPointerSize; 10468 static const int kHeaderSize = kPropertyAccessorsOffset + kPointerSize;
10465 10469
10466 private: 10470 private:
10467 DISALLOW_IMPLICIT_CONSTRUCTORS(TemplateInfo); 10471 DISALLOW_IMPLICIT_CONSTRUCTORS(TemplateInfo);
10468 }; 10472 };
10469 10473
10470 10474
10471 class FunctionTemplateInfo: public TemplateInfo { 10475 class FunctionTemplateInfo: public TemplateInfo {
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
10822 } else { 10826 } else {
10823 value &= ~(1 << bit_position); 10827 value &= ~(1 << bit_position);
10824 } 10828 }
10825 return value; 10829 return value;
10826 } 10830 }
10827 }; 10831 };
10828 10832
10829 } } // namespace v8::internal 10833 } } // namespace v8::internal
10830 10834
10831 #endif // V8_OBJECTS_H_ 10835 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/api-natives.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698