1// Copyright 2014 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Flags: --allow-natives-syntax
6
7function MyWrapper(v) {
8  return { valueOf: function() { return v } };
9}
10
11function f() {
12  assertEquals("truex", true + "x");
13  assertEquals("truey", true + new String("y"));
14  assertEquals("truez", true + new MyWrapper("z"));
15
16  assertEquals("xtrue", "x" + true);
17  assertEquals("ytrue", new String("y") + true);
18  assertEquals("ztrue", new MyWrapper("z") + true);
19}
20
21f();
22f();
23%OptimizeFunctionOnNextCall(f);
24f();
25