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

Side by Side Diff: src/objects.h

Issue 18221006: Add map transition for observed objects (Closed) Base URL: https://github.com/v8/v8.git@bleeding_edge
Patch Set: better check Created 7 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/object-observe.js ('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 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 2315 matching lines...) Expand 10 before | Expand all | Expand 10 after
2326 // Casting. 2326 // Casting.
2327 static inline JSObject* cast(Object* obj); 2327 static inline JSObject* cast(Object* obj);
2328 2328
2329 // Disalow further properties to be added to the object. 2329 // Disalow further properties to be added to the object.
2330 static Handle<Object> PreventExtensions(Handle<JSObject> object); 2330 static Handle<Object> PreventExtensions(Handle<JSObject> object);
2331 MUST_USE_RESULT MaybeObject* PreventExtensions(); 2331 MUST_USE_RESULT MaybeObject* PreventExtensions();
2332 2332
2333 // ES5 Object.freeze 2333 // ES5 Object.freeze
2334 MUST_USE_RESULT MaybeObject* Freeze(Isolate* isolate); 2334 MUST_USE_RESULT MaybeObject* Freeze(Isolate* isolate);
2335 2335
2336
2337 // Called the first time an object is observed with ES7 Object.observe.
2338 MUST_USE_RESULT MaybeObject* SetObserved(Isolate* isolate);
2339
2336 // Copy object 2340 // Copy object
2337 MUST_USE_RESULT MaybeObject* DeepCopy(Isolate* isolate); 2341 MUST_USE_RESULT MaybeObject* DeepCopy(Isolate* isolate);
2338 2342
2339 // Dispatched behavior. 2343 // Dispatched behavior.
2340 void JSObjectShortPrint(StringStream* accumulator); 2344 void JSObjectShortPrint(StringStream* accumulator);
2341 DECLARE_PRINTER(JSObject) 2345 DECLARE_PRINTER(JSObject)
2342 DECLARE_VERIFIER(JSObject) 2346 DECLARE_VERIFIER(JSObject)
2343 #ifdef OBJECT_PRINT 2347 #ifdef OBJECT_PRINT
2344 inline void PrintProperties() { 2348 inline void PrintProperties() {
2345 PrintProperties(stdout); 2349 PrintProperties(stdout);
(...skipping 3124 matching lines...) Expand 10 before | Expand all | Expand 10 after
5470 MUST_USE_RESULT MaybeObject* CopyAddDescriptor(Descriptor* descriptor, 5474 MUST_USE_RESULT MaybeObject* CopyAddDescriptor(Descriptor* descriptor,
5471 TransitionFlag flag); 5475 TransitionFlag flag);
5472 MUST_USE_RESULT MaybeObject* CopyInsertDescriptor(Descriptor* descriptor, 5476 MUST_USE_RESULT MaybeObject* CopyInsertDescriptor(Descriptor* descriptor,
5473 TransitionFlag flag); 5477 TransitionFlag flag);
5474 MUST_USE_RESULT MaybeObject* CopyReplaceDescriptor( 5478 MUST_USE_RESULT MaybeObject* CopyReplaceDescriptor(
5475 DescriptorArray* descriptors, 5479 DescriptorArray* descriptors,
5476 Descriptor* descriptor, 5480 Descriptor* descriptor,
5477 int index, 5481 int index,
5478 TransitionFlag flag); 5482 TransitionFlag flag);
5479 MUST_USE_RESULT MaybeObject* AsElementsKind(ElementsKind kind); 5483 MUST_USE_RESULT MaybeObject* AsElementsKind(ElementsKind kind);
5484
5480 MUST_USE_RESULT MaybeObject* CopyAsElementsKind(ElementsKind kind, 5485 MUST_USE_RESULT MaybeObject* CopyAsElementsKind(ElementsKind kind,
5481 TransitionFlag flag); 5486 TransitionFlag flag);
5487 MUST_USE_RESULT MaybeObject* CopyForObserved();
5482 5488
5483 MUST_USE_RESULT MaybeObject* CopyNormalized(PropertyNormalizationMode mode, 5489 MUST_USE_RESULT MaybeObject* CopyNormalized(PropertyNormalizationMode mode,
5484 NormalizedMapSharingMode sharing); 5490 NormalizedMapSharingMode sharing);
5485 5491
5486 inline void AppendDescriptor(Descriptor* desc, 5492 inline void AppendDescriptor(Descriptor* desc,
5487 const DescriptorArray::WhitenessWitness&); 5493 const DescriptorArray::WhitenessWitness&);
5488 5494
5489 // Returns a copy of the map, with all transitions dropped from the 5495 // Returns a copy of the map, with all transitions dropped from the
5490 // instance descriptors. 5496 // instance descriptors.
5491 static Handle<Map> Copy(Handle<Map> map); 5497 static Handle<Map> Copy(Handle<Map> map);
(...skipping 4314 matching lines...) Expand 10 before | Expand all | Expand 10 after
9806 } else { 9812 } else {
9807 value &= ~(1 << bit_position); 9813 value &= ~(1 << bit_position);
9808 } 9814 }
9809 return value; 9815 return value;
9810 } 9816 }
9811 }; 9817 };
9812 9818
9813 } } // namespace v8::internal 9819 } } // namespace v8::internal
9814 9820
9815 #endif // V8_OBJECTS_H_ 9821 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/object-observe.js ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698