Chromium Code Reviews| Index: test/mjsunit/harmony/object-observe.js |
| diff --git a/test/mjsunit/harmony/object-observe.js b/test/mjsunit/harmony/object-observe.js |
| index 27cf2f964a2a6c4de76859a765377de8727ec950..188c1bb82e07e326257a2a0daf8565edff58e672 100644 |
| --- a/test/mjsunit/harmony/object-observe.js |
| +++ b/test/mjsunit/harmony/object-observe.js |
| @@ -332,3 +332,23 @@ observer.assertCallbackRecords([ |
| { object: obj, name: "1", type: "deleted", oldValue: 10 }, |
| { object: obj, name: "1", type: "new" }, |
| ]); |
| + |
| +// Observing array length (including truncation) |
| +reset(); |
| +var arr = ['a', 'b', 'c', 'd']; |
| +Object.defineProperty(arr, '0', {configurable: false}); |
| +Object.defineProperty(arr, '2', {get: function(){}}); |
|
rossberg
2012/11/08 14:26:22
Perhaps add the case of a non-configurable accesso
adamk
2012/11/08 14:48:01
Done.
|
| +Object.observe(arr, observer.callback); |
| +arr.length = 2; |
| +arr.length = 0; |
| +arr.length = 10; |
| +Object.deliverChangeRecords(observer.callback); |
| +observer.assertCallbackRecords([ |
| + { object: arr, name: '3', type: 'deleted', oldValue: 'd' }, |
| + // TODO(adamk): oldValue should not be present below |
| + { object: arr, name: '2', type: 'deleted', oldValue: undefined }, |
| + { object: arr, name: 'length', type: 'updated', oldValue: 4 }, |
| + { object: arr, name: '1', type: 'deleted', oldValue: 'b' }, |
| + { object: arr, name: 'length', type: 'updated', oldValue: 2 }, |
| + { object: arr, name: 'length', type: 'updated', oldValue: 1 }, |
| +]); |