| 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 '};
|
| +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',
|
|
|