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

Side by Side Diff: src/objects.h

Issue 1494673004: For non-prototype objects constructed using base==new.target, use the cached constructor to render … (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years 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/heap/heap.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 5467 matching lines...) Expand 10 before | Expand all | Expand 10 after
5478 class NumberOfOwnDescriptorsBits: public BitField<int, 5478 class NumberOfOwnDescriptorsBits: public BitField<int,
5479 kDescriptorIndexBitCount, kDescriptorIndexBitCount> {}; // NOLINT 5479 kDescriptorIndexBitCount, kDescriptorIndexBitCount> {}; // NOLINT
5480 STATIC_ASSERT(kDescriptorIndexBitCount + kDescriptorIndexBitCount == 20); 5480 STATIC_ASSERT(kDescriptorIndexBitCount + kDescriptorIndexBitCount == 20);
5481 class DictionaryMap : public BitField<bool, 20, 1> {}; 5481 class DictionaryMap : public BitField<bool, 20, 1> {};
5482 class OwnsDescriptors : public BitField<bool, 21, 1> {}; 5482 class OwnsDescriptors : public BitField<bool, 21, 1> {};
5483 class IsHiddenPrototype : public BitField<bool, 22, 1> {}; 5483 class IsHiddenPrototype : public BitField<bool, 22, 1> {};
5484 class Deprecated : public BitField<bool, 23, 1> {}; 5484 class Deprecated : public BitField<bool, 23, 1> {};
5485 class IsUnstable : public BitField<bool, 24, 1> {}; 5485 class IsUnstable : public BitField<bool, 24, 1> {};
5486 class IsMigrationTarget : public BitField<bool, 25, 1> {}; 5486 class IsMigrationTarget : public BitField<bool, 25, 1> {};
5487 class IsStrong : public BitField<bool, 26, 1> {}; 5487 class IsStrong : public BitField<bool, 26, 1> {};
5488 // Bit 27 is free. 5488 class NewTargetIsBase : public BitField<bool, 27, 1> {};
5489 5489
5490 // Keep this bit field at the very end for better code in 5490 // Keep this bit field at the very end for better code in
5491 // Builtins::kJSConstructStubGeneric stub. 5491 // Builtins::kJSConstructStubGeneric stub.
5492 // This counter is used for in-object slack tracking and for map aging. 5492 // This counter is used for in-object slack tracking and for map aging.
5493 // The in-object slack tracking is considered enabled when the counter is 5493 // The in-object slack tracking is considered enabled when the counter is
5494 // in the range [kSlackTrackingCounterStart, kSlackTrackingCounterEnd]. 5494 // in the range [kSlackTrackingCounterStart, kSlackTrackingCounterEnd].
5495 class Counter : public BitField<int, 28, 4> {}; 5495 class Counter : public BitField<int, 28, 4> {};
5496 static const int kSlackTrackingCounterStart = 14; 5496 static const int kSlackTrackingCounterStart = 14;
5497 static const int kSlackTrackingCounterEnd = 8; 5497 static const int kSlackTrackingCounterEnd = 8;
5498 static const int kRetainingCounterStart = kSlackTrackingCounterEnd - 1; 5498 static const int kRetainingCounterStart = kSlackTrackingCounterEnd - 1;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
5541 inline void set_is_observed(); 5541 inline void set_is_observed();
5542 inline bool is_observed(); 5542 inline bool is_observed();
5543 5543
5544 // Tells whether the instance has a [[Call]] internal method. 5544 // Tells whether the instance has a [[Call]] internal method.
5545 // This property is implemented according to ES6, section 7.2.3. 5545 // This property is implemented according to ES6, section 7.2.3.
5546 inline void set_is_callable(); 5546 inline void set_is_callable();
5547 inline bool is_callable() const; 5547 inline bool is_callable() const;
5548 5548
5549 inline void set_is_strong(); 5549 inline void set_is_strong();
5550 inline bool is_strong(); 5550 inline bool is_strong();
5551 inline void set_new_target_is_base(bool value);
5552 inline bool new_target_is_base();
5551 inline void set_is_extensible(bool value); 5553 inline void set_is_extensible(bool value);
5552 inline bool is_extensible(); 5554 inline bool is_extensible();
5553 inline void set_is_prototype_map(bool value); 5555 inline void set_is_prototype_map(bool value);
5554 inline bool is_prototype_map() const; 5556 inline bool is_prototype_map() const;
5555 5557
5556 inline void set_elements_kind(ElementsKind elements_kind); 5558 inline void set_elements_kind(ElementsKind elements_kind);
5557 inline ElementsKind elements_kind(); 5559 inline ElementsKind elements_kind();
5558 5560
5559 // Tells whether the instance has fast elements that are only Smis. 5561 // Tells whether the instance has fast elements that are only Smis.
5560 inline bool has_fast_smi_elements(); 5562 inline bool has_fast_smi_elements();
(...skipping 5147 matching lines...) Expand 10 before | Expand all | Expand 10 after
10708 } 10710 }
10709 return value; 10711 return value;
10710 } 10712 }
10711 }; 10713 };
10712 10714
10713 10715
10714 } // NOLINT, false-positive due to second-order macros. 10716 } // NOLINT, false-positive due to second-order macros.
10715 } // NOLINT, false-positive due to second-order macros. 10717 } // NOLINT, false-positive due to second-order macros.
10716 10718
10717 #endif // V8_OBJECTS_H_ 10719 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/heap/heap.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698