blob: dcad7d49255da05426d4e1eaed6ac605f90d4d56 [file] [log] [blame]
mrowe@apple.com2f6dfdf2008-05-22 01:20:45 +00001description(
2"This test checks that implicit reentry to global code through a getter does not clobber the calling register file."
3);
4
5var testVar = "FAIL";
6function testGlobalCode(test) {
7 document.write("<script>"+test+"<"+"/script>");
8}
9var testObject = {
10 get getterTest(){ testGlobalCode("var a, b, c, d; testVar = 'PASS';"); },
joepeck@webkit.org19123342015-03-25 04:20:30 +000011 set setterTest(x){ testGlobalCode("var e, f, g, h; testVar = 'PASS';"); },
mrowe@apple.com2f6dfdf2008-05-22 01:20:45 +000012 toString: function() { testGlobalCode("var i, j, k, l; testVar = 'PASS';"); return ''; },
13 valueOf: function() { testGlobalCode("var m, n, o, p; testVar = 'PASS';"); return 0; },
14 toStringTest: function() { "" + this; },
15 valueOfTest: function() { 0 * this; }
16};
17
18shouldBe("testObject.getterTest; testVar;", '"PASS"');
19var testVar = "FAIL";
20shouldBe("testObject.setterTest = 1; testVar;", '"PASS"');
21var testVar = "FAIL";
22shouldBe("testObject.toStringTest(); testVar;", '"PASS"');
23var testVar = "FAIL";
24shouldBe("testObject.valueOfTest(); testVar;", '"PASS"');