Commit 675f7d2d authored by dslomov's avatar dslomov Committed by Commit bot

Invalidate property cells for non-existent properties properly.

R=verwaest@chromium.org
BUG=v8:3914
LOG=N

Review URL: https://codereview.chromium.org/945403008

Cr-Commit-Position: refs/heads/master@{#26822}
parent 42dcc6f4
...@@ -15334,8 +15334,15 @@ void GlobalObject::InvalidatePropertyCell(Handle<GlobalObject> global, ...@@ -15334,8 +15334,15 @@ void GlobalObject::InvalidatePropertyCell(Handle<GlobalObject> global,
Handle<PropertyCell> new_cell = isolate->factory()->NewPropertyCell(value); Handle<PropertyCell> new_cell = isolate->factory()->NewPropertyCell(value);
global->property_dictionary()->ValueAtPut(entry, *new_cell); global->property_dictionary()->ValueAtPut(entry, *new_cell);
Handle<Object> hole = global->GetIsolate()->factory()->the_hole_value(); Handle<Object> hole = isolate->factory()->the_hole_value();
PropertyCell::SetValueInferType(cell, hole); if (*hole != *value) {
PropertyCell::SetValueInferType(cell, hole);
} else {
// If property value was the hole, set it to any other value,
// to ensure that LoadNonexistent ICs execute a miss.
Handle<Object> undefined = isolate->factory()->undefined_value();
PropertyCell::SetValueInferType(cell, undefined);
}
} }
} }
......
...@@ -98,11 +98,6 @@ ...@@ -98,11 +98,6 @@
# TODO(jochen): Reenable after we removed the CHECK() from the marking queue. # TODO(jochen): Reenable after we removed the CHECK() from the marking queue.
'test-mark-compact/MarkingDeque': [SKIP], 'test-mark-compact/MarkingDeque': [SKIP],
# BUG(3914).
'test-decls/CrossScriptStaticLookupUndeclared': [SKIP],
'test-decls/CrossScriptReferencesHarmony': [SKIP],
'test-decls/CrossScriptReferencesHarmonyRegress': [SKIP],
############################################################################ ############################################################################
# Slow tests. # Slow tests.
'test-api/Threading1': [PASS, ['mode == debug', SLOW]], 'test-api/Threading1': [PASS, ['mode == debug', SLOW]],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment