Index: test/mjsunit/keyed-call-ic.js |
diff --git a/test/mjsunit/keyed-call-ic.js b/test/mjsunit/keyed-call-ic.js |
index 9d82965f1d2b9dc7d97d7e94b872f51909e39a93..378204f5251f058ee6dda2dd8be9f8c5040bf473 100644 |
--- a/test/mjsunit/keyed-call-ic.js |
+++ b/test/mjsunit/keyed-call-ic.js |
@@ -61,145 +61,17 @@ var keys = |
function testKeyTransitions() { |
var i, key, result, message; |
- var f = new F(); |
Jakob Kummerow
2012/11/19 12:36:00
uhm...?
danno
2012/11/26 17:16:18
Done.
|
- |
- // Custom call generators |
- var array = []; |
- for (i = 0; i != 10; i++) { |
- key = (i < 8) ? 'push' : 'pop'; |
- array[key](i); |
- } |
- |
- assertEquals(6, array.length); |
- for (i = 0; i != array.length; i++) { |
- assertEquals(i, array[i]); |
- } |
- |
- for (i = 0; i != 10; i++) { |
- key = (i < 3) ? 'pop' : 'push'; |
- array[key](i); |
- } |
- |
- assertEquals(10, array.length); |
- for (i = 0; i != array.length; i++) { |
- assertEquals(i, array[i]); |
- } |
- |
var string = 'ABCDEFGHIJ'; |
- for (i = 0; i != 10; i++) { |
- key = ((i < 5) ? 'charAt' : 'charCodeAt'); |
- result = string[key](i); |
- message = '\'' + string + '\'[\'' + key + '\'](' + i + ')'; |
- if (i < 5) { |
- assertEquals(string.charAt(i), result, message); |
- } else { |
- assertEquals(string.charCodeAt(i), result, message); |
- } |
- } |
- |
- for (i = 0; i != 10; i++) { |
- key = ((i < 5) ? 'charCodeAt' : 'charAt'); |
- result = string[key](i); |
- message = '\'' + string + '\'[\'' + key + '\'](' + i + ')'; |
- if (i < 5) { |
- assertEquals(string.charCodeAt(i), result, message); |
- } else { |
- assertEquals(string.charAt(i), result, message); |
+ for (i = 0; i != 10; i++) { |
+ key = ((i < 5) ? 'charAt' : 'charCodeAt'); |
+ result = string[key](i); |
+// message = '\'' + string + '\'[\'' + key + '\'](' + i + ')'; |
+ if (i < 5) { |
+ assertEquals(string.charAt(i), result); |
+ } else { |
+ assertEquals(string.charCodeAt(i), result); |
+ } |
} |
- } |
- |
- // Function is a constant property |
- key = 'one'; |
- for (i = 0; i != 10; i++) { |
- assertEquals(key, f[key]()); |
- if (i == 5) { |
- key = 'two'; // the name change should case a miss |
- } |
- } |
- |
- // Function is a fast property |
- f.field = function() { return 'field'; } |
- key = 'field'; |
- for (i = 0; i != 10; i++) { |
- assertEquals(key, f[key]()); |
- if (i == 5) { |
- key = 'two'; // the name change should case a miss |
- } |
- } |
- |
- // Calling on slow case object |
- f.prop = 0; |
- delete f.prop; // force the object to the slow case |
- f.four = function() { return 'four'; } |
- f.five = function() { return 'five'; } |
- |
- key = 'four'; |
- for (i = 0; i != 10; i++) { |
- assertEquals(key, f[key]()); |
- if (i == 5) { |
- key = 'five'; |
- } |
- } |
- |
- // Calling on global object |
- key = 'globalFunction1'; |
- var expect = 'function1'; |
- for (i = 0; i != 10; i++) { |
- assertEquals(expect, global[key]()); |
- if (i == 5) { |
- key = 'globalFunction2'; |
- expect = 'function2'; |
- } |
- } |
} |
testKeyTransitions(); |
- |
-function testTypeTransitions() { |
- var f = new F(); |
- var s = ''; |
- var m = 'one'; |
- var i; |
- |
- s = ''; |
- for (i = 0; i != 10; i++) { |
- if (i == 5) { F.prototype.one = function() { return '1'; } } |
- s += f[m](); |
- } |
- assertEquals("oneoneoneoneone11111", s); |
- |
- s = ''; |
- for (i = 0; i != 10; i++) { |
- if (i == 5) { f.__proto__ = { one: function() { return 'I'; } } } |
- s += f[m](); |
- } |
- assertEquals("11111IIIII", s); |
- |
- s = ''; |
- for (i = 0; i != 10; i++) { |
- if (i == 5) { f.one = function() { return 'ONE'; } } |
- s += f[m](); |
- } |
- assertEquals("IIIIIONEONEONEONEONE", s); |
- |
- m = 'toString'; |
- |
- s = ''; |
- var obj = { toString: function() { return '2'; } }; |
- for (i = 0; i != 10; i++) { |
- if (i == 5) { obj = "TWO"; } |
- s += obj[m](); |
- } |
- assertEquals("22222TWOTWOTWOTWOTWO", s); |
- |
- s = ''; |
- obj = { toString: function() { return 'ONE'; } }; |
- m = 'toString'; |
- for (i = 0; i != 10; i++) { |
- if (i == 5) { obj = 1; } |
- s += obj[m](); |
- } |
- assertEquals("ONEONEONEONEONE11111", s); |
-} |
- |
-testTypeTransitions(); |