[JSC] AI should not propagate AbstractValue relying on constant folding phase
[WebKit-https.git] / JSTests / microbenchmarks / regexp-prototype-split-observable-side-effects3-multiline.js
1 //@ runNoFTL
2
3 function assert(testedValue, msg) {
4     if (!testedValue)
5         throw Error(msg);
6 }
7
8 // RegExp.prototype with overridden flags: Testing ES6 21.2.5.11: 5. Let flags be ? ToString(? Get(rx, "flags")).
9 (function () {
10     let flag = "multiline";
11     let flagValue = false;
12
13     let accesses = [];
14     let origDescriptor = Object.getOwnPropertyDescriptor(RegExp.prototype, flag);
15
16     Object.defineProperty(RegExp.prototype, flag, {
17         get: function() {
18             accesses.push(flag);
19             return flagValue;
20         }
21     });
22     let obj = /it/;
23
24     assert(accesses == "", "unexpected call to overridden props");
25     let result = RegExp.prototype[Symbol.split].call(obj, "splitme");
26     assert(accesses == flag, "Property accesses do not match expectation");
27     assert(result == "spl,me", "Unexpected result");
28 })();