Reviewers: Michael Starzinger,

Description:
Version 3.25.28.13 (partial merge of r20839)

Fix Object.observe() notifications from Array.push()/Array.pop()

[email protected]
LOG=N

Please review this at https://codereview.chromium.org/247073002/

SVN Base: https://v8.googlecode.com/svn/branches/3.25

Affected files (+4, -0 lines):
  M src/hydrogen.cc


Index: src/hydrogen.cc
diff --git a/src/hydrogen.cc b/src/hydrogen.cc
index a7ef0cbd056c5b99f7ce490ad1b0d4f2df4f5295..e9779fd0e31d3ec7823089b4924b84a8e667a7a2 100644
--- a/src/hydrogen.cc
+++ b/src/hydrogen.cc
@@ -7596,6 +7596,8 @@ bool HOptimizedGraphBuilder::TryInlineBuiltinMethodCall(
       if (receiver_map->instance_type() != JS_ARRAY_TYPE) return false;
       ElementsKind elements_kind = receiver_map->elements_kind();
       if (!IsFastElementsKind(elements_kind)) return false;
+      if (receiver_map->is_observed()) return false;
+      ASSERT(receiver_map->is_extensible());

       Drop(expr->arguments()->length());
       HValue* result;
@@ -7658,6 +7660,8 @@ bool HOptimizedGraphBuilder::TryInlineBuiltinMethodCall(
       if (receiver_map->instance_type() != JS_ARRAY_TYPE) return false;
       ElementsKind elements_kind = receiver_map->elements_kind();
       if (!IsFastElementsKind(elements_kind)) return false;
+      if (receiver_map->is_observed()) return false;
+      ASSERT(receiver_map->is_extensible());

       HValue* op_vals[] = {
         context(),


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to