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 f94ab75e9a84d2cf0d819510782b23a660057bcc..2b4f8067364fb7f4608da79db9f0469fec6ca3bd 100644 |
| --- a/test/mjsunit/harmony/object-observe.js |
| +++ b/test/mjsunit/harmony/object-observe.js |
| @@ -300,8 +300,79 @@ observer.assertCallbackRecords([ |
| { object: obj, type: 'deleted', name: '', oldValue: ' ' }, |
| ]); |
| +// Object.preventExtensions |
| +reset(); |
| +var obj = { foo: 'bar '}; |
|
arv (Not doing code reviews)
2013/10/29 21:58:18
bar' }
instead of
bar '}
rafaelw
2013/10/30 17:54:37
good catch. done.
On 2013/10/29 21:58:18, arv wro
|
| +Object.observe(obj, observer.callback); |
| +obj.baz = 'bat'; |
| +Object.preventExtensions(obj); |
| + |
| +Object.deliverChangeRecords(observer.callback); |
| +observer.assertCallbackRecords([ |
| + { object: obj, type: 'new', name: 'baz' }, |
| + { object: obj, type: 'preventExtensions' }, |
| +]); |
| + |
| +// Object.freeze |
| +reset(); |
| +var obj = { a: 'a' }; |
| +Object.defineProperty(obj, 'b', { |
| + writable: false, |
| + configurable: true, |
| + value: 'b' |
| +}); |
| +Object.defineProperty(obj, 'c', { |
| + writable: true, |
| + configurable: false, |
| + value: 'c' |
| +}); |
| +Object.defineProperty(obj, 'd', { |
| + writable: false, |
| + configurable: false, |
| + value: 'd' |
| +}); |
| +Object.observe(obj, observer.callback); |
| +Object.freeze(obj); |
| + |
| +Object.deliverChangeRecords(observer.callback); |
| +observer.assertCallbackRecords([ |
| + { object: obj, type: 'reconfigured', name: 'a' }, |
| + { object: obj, type: 'reconfigured', name: 'b' }, |
| + { object: obj, type: 'reconfigured', name: 'c' }, |
| + { object: obj, type: 'preventExtensions' }, |
| +]); |
| + |
| +// Object.seal |
| +reset(); |
| +var obj = { a: 'a' }; |
| +Object.defineProperty(obj, 'b', { |
| + writable: false, |
| + configurable: true, |
| + value: 'b' |
| +}); |
| +Object.defineProperty(obj, 'c', { |
| + writable: true, |
| + configurable: false, |
| + value: 'c' |
| +}); |
| +Object.defineProperty(obj, 'd', { |
| + writable: false, |
| + configurable: false, |
| + value: 'd' |
| +}); |
| +Object.observe(obj, observer.callback); |
| +Object.seal(obj); |
| + |
| +Object.deliverChangeRecords(observer.callback); |
| +observer.assertCallbackRecords([ |
| + { object: obj, type: 'reconfigured', name: 'a' }, |
| + { object: obj, type: 'reconfigured', name: 'b' }, |
| + { object: obj, type: 'preventExtensions' }, |
| +]); |
| + |
| // Observing a continuous stream of changes, while itermittantly unobserving. |
| reset(); |
| +var obj = {}; |
| Object.observe(obj, observer.callback); |
| Object.getNotifier(obj).notify({ |
| type: 'updated', |