michael@0: //length, string, object michael@0: michael@0: var expected = "3,6,4,3,6,4,3,6,4,3,6,4,"; michael@0: var actual = ''; michael@0: michael@0: function f() { michael@0: var ss = [new String("abc"), new String("foobar"), new String("quux")]; michael@0: michael@0: for (var i = 0; i < 12; ++i) { michael@0: actual += ss[i%3].length + ','; michael@0: } michael@0: } michael@0: michael@0: f(); michael@0: michael@0: assertEq(actual, expected); michael@0: michael@0: michael@0: function g(s) { michael@0: return new String(s).length; michael@0: } michael@0: michael@0: assertEq(g("x"), 1); // Warm-up michael@0: assertEq(g("x"), 1); // Create IC michael@0: assertEq(g("x"), 1); // Test IC michael@0: michael@0: function h(s) { michael@0: var x = new String(s); michael@0: for (var i = 0; i < 100; i++) michael@0: x[i] = i; michael@0: return x.length; michael@0: } michael@0: michael@0: assertEq(h("x"), 1); michael@0: assertEq(h("x"), 1); michael@0: assertEq(h("x"), 1);