summaryrefslogtreecommitdiff
path: root/deps/v8/src/elements.h
diff options
context:
space:
mode:
authorAli Ijaz Sheikh <ofrobots@google.com>2015-11-30 21:22:40 -0800
committerAli Ijaz Sheikh <ofrobots@google.com>2015-12-04 00:06:01 -0800
commit8a43a3d7619fde59f0d1f2fad05d8ae7d1732b02 (patch)
tree8698af91526d0eac90840dcba1e5b565160105c4 /deps/v8/src/elements.h
parent8a2acd4cc9807510786b4b6f7ad3a947aeb3a14c (diff)
downloadandroid-node-v8-8a43a3d7619fde59f0d1f2fad05d8ae7d1732b02.tar.gz
android-node-v8-8a43a3d7619fde59f0d1f2fad05d8ae7d1732b02.tar.bz2
android-node-v8-8a43a3d7619fde59f0d1f2fad05d8ae7d1732b02.zip
deps: upgrade V8 to 4.7.80.24
Pick up the latest branch head for V8 4.7: https://github.com/v8/v8/commit/be169f8df059040e6a53ec1dd4579d8bca2167b5 Full change history for the 4.7 branch: https://chromium.googlesource.com/v8/v8.git/+log/branch-heads/4.7 V8 blog post about what is new on V8 4.7: http://v8project.blogspot.de/2015/10/v8-release-47.html PR-URL: https://github.com/nodejs/node/pull/4106 Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: targos - Michaƫl Zasso <mic.besace@gmail.com> Reviewed-By: rvagg - Rod Vagg <rod@vagg.org>
Diffstat (limited to 'deps/v8/src/elements.h')
-rw-r--r--deps/v8/src/elements.h42
1 files changed, 32 insertions, 10 deletions
diff --git a/deps/v8/src/elements.h b/deps/v8/src/elements.h
index 0131f0baf0..fcc90024ba 100644
--- a/deps/v8/src/elements.h
+++ b/deps/v8/src/elements.h
@@ -38,6 +38,11 @@ class ElementsAccessor {
return HasElement(holder, index, handle(holder->elements()));
}
+ // Returns true if the backing store is compact in the given range
+ virtual bool IsPacked(Handle<JSObject> holder,
+ Handle<FixedArrayBase> backing_store, uint32_t start,
+ uint32_t end) = 0;
+
virtual Handle<Object> Get(Handle<FixedArrayBase> backing_store,
uint32_t entry) = 0;
@@ -60,9 +65,6 @@ class ElementsAccessor {
// destination array with the hole.
static const int kCopyToEndAndInitializeToHole = -2;
- static const int kDirectionForward = 1;
- static const int kDirectionReverse = -1;
-
// Copy elements from one backing store to another. Typically, callers specify
// the source JSObject or JSArray in source_holder. If the holder's backing
// store is available, it can be passed in source and source_holder is
@@ -98,9 +100,9 @@ class ElementsAccessor {
virtual void GrowCapacityAndConvert(Handle<JSObject> object,
uint32_t capacity) = 0;
- virtual Handle<FixedArray> AddElementsToFixedArray(
- Handle<JSObject> receiver, Handle<FixedArray> to,
- FixedArray::KeyFilter filter) = 0;
+ virtual void AddElementsToKeyAccumulator(Handle<JSObject> receiver,
+ KeyAccumulator* accumulator,
+ FixedArray::KeyFilter filter) = 0;
// Returns a shared ElementsAccessor for the specified ElementsKind.
static ElementsAccessor* ForKind(ElementsKind elements_kind) {
@@ -125,11 +127,31 @@ class ElementsAccessor {
Handle<Object> value, PropertyAttributes attributes,
uint32_t new_capacity) = 0;
- // TODO(cbruni): Consider passing Arguments* instead of Object** depending on
- // the requirements of future callers.
+ static Handle<JSArray> Concat(Isolate* isolate, Arguments* args,
+ uint32_t concat_size);
+
virtual uint32_t Push(Handle<JSArray> receiver,
- Handle<FixedArrayBase> backing_store, Object** objects,
- uint32_t start, int direction) = 0;
+ Handle<FixedArrayBase> backing_store, Arguments* args,
+ uint32_t push_size) = 0;
+
+ virtual uint32_t Unshift(Handle<JSArray> receiver,
+ Handle<FixedArrayBase> backing_store,
+ Arguments* args, uint32_t unshift_size) = 0;
+
+ virtual Handle<JSArray> Slice(Handle<JSObject> receiver,
+ Handle<FixedArrayBase> backing_store,
+ uint32_t start, uint32_t end) = 0;
+
+ virtual Handle<JSArray> Splice(Handle<JSArray> receiver,
+ Handle<FixedArrayBase> backing_store,
+ uint32_t start, uint32_t delete_count,
+ Arguments* args, uint32_t add_count) = 0;
+
+ virtual Handle<Object> Pop(Handle<JSArray> receiver,
+ Handle<FixedArrayBase> backing_store) = 0;
+
+ virtual Handle<Object> Shift(Handle<JSArray> receiver,
+ Handle<FixedArrayBase> backing_store) = 0;
protected:
friend class LookupIterator;