// Copyright 2014 the V8 project authors. All rights reserved.// Use of this source code is governed by a BSD-style license that can be// found in the LICENSE file.// Flags: --allow-natives-syntaxfunctionfoo(x){vark="value";returnx[k]=1;}varobj={};Object.defineProperty(obj,"value",{set:function(x){throw"nope";}});try{foo(obj);}catch(e){}try{foo(obj);}catch(e){}%OptimizeFunctionOnNextCall(foo);try{foo(obj);}catch(e){}functionbar(x){vark="value";return(x[k]=1)?"ok":"nope";}varobj2={};Object.defineProperty(obj2,"value",{set:function(x){throw"nope";returntrue;}});try{bar(obj2);}catch(e){}try{bar(obj2);}catch(e){}%OptimizeFunctionOnNextCall(bar);try{bar(obj2);}catch(e){}