Introduce put_by_id like IC into put_by_val when the given name is String or Symbol
[WebKit-https.git] / LayoutTests / js / regress / script-tests / polymorphic-put-by-val-with-string.js
1 var f = "f", g = "g", h = "h";
2
3 function foo(o) {
4     for (var i = 0; i < 100; ++i)
5         o[f] = (o[f] | 0) + 42;
6 }
7
8 noInline(foo);
9
10 for (var i = 0; i < 100000; ++i) {
11     var object;
12     if ((i % 3) == 0)
13         object = {[g]:3};
14     else if ((i % 3) == 1)
15         object = {[f]:1, [g]:2};
16     else if ((i % 3) == 2)
17         object = {[g]:1, [f]:2};
18     foo(object);
19     if (object[f] != 42 * 100 + (i % 3))
20         throw "Error: bad result for i = " + i + ": " + object[f];
21 }
22
23 var r = {[g]:3, [h]:4, [f]:5};
24 foo(r);
25 if (r[f] != 5 + 42 * 100)
26     throw "Error: bad result at end: " + r[f];