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

Side by Side Diff: src/objects.h

Issue 466033002: Remove the extensibility flag. Instead just rely on hidden_string as indication. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Addressed comment Created 6 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | 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 "src/allocation.h" 8 #include "src/allocation.h"
9 #include "src/assert-scope.h" 9 #include "src/assert-scope.h"
10 #include "src/builtins.h" 10 #include "src/builtins.h"
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 240
241 241
242 // PropertyNormalizationMode is used to specify whether to keep 242 // PropertyNormalizationMode is used to specify whether to keep
243 // inobject properties when normalizing properties of a JSObject. 243 // inobject properties when normalizing properties of a JSObject.
244 enum PropertyNormalizationMode { 244 enum PropertyNormalizationMode {
245 CLEAR_INOBJECT_PROPERTIES, 245 CLEAR_INOBJECT_PROPERTIES,
246 KEEP_INOBJECT_PROPERTIES 246 KEEP_INOBJECT_PROPERTIES
247 }; 247 };
248 248
249 249
250 // Internal properties (e.g. the hidden properties dictionary) might
251 // be added even though the receiver is non-extensible.
252 enum ExtensibilityCheck {
253 PERFORM_EXTENSIBILITY_CHECK,
254 OMIT_EXTENSIBILITY_CHECK
255 };
256
257
258 // Indicates how aggressively the prototype should be optimized. FAST_PROTOTYPE 250 // Indicates how aggressively the prototype should be optimized. FAST_PROTOTYPE
259 // will give the fastest result by tailoring the map to the prototype, but that 251 // will give the fastest result by tailoring the map to the prototype, but that
260 // will cause polymorphism with other objects. REGULAR_PROTOTYPE is to be used 252 // will cause polymorphism with other objects. REGULAR_PROTOTYPE is to be used
261 // (at least for now) when dynamically modifying the prototype chain of an 253 // (at least for now) when dynamically modifying the prototype chain of an
262 // object using __proto__ or Object.setPrototypeOf. 254 // object using __proto__ or Object.setPrototypeOf.
263 enum PrototypeOptimizationMode { REGULAR_PROTOTYPE, FAST_PROTOTYPE }; 255 enum PrototypeOptimizationMode { REGULAR_PROTOTYPE, FAST_PROTOTYPE };
264 256
265 257
266 // Indicates whether transitions can be added to a source map or not. 258 // Indicates whether transitions can be added to a source map or not.
267 enum TransitionFlag { 259 enum TransitionFlag {
(...skipping 1236 matching lines...) Expand 10 before | Expand all | Expand 10 after
1504 1496
1505 MUST_USE_RESULT static MaybeHandle<Object> SetProperty( 1497 MUST_USE_RESULT static MaybeHandle<Object> SetProperty(
1506 LookupIterator* it, Handle<Object> value, StrictMode strict_mode, 1498 LookupIterator* it, Handle<Object> value, StrictMode strict_mode,
1507 StoreFromKeyed store_mode); 1499 StoreFromKeyed store_mode);
1508 MUST_USE_RESULT static MaybeHandle<Object> WriteToReadOnlyProperty( 1500 MUST_USE_RESULT static MaybeHandle<Object> WriteToReadOnlyProperty(
1509 LookupIterator* it, Handle<Object> value, StrictMode strict_mode); 1501 LookupIterator* it, Handle<Object> value, StrictMode strict_mode);
1510 MUST_USE_RESULT static MaybeHandle<Object> SetDataProperty( 1502 MUST_USE_RESULT static MaybeHandle<Object> SetDataProperty(
1511 LookupIterator* it, Handle<Object> value); 1503 LookupIterator* it, Handle<Object> value);
1512 MUST_USE_RESULT static MaybeHandle<Object> AddDataProperty( 1504 MUST_USE_RESULT static MaybeHandle<Object> AddDataProperty(
1513 LookupIterator* it, Handle<Object> value, PropertyAttributes attributes, 1505 LookupIterator* it, Handle<Object> value, PropertyAttributes attributes,
1514 StrictMode strict_mode, StoreFromKeyed store_mode, 1506 StrictMode strict_mode, StoreFromKeyed store_mode);
1515 ExtensibilityCheck check);
1516 MUST_USE_RESULT static inline MaybeHandle<Object> GetPropertyOrElement( 1507 MUST_USE_RESULT static inline MaybeHandle<Object> GetPropertyOrElement(
1517 Handle<Object> object, 1508 Handle<Object> object,
1518 Handle<Name> key); 1509 Handle<Name> key);
1519 MUST_USE_RESULT static inline MaybeHandle<Object> GetProperty( 1510 MUST_USE_RESULT static inline MaybeHandle<Object> GetProperty(
1520 Isolate* isolate, 1511 Isolate* isolate,
1521 Handle<Object> object, 1512 Handle<Object> object,
1522 const char* key); 1513 const char* key);
1523 MUST_USE_RESULT static inline MaybeHandle<Object> GetProperty( 1514 MUST_USE_RESULT static inline MaybeHandle<Object> GetProperty(
1524 Handle<Object> object, 1515 Handle<Object> object,
1525 Handle<Name> key); 1516 Handle<Name> key);
(...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after
2153 enum ExecutableAccessorInfoHandling { 2144 enum ExecutableAccessorInfoHandling {
2154 DEFAULT_HANDLING, 2145 DEFAULT_HANDLING,
2155 DONT_FORCE_FIELD 2146 DONT_FORCE_FIELD
2156 }; 2147 };
2157 2148
2158 MUST_USE_RESULT static MaybeHandle<Object> SetOwnPropertyIgnoreAttributes( 2149 MUST_USE_RESULT static MaybeHandle<Object> SetOwnPropertyIgnoreAttributes(
2159 Handle<JSObject> object, 2150 Handle<JSObject> object,
2160 Handle<Name> key, 2151 Handle<Name> key,
2161 Handle<Object> value, 2152 Handle<Object> value,
2162 PropertyAttributes attributes, 2153 PropertyAttributes attributes,
2163 ExtensibilityCheck extensibility_check = PERFORM_EXTENSIBILITY_CHECK,
2164 StoreFromKeyed store_mode = MAY_BE_STORE_FROM_KEYED, 2154 StoreFromKeyed store_mode = MAY_BE_STORE_FROM_KEYED,
2165 ExecutableAccessorInfoHandling handling = DEFAULT_HANDLING); 2155 ExecutableAccessorInfoHandling handling = DEFAULT_HANDLING);
2166 2156
2167 static void AddProperty(Handle<JSObject> object, Handle<Name> key, 2157 static void AddProperty(Handle<JSObject> object, Handle<Name> key,
2168 Handle<Object> value, PropertyAttributes attributes); 2158 Handle<Object> value, PropertyAttributes attributes);
2169 2159
2170 // Extend the receiver with a single fast property appeared first in the 2160 // Extend the receiver with a single fast property appeared first in the
2171 // passed map. This also extends the property backing store if necessary. 2161 // passed map. This also extends the property backing store if necessary.
2172 static void AllocateStorageForMap(Handle<JSObject> object, Handle<Map> map); 2162 static void AllocateStorageForMap(Handle<JSObject> object, Handle<Map> map);
2173 2163
(...skipping 9066 matching lines...) Expand 10 before | Expand all | Expand 10 after
11240 } else { 11230 } else {
11241 value &= ~(1 << bit_position); 11231 value &= ~(1 << bit_position);
11242 } 11232 }
11243 return value; 11233 return value;
11244 } 11234 }
11245 }; 11235 };
11246 11236
11247 } } // namespace v8::internal 11237 } } // namespace v8::internal
11248 11238
11249 #endif // V8_OBJECTS_H_ 11239 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « no previous file | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698