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

Side by Side Diff: src/objects.h

Issue 2903533002: Revert of [es2015] Precompute the descriptive string for symbols. (Closed)
Patch Set: Created 3 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/isolate.cc ('k') | src/objects-debug.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 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 #include <memory> 9 #include <memory>
10 10
(...skipping 7100 matching lines...) Expand 10 before | Expand all | Expand 10 after
7111 DISALLOW_IMPLICIT_CONSTRUCTORS(Name); 7111 DISALLOW_IMPLICIT_CONSTRUCTORS(Name);
7112 }; 7112 };
7113 7113
7114 7114
7115 // ES6 symbols. 7115 // ES6 symbols.
7116 class Symbol: public Name { 7116 class Symbol: public Name {
7117 public: 7117 public:
7118 // [name]: The print name of a symbol, or undefined if none. 7118 // [name]: The print name of a symbol, or undefined if none.
7119 DECL_ACCESSORS(name, Object) 7119 DECL_ACCESSORS(name, Object)
7120 7120
7121 // [descriptive_string]: The descriptive string of a symbol. This is the
7122 // value returned from the Symbol.prototype.toString method.
7123 DECL_ACCESSORS(descriptive_string, String)
7124
7125 DECL_INT_ACCESSORS(flags) 7121 DECL_INT_ACCESSORS(flags)
7126 7122
7127 // [is_private]: Whether this is a private symbol. Private symbols can only 7123 // [is_private]: Whether this is a private symbol. Private symbols can only
7128 // be used to designate own properties of objects. 7124 // be used to designate own properties of objects.
7129 DECL_BOOLEAN_ACCESSORS(is_private) 7125 DECL_BOOLEAN_ACCESSORS(is_private)
7130 7126
7131 // [is_well_known_symbol]: Whether this is a spec-defined well-known symbol, 7127 // [is_well_known_symbol]: Whether this is a spec-defined well-known symbol,
7132 // or not. Well-known symbols do not throw when an access check fails during 7128 // or not. Well-known symbols do not throw when an access check fails during
7133 // a load. 7129 // a load.
7134 DECL_BOOLEAN_ACCESSORS(is_well_known_symbol) 7130 DECL_BOOLEAN_ACCESSORS(is_well_known_symbol)
7135 7131
7136 // [is_public]: Whether this is a symbol created by Symbol.for. Calling 7132 // [is_public]: Whether this is a symbol created by Symbol.for. Calling
7137 // Symbol.keyFor on such a symbol simply needs to return the attached name. 7133 // Symbol.keyFor on such a symbol simply needs to return the attached name.
7138 DECL_BOOLEAN_ACCESSORS(is_public) 7134 DECL_BOOLEAN_ACCESSORS(is_public)
7139 7135
7140 DECLARE_CAST(Symbol) 7136 DECLARE_CAST(Symbol)
7141 7137
7142 // Dispatched behavior. 7138 // Dispatched behavior.
7143 DECLARE_PRINTER(Symbol) 7139 DECLARE_PRINTER(Symbol)
7144 DECLARE_VERIFIER(Symbol) 7140 DECLARE_VERIFIER(Symbol)
7145 7141
7146 // Layout description. 7142 // Layout description.
7147 static const int kNameOffset = Name::kSize; 7143 static const int kNameOffset = Name::kSize;
7148 static const int kDescriptiveStringOffset = kNameOffset + kPointerSize; 7144 static const int kFlagsOffset = kNameOffset + kPointerSize;
7149 static const int kFlagsOffset = kDescriptiveStringOffset + kPointerSize;
7150 static const int kSize = kFlagsOffset + kPointerSize; 7145 static const int kSize = kFlagsOffset + kPointerSize;
7151 7146
7152 // Flags layout. 7147 // Flags layout.
7153 static const int kPrivateBit = 0; 7148 static const int kPrivateBit = 0;
7154 static const int kWellKnownSymbolBit = 1; 7149 static const int kWellKnownSymbolBit = 1;
7155 static const int kPublicBit = 2; 7150 static const int kPublicBit = 2;
7156 7151
7157 typedef FixedBodyDescriptor<kNameOffset, kFlagsOffset, kSize> BodyDescriptor; 7152 typedef FixedBodyDescriptor<kNameOffset, kFlagsOffset, kSize> BodyDescriptor;
7158 7153
7159 void SymbolShortPrint(std::ostream& os); 7154 void SymbolShortPrint(std::ostream& os);
(...skipping 2288 matching lines...) Expand 10 before | Expand all | Expand 10 after
9448 } 9443 }
9449 }; 9444 };
9450 9445
9451 9446
9452 } // NOLINT, false-positive due to second-order macros. 9447 } // NOLINT, false-positive due to second-order macros.
9453 } // NOLINT, false-positive due to second-order macros. 9448 } // NOLINT, false-positive due to second-order macros.
9454 9449
9455 #include "src/objects/object-macros-undef.h" 9450 #include "src/objects/object-macros-undef.h"
9456 9451
9457 #endif // V8_OBJECTS_H_ 9452 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/isolate.cc ('k') | src/objects-debug.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698