Commit 45b9f15f authored by ishell's avatar ishell Committed by Commit bot

[runtime] Treat empty property cells properly when doing Object.freeze() on a global object.

BUG=chromium:663750, chromium:664123

Review-Url: https://codereview.chromium.org/2495563002
Cr-Commit-Position: refs/heads/master@{#40902}
parent 665a5d17
...@@ -8004,6 +8004,7 @@ void DictionaryDetailsAtPut<GlobalDictionary>( ...@@ -8004,6 +8004,7 @@ void DictionaryDetailsAtPut<GlobalDictionary>(
Object* value = dictionary->ValueAt(entry); Object* value = dictionary->ValueAt(entry);
DCHECK(value->IsPropertyCell()); DCHECK(value->IsPropertyCell());
value = PropertyCell::cast(value)->value(); value = PropertyCell::cast(value)->value();
if (value->IsTheHole(isolate)) return;
PropertyCell::PrepareForValue(dictionary, entry, handle(value, isolate), PropertyCell::PrepareForValue(dictionary, entry, handle(value, isolate),
details); details);
} }
......
...@@ -8,6 +8,8 @@ var v = 0; ...@@ -8,6 +8,8 @@ var v = 0;
function foo(a) { function foo(a) {
v = a; v = a;
} }
this.x = 0;
delete x;
foo(1); foo(1);
foo(2); foo(2);
......
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