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

Side by Side Diff: src/objects.h

Issue 15504002: Array.observe emit splices for array length change and update index >= length (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: missed header files (JSArray) Created 7 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 | Annotate | Revision Log
« no previous file with comments | « src/contexts.h ('k') | src/objects.cc » ('j') | src/objects.cc » ('J')
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 2381 matching lines...) Expand 10 before | Expand all | Expand 10 after
2392 public: 2392 public:
2393 static inline int SizeOf(Map* map, HeapObject* object); 2393 static inline int SizeOf(Map* map, HeapObject* object);
2394 }; 2394 };
2395 2395
2396 // Enqueue change record for Object.observe. May cause GC. 2396 // Enqueue change record for Object.observe. May cause GC.
2397 static void EnqueueChangeRecord(Handle<JSObject> object, 2397 static void EnqueueChangeRecord(Handle<JSObject> object,
2398 const char* type, 2398 const char* type,
2399 Handle<Name> name, 2399 Handle<Name> name,
2400 Handle<Object> old_value); 2400 Handle<Object> old_value);
2401 2401
2402 // Enqueue "splice" change record for Object.observe. May cause GC.
2403 static void EnqueueSpliceRecord(Handle<JSArray> object,
adamk 2013/05/24 00:15:30 Is there any need to expose these as part of the J
rafaelw 2013/05/24 19:11:43 Done.
2404 uint32_t index,
2405 Handle<JSArray> deleted,
2406 uint32_t delete_count,
2407 uint32_t add_count);
2408
2409 // Object.getNotifier(this).performChange('splice'). May cause GC.
2410 static void BeginPerformSplice(Handle<JSArray> object);
2411 static void EndPerformSplice(Handle<JSArray> object);
2412
2402 // Deliver change records to observers. May cause GC. 2413 // Deliver change records to observers. May cause GC.
2403 static void DeliverChangeRecords(Isolate* isolate); 2414 static void DeliverChangeRecords(Isolate* isolate);
2404 2415
2405 private: 2416 private:
2406 friend class DictionaryElementsAccessor; 2417 friend class DictionaryElementsAccessor;
2407 2418
2408 MUST_USE_RESULT MaybeObject* GetElementWithCallback(Object* receiver, 2419 MUST_USE_RESULT MaybeObject* GetElementWithCallback(Object* receiver,
2409 Object* structure, 2420 Object* structure,
2410 uint32_t index, 2421 uint32_t index,
2411 Object* holder); 2422 Object* holder);
(...skipping 7216 matching lines...) Expand 10 before | Expand all | Expand 10 after
9628 } else { 9639 } else {
9629 value &= ~(1 << bit_position); 9640 value &= ~(1 << bit_position);
9630 } 9641 }
9631 return value; 9642 return value;
9632 } 9643 }
9633 }; 9644 };
9634 9645
9635 } } // namespace v8::internal 9646 } } // namespace v8::internal
9636 9647
9637 #endif // V8_OBJECTS_H_ 9648 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/contexts.h ('k') | src/objects.cc » ('j') | src/objects.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698