| Index: test/mjsunit/harmony/object-observe.js | 
| diff --git a/test/mjsunit/harmony/object-observe.js b/test/mjsunit/harmony/object-observe.js | 
| index 75f0ff8bb818402adf439516e31b347722a4dbfd..37da1831632d8745f83159060c1b50c4c41a3aed 100644 | 
| --- a/test/mjsunit/harmony/object-observe.js | 
| +++ b/test/mjsunit/harmony/object-observe.js | 
| @@ -1233,6 +1233,75 @@ observer.assertCallbackRecords([ | 
| { object: array, name: '0', type: 'updated', oldValue: 2 }, | 
| ]); | 
|  | 
| +// Splice emitted after Array mutation methods | 
| +function MockArray(initial, observer) { | 
| +  for (var i = 0; i < initial.length; i++) | 
| +    this[i] = initial[i]; | 
| + | 
| +  this.length_ = initial.length; | 
| +  this.observer = observer; | 
| +} | 
| +MockArray.prototype = { | 
| +  set length(length) { | 
| +    Object.getNotifier(this).notify({ type: 'lengthChange' }); | 
| +    this.length_ = length; | 
| +    Object.observe(this, this.observer.callback, ['splice']); | 
| +  }, | 
| +  get length() { | 
| +    return this.length_; | 
| +  } | 
| +} | 
| + | 
| +reset(); | 
| +var array = new MockArray([], observer); | 
| +Object.observe(array, observer.callback, ['lengthChange']); | 
| +Array.prototype.push.call(array, 1); | 
| +Object.deliverChangeRecords(observer.callback); | 
| +observer.assertCallbackRecords([ | 
| +  { object: array, type: 'lengthChange' }, | 
| +  { object: array, type: 'splice', index: 0, removed: [], addedCount: 1 }, | 
| +]); | 
| + | 
| +reset(); | 
| +var array = new MockArray([1], observer); | 
| +Object.observe(array, observer.callback, ['lengthChange']); | 
| +Array.prototype.pop.call(array); | 
| +Object.deliverChangeRecords(observer.callback); | 
| +observer.assertCallbackRecords([ | 
| +  { object: array, type: 'lengthChange' }, | 
| +  { object: array, type: 'splice', index: 0, removed: [1], addedCount: 0 }, | 
| +]); | 
| + | 
| +reset(); | 
| +var array = new MockArray([1], observer); | 
| +Object.observe(array, observer.callback, ['lengthChange']); | 
| +Array.prototype.shift.call(array); | 
| +Object.deliverChangeRecords(observer.callback); | 
| +observer.assertCallbackRecords([ | 
| +  { object: array, type: 'lengthChange' }, | 
| +  { object: array, type: 'splice', index: 0, removed: [1], addedCount: 0 }, | 
| +]); | 
| + | 
| +reset(); | 
| +var array = new MockArray([], observer); | 
| +Object.observe(array, observer.callback, ['lengthChange']); | 
| +Array.prototype.unshift.call(array, 1); | 
| +Object.deliverChangeRecords(observer.callback); | 
| +observer.assertCallbackRecords([ | 
| +  { object: array, type: 'lengthChange' }, | 
| +  { object: array, type: 'splice', index: 0, removed: [], addedCount: 1 }, | 
| +]); | 
| + | 
| +reset(); | 
| +var array = new MockArray([0, 1, 2], observer); | 
| +Object.observe(array, observer.callback, ['lengthChange']); | 
| +Array.prototype.splice.call(array, 1, 1); | 
| +Object.deliverChangeRecords(observer.callback); | 
| +observer.assertCallbackRecords([ | 
| +  { object: array, type: 'lengthChange' }, | 
| +  { object: array, type: 'splice', index: 1, removed: [1], addedCount: 0 }, | 
| +]); | 
| + | 
| // | 
| // === PLAIN OBJECTS === | 
| // | 
|  |