Merge V8 5.3.332.45. DO NOT MERGE
Test: Manual
FPIIM-449
Change-Id: Id3254828b068abdea3cb10442e0172a8c9a98e03
(cherry picked from commit 13e2dadd00298019ed862f2b2fc5068bba730bcf)
diff --git a/src/ic/ic-state.cc b/src/ic/ic-state.cc
index bf1e45f..d157c92 100644
--- a/src/ic/ic-state.cc
+++ b/src/ic/ic-state.cc
@@ -257,10 +257,10 @@
if (old_extra_ic_state == GetExtraICState()) {
// Tagged operations can lead to non-truncating HChanges
- if (left->IsUndefined() || left->IsBoolean()) {
+ if (left->IsUndefined(isolate_) || left->IsBoolean()) {
left_kind_ = GENERIC;
} else {
- DCHECK(right->IsUndefined() || right->IsBoolean());
+ DCHECK(right->IsUndefined(isolate_) || right->IsBoolean());
right_kind_ = GENERIC;
}
}
@@ -274,7 +274,7 @@
if (object->IsBoolean() && is_truncating) {
// Booleans will be automatically truncated by HChange.
new_kind = INT32;
- } else if (object->IsUndefined()) {
+ } else if (object->IsUndefined(isolate_)) {
// Undefined will be automatically truncated by HChange.
new_kind = is_truncating ? INT32 : NUMBER;
} else if (object->IsSmi()) {
@@ -446,8 +446,9 @@
// static
CompareICState::State CompareICState::TargetState(
- State old_state, State old_left, State old_right, Token::Value op,
- bool has_inlined_smi_code, Handle<Object> x, Handle<Object> y) {
+ Isolate* isolate, State old_state, State old_left, State old_right,
+ Token::Value op, bool has_inlined_smi_code, Handle<Object> x,
+ Handle<Object> y) {
switch (old_state) {
case UNINITIALIZED:
if (x->IsBoolean() && y->IsBoolean()) return BOOLEAN;
@@ -456,8 +457,8 @@
if (Token::IsOrderedRelationalCompareOp(op)) {
// Ordered comparisons treat undefined as NaN, so the
// NUMBER stub will do the right thing.
- if ((x->IsNumber() && y->IsUndefined()) ||
- (y->IsNumber() && x->IsUndefined())) {
+ if ((x->IsNumber() && y->IsUndefined(isolate)) ||
+ (y->IsNumber() && x->IsUndefined(isolate))) {
return NUMBER;
}
}