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

Side by Side Diff: test/mjsunit/array-elements-from-object-prototype.js

Issue 8888006: Make more JS files beter match the coding standard. Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Address review comments Created 9 years 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 22 matching lines...) Expand all
33 // array-elements-from-array-prototype-chain.js 33 // array-elements-from-array-prototype-chain.js
34 // array-elements-from-object-prototype.js 34 // array-elements-from-object-prototype.js
35 // those ideally should be identical modulo host of elements and 35 // those ideally should be identical modulo host of elements and
36 // the way elements introduced. 36 // the way elements introduced.
37 // 37 //
38 // Note: they are put into a separate file as we need maximally clean 38 // Note: they are put into a separate file as we need maximally clean
39 // VM setup---some optimizations might be already turned off in 39 // VM setup---some optimizations might be already turned off in
40 // 'dirty' VM. 40 // 'dirty' VM.
41 //////////////////////////////////////////////////////////////////////// 41 ////////////////////////////////////////////////////////////////////////
42 42
43 var at3 = '@3' 43 var at3 = '@3';
44 var at7 = '@7' 44 var at7 = '@7';
45 45
46 Object.prototype[3] = at3 46 Object.prototype[3] = at3;
47 Object.prototype[7] = at7 47 Object.prototype[7] = at7;
48 48
49 var a = new Array(13) 49 var a = new Array(13);
50 50
51 assertEquals(at3, a[3]) 51 assertEquals(at3, a[3]);
52 assertFalse(a.hasOwnProperty(3)) 52 assertFalse(a.hasOwnProperty(3));
53 53
54 assertEquals(at7, a[7]) 54 assertEquals(at7, a[7]);
55 assertFalse(a.hasOwnProperty(7)) 55 assertFalse(a.hasOwnProperty(7));
56 56
57 assertEquals(undefined, a.shift(), 'hole should be returned as undefined') 57 assertEquals(undefined, a.shift(), 'hole should be returned as undefined');
58 // Side-effects: Array.prototype[3] percolates into a[2] and Array.prototype[7[ 58 // Side-effects: Array.prototype[3] percolates into a[2] and Array.prototype[7[
59 // into a[6], still visible at the corresponding indices. 59 // into a[6], still visible at the corresponding indices.
60 60
61 assertEquals(at3, a[2]) 61 assertEquals(at3, a[2]);
62 assertTrue(a.hasOwnProperty(2)) 62 assertTrue(a.hasOwnProperty(2));
63 assertEquals(at3, a[3]) 63 assertEquals(at3, a[3]);
64 assertFalse(a.hasOwnProperty(3)) 64 assertFalse(a.hasOwnProperty(3));
65 65
66 assertEquals(at7, a[6]) 66 assertEquals(at7, a[6]);
67 assertTrue(a.hasOwnProperty(6)) 67 assertTrue(a.hasOwnProperty(6));
68 assertEquals(at7, a[7]) 68 assertEquals(at7, a[7]);
69 assertFalse(a.hasOwnProperty(7)) 69 assertFalse(a.hasOwnProperty(7));
70 70
71 a.unshift('foo', 'bar') 71 a.unshift('foo', 'bar');
72 // Side-effects: Array.prototype[3] now percolates into a[5] and Array.prototype [7] 72 // Side-effects: Array.prototype[3] now percolates into a[5] and Array.prototype [7]
73 // into a[9]. 73 // into a[9].
74 74
75 assertEquals(at3, a[3]) 75 assertEquals(at3, a[3]);
76 assertFalse(a.hasOwnProperty(3)) 76 assertFalse(a.hasOwnProperty(3));
77 assertEquals(at3, a[4]) 77 assertEquals(at3, a[4]);
78 assertTrue(a.hasOwnProperty(4)) 78 assertTrue(a.hasOwnProperty(4));
79 assertEquals(at3, a[5]) 79 assertEquals(at3, a[5]);
80 assertTrue(a.hasOwnProperty(5)) 80 assertTrue(a.hasOwnProperty(5));
81 81
82 assertEquals(undefined, a[6]) 82 assertEquals(undefined, a[6]);
83 assertFalse(a.hasOwnProperty(6)) 83 assertFalse(a.hasOwnProperty(6));
84 84
85 assertEquals(at7, a[7]) 85 assertEquals(at7, a[7]);
86 assertFalse(a.hasOwnProperty(7)) 86 assertFalse(a.hasOwnProperty(7));
87 assertEquals(at7, a[8]) 87 assertEquals(at7, a[8]);
88 assertTrue(a.hasOwnProperty(8)) 88 assertTrue(a.hasOwnProperty(8));
89 assertEquals(at7, a[9]) 89 assertEquals(at7, a[9]);
90 assertTrue(a.hasOwnProperty(9)) 90 assertTrue(a.hasOwnProperty(9));
91 91
92 var sliced = a.slice(3, 10) 92 var sliced = a.slice(3, 10);
93 // Slice must keep intact a and reify holes at indices 0--2 and 4--6. 93 // Slice must keep intact a and reify holes at indices 0--2 and 4--6.
94 94
95 assertEquals(at3, a[3]) 95 assertEquals(at3, a[3]);
96 assertFalse(a.hasOwnProperty(3)) 96 assertFalse(a.hasOwnProperty(3));
97 assertEquals(at3, a[4]) 97 assertEquals(at3, a[4]);
98 assertTrue(a.hasOwnProperty(4)) 98 assertTrue(a.hasOwnProperty(4));
99 assertEquals(at3, a[5]) 99 assertEquals(at3, a[5]);
100 assertTrue(a.hasOwnProperty(5)) 100 assertTrue(a.hasOwnProperty(5));
101 101
102 assertEquals(undefined, a[6]) 102 assertEquals(undefined, a[6]);
103 assertFalse(a.hasOwnProperty(6)) 103 assertFalse(a.hasOwnProperty(6));
104 104
105 assertEquals(at7, a[7]) 105 assertEquals(at7, a[7]);
106 assertFalse(a.hasOwnProperty(7)) 106 assertFalse(a.hasOwnProperty(7));
107 assertEquals(at7, a[8]) 107 assertEquals(at7, a[8]);
108 assertTrue(a.hasOwnProperty(8)) 108 assertTrue(a.hasOwnProperty(8));
109 assertEquals(at7, a[9]) 109 assertEquals(at7, a[9]);
110 assertTrue(a.hasOwnProperty(9)) 110 assertTrue(a.hasOwnProperty(9));
111 111
112 assertEquals(at3, sliced[0]) 112 assertEquals(at3, sliced[0]);
113 assertTrue(sliced.hasOwnProperty(0)) 113 assertTrue(sliced.hasOwnProperty(0));
114 assertEquals(at3, sliced[1]) 114 assertEquals(at3, sliced[1]);
115 assertTrue(sliced.hasOwnProperty(1)) 115 assertTrue(sliced.hasOwnProperty(1));
116 assertEquals(at3, sliced[2]) 116 assertEquals(at3, sliced[2]);
117 assertTrue(sliced.hasOwnProperty(2)) 117 assertTrue(sliced.hasOwnProperty(2));
118 118
119 // Note: sliced[3] comes directly from Array.prototype[3] 119 // Note: sliced[3] comes directly from Array.prototype[3]
120 assertEquals(at3, sliced[3]); 120 assertEquals(at3, sliced[3]);
121 assertFalse(sliced.hasOwnProperty(3)) 121 assertFalse(sliced.hasOwnProperty(3));
122 122
123 assertEquals(at7, sliced[4]) 123 assertEquals(at7, sliced[4]);
124 assertTrue(sliced.hasOwnProperty(4)) 124 assertTrue(sliced.hasOwnProperty(4));
125 assertEquals(at7, sliced[5]) 125 assertEquals(at7, sliced[5]);
126 assertTrue(sliced.hasOwnProperty(5)) 126 assertTrue(sliced.hasOwnProperty(5));
127 assertEquals(at7, sliced[6]) 127 assertEquals(at7, sliced[6]);
128 assertTrue(sliced.hasOwnProperty(6)) 128 assertTrue(sliced.hasOwnProperty(6));
129 129
130 130
131 // Splice is too complicated the operation, start afresh. 131 // Splice is too complicated the operation, start afresh.
132 132
133 // Shrking array. 133 // Shrking array.
134 var a0 = [0, 1, , , 4, 5, , , , 9] 134 var a0 = [0, 1, , , 4, 5, , , , 9];
135 var result = a0.splice(4, 1) 135 var result = a0.splice(4, 1);
136 // Side-effects: everything before 4 is kept intact: 136 // Side-effects: everything before 4 is kept intact:
137 137
138 assertEquals(0, a0[0]) 138 assertEquals(0, a0[0]);
139 assertTrue(a0.hasOwnProperty(0)) 139 assertTrue(a0.hasOwnProperty(0));
140 assertEquals(1, a0[1]) 140 assertEquals(1, a0[1]);
141 assertTrue(a0.hasOwnProperty(1)) 141 assertTrue(a0.hasOwnProperty(1));
142 assertEquals(undefined, a0[2]) 142 assertEquals(undefined, a0[2]);
143 assertFalse(a0.hasOwnProperty(2)) 143 assertFalse(a0.hasOwnProperty(2));
144 assertEquals(at3, a0[3]) 144 assertEquals(at3, a0[3]);
145 assertFalse(a0.hasOwnProperty(3)) 145 assertFalse(a0.hasOwnProperty(3));
146 146
147 // 4 and above shifted left by one reifying at7 into a0[6] and keeping 147 // 4 and above shifted left by one reifying at7 into a0[6] and keeping
148 // a hole at a0[7] 148 // a hole at a0[7]
149 149
150 assertEquals(5, a0[4]) 150 assertEquals(5, a0[4]);
151 assertTrue(a0.hasOwnProperty(4)) 151 assertTrue(a0.hasOwnProperty(4));
152 assertEquals(undefined, a0[5]) 152 assertEquals(undefined, a0[5]);
153 assertFalse(a0.hasOwnProperty(5)) 153 assertFalse(a0.hasOwnProperty(5));
154 assertEquals(at7, a0[6]) 154 assertEquals(at7, a0[6]);
155 assertTrue(a0.hasOwnProperty(6)) 155 assertTrue(a0.hasOwnProperty(6));
156 assertEquals(at7, a0[7]) 156 assertEquals(at7, a0[7]);
157 assertFalse(a0.hasOwnProperty(7)) 157 assertFalse(a0.hasOwnProperty(7));
158 assertEquals(9, a0[8]) 158 assertEquals(9, a0[8]);
159 assertTrue(a0.hasOwnProperty(8)) 159 assertTrue(a0.hasOwnProperty(8));
160 160
161 // Growing array. 161 // Growing array.
162 var a1 = [0, 1, , , 4, 5, , , , 9] 162 var a1 = [0, 1, , , 4, 5, , , , 9];
163 var result = a1.splice(4, 0, undefined) 163 var result = a1.splice(4, 0, undefined);
164 // Side-effects: everything before 4 is kept intact: 164 // Side-effects: everything before 4 is kept intact:
165 165
166 assertEquals(0, a1[0]) 166 assertEquals(0, a1[0]);
167 assertTrue(a1.hasOwnProperty(0)) 167 assertTrue(a1.hasOwnProperty(0));
168 assertEquals(1, a1[1]) 168 assertEquals(1, a1[1]);
169 assertTrue(a1.hasOwnProperty(1)) 169 assertTrue(a1.hasOwnProperty(1));
170 assertEquals(undefined, a1[2]) 170 assertEquals(undefined, a1[2]);
171 assertFalse(a1.hasOwnProperty(2)) 171 assertFalse(a1.hasOwnProperty(2));
172 assertEquals(at3, a1[3]) 172 assertEquals(at3, a1[3]);
173 assertFalse(a1.hasOwnProperty(3)) 173 assertFalse(a1.hasOwnProperty(3));
174 174
175 // Now owned undefined resides at 4 and rest is shifted right by one 175 // Now owned undefined resides at 4 and rest is shifted right by one
176 // reifying at7 into a0[8] and keeping a hole at a0[7]. 176 // reifying at7 into a0[8] and keeping a hole at a0[7].
177 177
178 assertEquals(undefined, a1[4]) 178 assertEquals(undefined, a1[4]);
179 assertTrue(a1.hasOwnProperty(4)) 179 assertTrue(a1.hasOwnProperty(4));
180 assertEquals(4, a1[5]) 180 assertEquals(4, a1[5]);
181 assertTrue(a1.hasOwnProperty(5)) 181 assertTrue(a1.hasOwnProperty(5));
182 assertEquals(5, a1[6]) 182 assertEquals(5, a1[6]);
183 assertTrue(a1.hasOwnProperty(6)) 183 assertTrue(a1.hasOwnProperty(6));
184 assertEquals(at7, a1[7]) 184 assertEquals(at7, a1[7]);
185 assertFalse(a1.hasOwnProperty(7)) 185 assertFalse(a1.hasOwnProperty(7));
186 assertEquals(at7, a1[8]) 186 assertEquals(at7, a1[8]);
187 assertTrue(a1.hasOwnProperty(8)) 187 assertTrue(a1.hasOwnProperty(8));
188 assertEquals(undefined, a1[9]) 188 assertEquals(undefined, a1[9]);
189 assertFalse(a1.hasOwnProperty(9)) 189 assertFalse(a1.hasOwnProperty(9));
190 assertEquals(9, a1[10]) 190 assertEquals(9, a1[10]);
191 assertTrue(a1.hasOwnProperty(10)) 191 assertTrue(a1.hasOwnProperty(10));
OLDNEW
« no previous file with comments | « test/mjsunit/array-elements-from-array-prototype-chain.js ('k') | test/mjsunit/array-functions-prototype.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698