From 7196ea72c8d77944108b9e38c4f084ef2b8b79ad Mon Sep 17 00:00:00 2001 From: mstarzinger Date: Fri, 10 Apr 2015 01:30:41 -0700 Subject: [PATCH] [crankshaft] Fix interceptor shadowing constant global property. This makes sure Crankshaft respects interceptors in the global object even when they shadow a constant global property. R=verwaest@chromium.org TEST=cctest/test-api-interceptors/PrePropertyHandler Review URL: https://codereview.chromium.org/1070803002 Cr-Commit-Position: refs/heads/master@{#27733} --- src/hydrogen.cc | 5 ++--- test/cctest/cctest.status | 3 --- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/hydrogen.cc b/src/hydrogen.cc index 6fc434c..04d3cc7 100644 --- a/src/hydrogen.cc +++ b/src/hydrogen.cc @@ -5346,8 +5346,7 @@ void HOptimizedGraphBuilder::VisitVariableProxy(VariableProxy* expr) { } } - LookupIterator it(global, variable->name(), - LookupIterator::OWN_SKIP_INTERCEPTOR); + LookupIterator it(global, variable->name(), LookupIterator::OWN); GlobalPropertyAccess type = LookupGlobalProperty(variable, &it, LOAD); if (type == kUseCell) { @@ -6510,7 +6509,7 @@ void HOptimizedGraphBuilder::HandleGlobalVariableAssignment( } } - LookupIterator it(global, var->name(), LookupIterator::OWN_SKIP_INTERCEPTOR); + LookupIterator it(global, var->name(), LookupIterator::OWN); GlobalPropertyAccess type = LookupGlobalProperty(var, &it, STORE); if (type == kUseCell) { Handle cell = it.GetPropertyCell(); diff --git a/test/cctest/cctest.status b/test/cctest/cctest.status index 75aacde..34cbab1 100644 --- a/test/cctest/cctest.status +++ b/test/cctest/cctest.status @@ -107,9 +107,6 @@ # optimized and hence scripts don't "return" the correct value. Fix this. 'test-compiler/CompileFunctionInContext*': [PASS, NO_VARIANTS], - # TODO(mstarzinger): Crankshaft doesn't fire interceptors as expected. - 'test-api-interceptors/PrePropertyHandler': [PASS, NO_VARIANTS], - # TODO(mstarzinger): Crankshaft messes with debugger, investigate and fix! 'test-debug/BreakPointThroughJavaScript': [PASS, NO_VARIANTS], # in no-snap mode. 'test-debug/ScriptBreakPointByIdThroughJavaScript': [PASS, NO_VARIANTS], -- 2.7.4