// Copyright 2018 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-syntax // Check that we do appropriate used/unused field accounting var p = Promise.resolve(); var then = p.then = () => {}; function spread() { return { ...p }; } %PrepareFunctionForOptimization(spread); assertEquals({ then }, spread()); assertEquals({ then }, spread()); assertEquals({ then }, spread()); %OptimizeFunctionOnNextCall(spread); assertEquals({ then }, spread());