| Index: test/mjsunit/regress/regress-crbug-305309.js
|
| diff --git a/test/mjsunit/elide-double-hole-check-9.js b/test/mjsunit/regress/regress-crbug-305309.js
|
| similarity index 80%
|
| copy from test/mjsunit/elide-double-hole-check-9.js
|
| copy to test/mjsunit/regress/regress-crbug-305309.js
|
| index 88bbc7eaaa2955cf726fda76fca080e8663b1a96..cd89bedc112002b776ff5dc6f6e41571e81b5bc0 100644
|
| --- a/test/mjsunit/elide-double-hole-check-9.js
|
| +++ b/test/mjsunit/regress/regress-crbug-305309.js
|
| @@ -27,23 +27,23 @@
|
|
|
| // Flags: --allow-natives-syntax
|
|
|
| -var do_set = false;
|
| -
|
| -%NeverOptimizeFunction(set_proto_elements);
|
| -function set_proto_elements() {
|
| - if (do_set) Array.prototype[1] = 1.5;
|
| -}
|
| -
|
| -function f(a, i) {
|
| - set_proto_elements();
|
| - return a[i] + 0.5;
|
| +function BadProto() {
|
| + this.constant_function = function() {};
|
| + this.one = 1;
|
| + this.two = 2;
|
| }
|
| +var b1 = new BadProto();
|
| +var b2 = new BadProto();
|
|
|
| -var arr = [0.0,,2.5];
|
| -assertEquals(0.5, f(arr, 0));
|
| -assertEquals(0.5, f(arr, 0));
|
| -%OptimizeFunctionOnNextCall(f);
|
| -assertEquals(0.5, f(arr, 0));
|
| -do_set = true;
|
| -assertEquals(2, f(arr, 1));
|
| +function Ctor() {}
|
| +Ctor.prototype = b1;
|
| +var a = new Ctor();
|
|
|
| +function Two(x) {
|
| + return x.two;
|
| +}
|
| +assertEquals(2, Two(a));
|
| +assertEquals(2, Two(a));
|
| +b2.constant_function = "no longer constant!";
|
| +%OptimizeFunctionOnNextCall(Two);
|
| +assertEquals(2, Two(a));
|
|
|