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

Side by Side Diff: src/objects.cc

Issue 1631673002: Also check new_target_is_base() bit when comparing two maps for equivalence. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Skip new test for ignition Created 4 years, 10 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
« no previous file with comments | « no previous file | test/mjsunit/mjsunit.status » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/objects.h" 5 #include "src/objects.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 #include <iomanip> 8 #include <iomanip>
9 #include <sstream> 9 #include <sstream>
10 10
(...skipping 12214 matching lines...) Expand 10 before | Expand all | Expand 10 after
12225 12225
12226 namespace { 12226 namespace {
12227 12227
12228 bool CheckEquivalent(Map* first, Map* second) { 12228 bool CheckEquivalent(Map* first, Map* second) {
12229 return first->GetConstructor() == second->GetConstructor() && 12229 return first->GetConstructor() == second->GetConstructor() &&
12230 first->prototype() == second->prototype() && 12230 first->prototype() == second->prototype() &&
12231 first->instance_type() == second->instance_type() && 12231 first->instance_type() == second->instance_type() &&
12232 first->bit_field() == second->bit_field() && 12232 first->bit_field() == second->bit_field() &&
12233 first->is_extensible() == second->is_extensible() && 12233 first->is_extensible() == second->is_extensible() &&
12234 first->is_strong() == second->is_strong() && 12234 first->is_strong() == second->is_strong() &&
12235 first->new_target_is_base() == second->new_target_is_base() &&
12235 first->is_hidden_prototype() == second->is_hidden_prototype(); 12236 first->is_hidden_prototype() == second->is_hidden_prototype();
12236 } 12237 }
12237 12238
12238 } // namespace 12239 } // namespace
12239 12240
12240 12241
12241 bool Map::EquivalentToForTransition(Map* other) { 12242 bool Map::EquivalentToForTransition(Map* other) {
12242 if (!CheckEquivalent(this, other)) return false; 12243 if (!CheckEquivalent(this, other)) return false;
12243 if (instance_type() == JS_FUNCTION_TYPE) { 12244 if (instance_type() == JS_FUNCTION_TYPE) {
12244 // JSFunctions require more checks to ensure that sloppy function is 12245 // JSFunctions require more checks to ensure that sloppy function is
(...skipping 7479 matching lines...) Expand 10 before | Expand all | Expand 10 after
19724 if (cell->value() != *new_value) { 19725 if (cell->value() != *new_value) {
19725 cell->set_value(*new_value); 19726 cell->set_value(*new_value);
19726 Isolate* isolate = cell->GetIsolate(); 19727 Isolate* isolate = cell->GetIsolate();
19727 cell->dependent_code()->DeoptimizeDependentCodeGroup( 19728 cell->dependent_code()->DeoptimizeDependentCodeGroup(
19728 isolate, DependentCode::kPropertyCellChangedGroup); 19729 isolate, DependentCode::kPropertyCellChangedGroup);
19729 } 19730 }
19730 } 19731 }
19731 19732
19732 } // namespace internal 19733 } // namespace internal
19733 } // namespace v8 19734 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | test/mjsunit/mjsunit.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698