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

Side by Side Diff: test/mjsunit/object-define-property.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
« no previous file with comments | « test/mjsunit/object-create.js ('k') | test/mjsunit/object-freeze.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 desc = Object.getOwnPropertyDescriptor(obj1, "bar"); 171 desc = Object.getOwnPropertyDescriptor(obj1, "bar");
172 assertFalse(desc.configurable); 172 assertFalse(desc.configurable);
173 assertFalse(desc.enumerable); 173 assertFalse(desc.enumerable);
174 assertEquals(desc.writable, undefined); 174 assertEquals(desc.writable, undefined);
175 assertEquals(desc.get, accessorNoConfigurable.get); 175 assertEquals(desc.get, accessorNoConfigurable.get);
176 assertEquals(desc.set, accessorNoConfigurable.set); 176 assertEquals(desc.set, accessorNoConfigurable.set);
177 assertEquals(desc.value, undefined); 177 assertEquals(desc.value, undefined);
178 assertEquals(1, obj1.bar = 1); 178 assertEquals(1, obj1.bar = 1);
179 assertEquals(2, val1); 179 assertEquals(2, val1);
180 assertEquals(1, val2); 180 assertEquals(1, val2);
181 assertEquals(1, obj1.bar = 1) 181 assertEquals(1, obj1.bar = 1);
182 assertEquals(2, val1); 182 assertEquals(2, val1);
183 assertEquals(2, val2); 183 assertEquals(2, val2);
184 assertEquals(2, obj1.bar); 184 assertEquals(2, obj1.bar);
185 185
186 // Try to redefine bar again - should fail as configurable is false. 186 // Try to redefine bar again - should fail as configurable is false.
187 try { 187 try {
188 Object.defineProperty(obj1, "bar", accessorConfigurable); 188 Object.defineProperty(obj1, "bar", accessorConfigurable);
189 assertTrue(false); 189 assertTrue(false);
190 } catch(e) { 190 } catch(e) {
191 assertTrue(/Cannot redefine property/.test(e)); 191 assertTrue(/Cannot redefine property/.test(e));
(...skipping 12 matching lines...) Expand all
204 desc = Object.getOwnPropertyDescriptor(obj1, "bar"); 204 desc = Object.getOwnPropertyDescriptor(obj1, "bar");
205 assertFalse(desc.configurable); 205 assertFalse(desc.configurable);
206 assertFalse(desc.enumerable); 206 assertFalse(desc.enumerable);
207 assertEquals(desc.writable, undefined); 207 assertEquals(desc.writable, undefined);
208 assertEquals(desc.get, accessorNoConfigurable.get); 208 assertEquals(desc.get, accessorNoConfigurable.get);
209 assertEquals(desc.set, accessorNoConfigurable.set); 209 assertEquals(desc.set, accessorNoConfigurable.set);
210 assertEquals(desc.value, undefined); 210 assertEquals(desc.value, undefined);
211 assertEquals(1, obj1.bar = 1); 211 assertEquals(1, obj1.bar = 1);
212 assertEquals(2, val1); 212 assertEquals(2, val1);
213 assertEquals(3, val2); 213 assertEquals(3, val2);
214 assertEquals(1, obj1.bar = 1) 214 assertEquals(1, obj1.bar = 1);
215 assertEquals(2, val1); 215 assertEquals(2, val1);
216 assertEquals(4, val2); 216 assertEquals(4, val2);
217 assertEquals(4, obj1.bar); 217 assertEquals(4, obj1.bar);
218 218
219 // Define an accessor that has only a setter. 219 // Define an accessor that has only a setter.
220 Object.defineProperty(obj1, "setOnly", accessorOnlySet); 220 Object.defineProperty(obj1, "setOnly", accessorOnlySet);
221 desc = Object.getOwnPropertyDescriptor(obj1, "setOnly"); 221 desc = Object.getOwnPropertyDescriptor(obj1, "setOnly");
222 assertTrue(desc.configurable); 222 assertTrue(desc.configurable);
223 assertFalse(desc.enumerable); 223 assertFalse(desc.enumerable);
224 assertEquals(desc.set, accessorOnlySet.set); 224 assertEquals(desc.set, accessorOnlySet.set);
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 assertEquals(desc.writable, undefined); 355 assertEquals(desc.writable, undefined);
356 assertEquals(desc.get, accessorConfigurable.get); 356 assertEquals(desc.get, accessorConfigurable.get);
357 assertEquals(desc.set, accessorConfigurable.set); 357 assertEquals(desc.set, accessorConfigurable.set);
358 assertEquals(desc.value, undefined); 358 assertEquals(desc.value, undefined);
359 assertEquals(1, obj2.foo = 1); 359 assertEquals(1, obj2.foo = 1);
360 assertEquals(3, val1); 360 assertEquals(3, val1);
361 assertEquals(4, val2); 361 assertEquals(4, val2);
362 assertEquals(3, obj2.foo); 362 assertEquals(3, obj2.foo);
363 363
364 // Make data - redefine to accessor 364 // Make data - redefine to accessor
365 Object.defineProperty(obj2, "bar", dataConfigurable) 365 Object.defineProperty(obj2, "bar", dataConfigurable);
366 366
367 // Redefine to accessor property 367 // Redefine to accessor property
368 Object.defineProperty(obj2, "bar", accessorConfigurable); 368 Object.defineProperty(obj2, "bar", accessorConfigurable);
369 desc = Object.getOwnPropertyDescriptor(obj2, "bar"); 369 desc = Object.getOwnPropertyDescriptor(obj2, "bar");
370 assertTrue(desc.configurable); 370 assertTrue(desc.configurable);
371 assertFalse(desc.enumerable); 371 assertFalse(desc.enumerable);
372 assertEquals(desc.writable, undefined); 372 assertEquals(desc.writable, undefined);
373 assertEquals(desc.get, accessorConfigurable.get); 373 assertEquals(desc.get, accessorConfigurable.get);
374 assertEquals(desc.set, accessorConfigurable.set); 374 assertEquals(desc.set, accessorConfigurable.set);
375 assertEquals(desc.value, undefined); 375 assertEquals(desc.value, undefined);
376 assertEquals(1, obj2.bar = 1); 376 assertEquals(1, obj2.bar = 1);
377 assertEquals(4, val1); 377 assertEquals(4, val1);
378 assertEquals(4, val2); 378 assertEquals(4, val2);
379 assertEquals(4, obj2.foo); 379 assertEquals(4, obj2.foo);
380 380
381 // Redefine back to data property 381 // Redefine back to data property
382 Object.defineProperty(obj2, "bar", dataConfigurable); 382 Object.defineProperty(obj2, "bar", dataConfigurable);
383 desc = Object.getOwnPropertyDescriptor(obj2, "bar"); 383 desc = Object.getOwnPropertyDescriptor(obj2, "bar");
384 assertEquals(obj2.bar, 1000); 384 assertEquals(obj2.bar, 1000);
385 assertEquals(desc.value, 1000); 385 assertEquals(desc.value, 1000);
386 assertTrue(desc.configurable); 386 assertTrue(desc.configurable);
387 assertFalse(desc.writable); 387 assertFalse(desc.writable);
388 assertFalse(desc.enumerable); 388 assertFalse(desc.enumerable);
389 assertEquals(desc.get, undefined); 389 assertEquals(desc.get, undefined);
390 assertEquals(desc.set, undefined); 390 assertEquals(desc.set, undefined);
391 391
392 392
393 // Redefinition of an accessor defined using __defineGetter__ and 393 // Redefinition of an accessor defined using __defineGetter__ and
394 // __defineSetter__. 394 // __defineSetter__.
395 function get(){return this.x} 395 function get() { return this.x; }
396 function set(x){this.x=x}; 396 function set(x) { this.x = x; }
397 397
398 var obj3 = {x:1000}; 398 var obj3 = {x:1000};
399 obj3.__defineGetter__("foo", get); 399 obj3.__defineGetter__("foo", get);
400 obj3.__defineSetter__("foo", set); 400 obj3.__defineSetter__("foo", set);
401 401
402 desc = Object.getOwnPropertyDescriptor(obj3, "foo"); 402 desc = Object.getOwnPropertyDescriptor(obj3, "foo");
403 assertTrue(desc.configurable); 403 assertTrue(desc.configurable);
404 assertTrue(desc.enumerable); 404 assertTrue(desc.enumerable);
405 assertEquals(desc.writable, undefined); 405 assertEquals(desc.writable, undefined);
406 assertEquals(desc.get, get); 406 assertEquals(desc.get, get);
(...skipping 640 matching lines...) Expand 10 before | Expand all | Expand 10 after
1047 { get: undefined, set: setter1, enumerable : false, configurable : false }); 1047 { get: undefined, set: setter1, enumerable : false, configurable : false });
1048 1048
1049 1049
1050 // Regression test: Ensure that growing dictionaries are not ignored. 1050 // Regression test: Ensure that growing dictionaries are not ignored.
1051 o = {}; 1051 o = {};
1052 for (var i = 0; i < 1000; i++) { 1052 for (var i = 0; i < 1000; i++) {
1053 // Non-enumerable property forces dictionary mode. 1053 // Non-enumerable property forces dictionary mode.
1054 Object.defineProperty(o, i, {value: i, enumerable: false}); 1054 Object.defineProperty(o, i, {value: i, enumerable: false});
1055 } 1055 }
1056 assertEquals(999, o[999]); 1056 assertEquals(999, o[999]);
OLDNEW
« no previous file with comments | « test/mjsunit/object-create.js ('k') | test/mjsunit/object-freeze.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698