1var foo = function(o) { 2 return o.baa; 3}; 4 5noInline(foo); 6 7(function() { 8 var letters = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]; 9 var properties = []; 10 var o = {}; 11 for (var i = 0; i < letters.length; ++i) { 12 for (var j = 0; j < letters.length; ++j) { 13 for (var k = 0; k < letters.length; ++k) { 14 var property = letters[i] + letters[j] + letters[k]; 15 o[property] = i; 16 } 17 } 18 } 19 20 var keys = Object.keys(o); 21 keys.sort(); 22 for (var i = keys.length - 1; i >= keys.length - 8000; i--) { 23 delete o[keys[i]]; 24 } 25 26 var sum = 0; 27 var iVal = letters.indexOf("b"); 28 var niters = 1000; 29 for (var i = 0; i < niters; ++i) { 30 sum += foo(o); 31 } 32 33 if (sum != iVal * niters) 34 throw new Error("incorrect result: " + sum); 35 36 fullGC(); 37})(); 38