deopt-eager-with-freeze.js 535 Bytes
Newer Older
Juliana Franco's avatar
Juliana Franco committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14
// Copyright 2017 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

function useObject(obj) {
  if (!Object.isFrozen(obj)) {
    var t = obj.f;
    obj.f = t * 2;
  }
  return obj.f;
}

15
%PrepareFunctionForOptimization(useObject);
Juliana Franco's avatar
Juliana Franco committed
16 17 18 19 20 21
var o = {f: 1, g: 2}
assertEquals(useObject(o), 2);
assertEquals(useObject(o), 4);
%OptimizeFunctionOnNextCall(useObject);
Object.freeze(o);
assertEquals(useObject(o), 4);