Index: src/mips/stub-cache-mips.cc |
diff --git a/src/mips/stub-cache-mips.cc b/src/mips/stub-cache-mips.cc |
index 4190e628c0d6c084b6c8788a48b48994cb1d7748..8d6f136a0f8dc67fbfa0af14bf89f3fc45ec2dca 100644 |
--- a/src/mips/stub-cache-mips.cc |
+++ b/src/mips/stub-cache-mips.cc |
@@ -1597,10 +1597,12 @@ Handle<Code> CallStubCompiler::CompileArrayPushCall( |
Handle<JSFunction> function, |
Handle<String> name, |
Code::StubType type) { |
- // If object is not an array or is observed, bail out to regular call. |
+ // If object is not an array or is observed or sealed, bail out to regular |
+ // call. |
if (!object->IsJSArray() || |
!cell.is_null() || |
- Handle<JSArray>::cast(object)->map()->is_observed()) { |
+ Handle<JSArray>::cast(object)->map()->is_observed() || |
+ !Handle<JSArray>::cast(object)->map()->is_extensible()) { |
return Handle<Code>::null(); |
} |
@@ -1839,10 +1841,12 @@ Handle<Code> CallStubCompiler::CompileArrayPopCall( |
Handle<JSFunction> function, |
Handle<String> name, |
Code::StubType type) { |
- // If object is not an array or is observed, bail out to regular call. |
+ // If object is not an array or is observed or sealed, bail out to regular |
+ // call. |
if (!object->IsJSArray() || |
!cell.is_null() || |
- Handle<JSArray>::cast(object)->map()->is_observed()) { |
+ Handle<JSArray>::cast(object)->map()->is_observed() || |
+ !Handle<JSArray>::cast(object)->map()->is_extensible()) { |
return Handle<Code>::null(); |
} |