Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(66)

Side by Side Diff: test/mjsunit/accessors-on-global-object.js

Issue 6658037: Change __defineGetter__ and __defineSetter__ to respect non-configurable.... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 10 matching lines...) Expand all
21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 27
28 // Test that installing a getter on the global object instead of a 28 // Test that installing a getter on the global object instead of a
29 // normal property works. 29 // normal property works.
30 30
31 var x = 0; 31 x = 0;
32 32
33 function getX() { return x; } 33 function getX() { return x; }
34 34
35 for (var i = 0; i < 10; i++) { 35 for (var i = 0; i < 10; i++) {
36 assertEquals(i < 5 ? 0 : 42, getX()); 36 assertEquals(i < 5 ? 0 : 42, getX());
37 if (i == 4) __defineGetter__("x", function() { return 42; }); 37 if (i == 4) __defineGetter__("x", function() { return 42; });
38 } 38 }
39 39
40 40
41 // Test that installing a setter on the global object instead of a 41 // Test that installing a setter on the global object instead of a
42 // normal property works. 42 // normal property works.
43 43
44 var y = 0; 44 y = 0;
45 var setter_y; 45 var setter_y;
46 46
47 function setY(value) { y = value; } 47 function setY(value) { y = value; }
48 48
49 for (var i = 0; i < 10; i++) { 49 for (var i = 0; i < 10; i++) {
50 setY(i); 50 setY(i);
51 assertEquals(i < 5 ? i : 2 * i, y); 51 assertEquals(i < 5 ? i : 2 * i, y);
52 if (i == 4) { 52 if (i == 4) {
53 __defineSetter__("y", function(value) { setter_y = 2 * value; }); 53 __defineSetter__("y", function(value) { setter_y = 2 * value; });
54 __defineGetter__("y", function() { return setter_y; }); 54 __defineGetter__("y", function() { return setter_y; });
55 } 55 }
56 } 56 }
57 57
58 58
59 // Test that replacing a getter with a normal property works as 59 // Test that replacing a getter with a normal property works as
60 // expected. 60 // expected.
61 61
62 __defineGetter__("z", function() { return 42; }); 62 __defineGetter__("z", function() { return 42; });
63 63
64 function getZ() { return z; } 64 function getZ() { return z; }
65 65
66 for (var i = 0; i < 10; i++) { 66 for (var i = 0; i < 10; i++) {
67 assertEquals(i < 5 ? 42 : 0, getZ()); 67 assertEquals(i < 5 ? 42 : 0, getZ());
68 if (i == 4) { 68 if (i == 4) {
69 delete z; 69 delete z;
70 var z = 0; 70 z = 0;
71 } 71 }
72 } 72 }
OLDNEW
« src/v8natives.js ('K') | « src/v8natives.js ('k') | test/mjsunit/regress/regress-1240.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698