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

Side by Side Diff: src/objects.h

Issue 1693513002: [runtime] Introduce FastNewStrictArgumentsStub to optimize strict arguments. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix mips and mips64. Created 4 years, 10 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/runtime/runtime.h » ('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 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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 2588 matching lines...) Expand 10 before | Expand all | Expand 10 after
2599 static const int kWritableIndex = 1; 2599 static const int kWritableIndex = 1;
2600 static const int kEnumerableIndex = 2; 2600 static const int kEnumerableIndex = 2;
2601 static const int kConfigurableIndex = 3; 2601 static const int kConfigurableIndex = 3;
2602 2602
2603 private: 2603 private:
2604 DISALLOW_IMPLICIT_CONSTRUCTORS(JSDataPropertyDescriptor); 2604 DISALLOW_IMPLICIT_CONSTRUCTORS(JSDataPropertyDescriptor);
2605 }; 2605 };
2606 2606
2607 2607
2608 // JSIteratorResult is just a JSObject with a specific initial map. 2608 // JSIteratorResult is just a JSObject with a specific initial map.
2609 // This initial map adds in-object properties for "done" and "value, 2609 // This initial map adds in-object properties for "done" and "value",
2610 // as specified by ES6 section 25.1.1.3 The IteratorResult Interface 2610 // as specified by ES6 section 25.1.1.3 The IteratorResult Interface
2611 class JSIteratorResult: public JSObject { 2611 class JSIteratorResult: public JSObject {
2612 public: 2612 public:
2613 // Offsets of object fields. 2613 // Offsets of object fields.
2614 static const int kValueOffset = JSObject::kHeaderSize; 2614 static const int kValueOffset = JSObject::kHeaderSize;
2615 static const int kDoneOffset = kValueOffset + kPointerSize; 2615 static const int kDoneOffset = kValueOffset + kPointerSize;
2616 static const int kSize = kDoneOffset + kPointerSize; 2616 static const int kSize = kDoneOffset + kPointerSize;
2617 // Indices of in-object properties. 2617 // Indices of in-object properties.
2618 static const int kValueIndex = 0; 2618 static const int kValueIndex = 0;
2619 static const int kDoneIndex = 1; 2619 static const int kDoneIndex = 1;
2620 2620
2621 private: 2621 private:
2622 DISALLOW_IMPLICIT_CONSTRUCTORS(JSIteratorResult); 2622 DISALLOW_IMPLICIT_CONSTRUCTORS(JSIteratorResult);
2623 }; 2623 };
2624 2624
2625 2625
2626 // Common superclass for JSSloppyArgumentsObject and JSStrictArgumentsObject.
2627 class JSArgumentsObject: public JSObject {
2628 public:
2629 // Offsets of object fields.
2630 static const int kLengthOffset = JSObject::kHeaderSize;
2631 static const int kHeaderSize = kLengthOffset + kPointerSize;
2632 // Indices of in-object properties.
2633 static const int kLengthIndex = 0;
2634
2635 private:
2636 DISALLOW_IMPLICIT_CONSTRUCTORS(JSArgumentsObject);
2637 };
2638
2639
2640 // JSSloppyArgumentsObject is just a JSObject with specific initial map.
2641 // This initial map adds in-object properties for "length" and "callee".
2642 class JSSloppyArgumentsObject: public JSArgumentsObject {
2643 public:
2644 // Offsets of object fields.
2645 static const int kCalleeOffset = JSArgumentsObject::kHeaderSize;
2646 static const int kSize = kCalleeOffset + kPointerSize;
2647 // Indices of in-object properties.
2648 static const int kCalleeIndex = 1;
2649
2650 private:
2651 DISALLOW_IMPLICIT_CONSTRUCTORS(JSSloppyArgumentsObject);
2652 };
2653
2654
2655 // JSStrictArgumentsObject is just a JSObject with specific initial map.
2656 // This initial map adds an in-object property for "length".
2657 class JSStrictArgumentsObject: public JSArgumentsObject {
2658 public:
2659 // Offsets of object fields.
2660 static const int kSize = JSArgumentsObject::kHeaderSize;
2661
2662 private:
2663 DISALLOW_IMPLICIT_CONSTRUCTORS(JSStrictArgumentsObject);
2664 };
2665
2666
2626 // Common superclass for FixedArrays that allow implementations to share 2667 // Common superclass for FixedArrays that allow implementations to share
2627 // common accessors and some code paths. 2668 // common accessors and some code paths.
2628 class FixedArrayBase: public HeapObject { 2669 class FixedArrayBase: public HeapObject {
2629 public: 2670 public:
2630 // [length]: length of the array. 2671 // [length]: length of the array.
2631 inline int length() const; 2672 inline int length() const;
2632 inline void set_length(int value); 2673 inline void set_length(int value);
2633 2674
2634 // Get and set the length using acquire loads and release stores. 2675 // Get and set the length using acquire loads and release stores.
2635 inline int synchronized_length() const; 2676 inline int synchronized_length() const;
(...skipping 8172 matching lines...) Expand 10 before | Expand all | Expand 10 after
10808 } 10849 }
10809 return value; 10850 return value;
10810 } 10851 }
10811 }; 10852 };
10812 10853
10813 10854
10814 } // NOLINT, false-positive due to second-order macros. 10855 } // NOLINT, false-positive due to second-order macros.
10815 } // NOLINT, false-positive due to second-order macros. 10856 } // NOLINT, false-positive due to second-order macros.
10816 10857
10817 #endif // V8_OBJECTS_H_ 10858 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/mips64/interface-descriptors-mips64.cc ('k') | src/runtime/runtime.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698