code: function detectObjectObserve() {
      if (typeof Object.observe !== 'function' ||
          typeof Array.observe !== 'function') {
        return false;
      }
  
      var records = [];
  
      function callback(recs) {
        records = recs;
      }
  
      var test = {};
      var arr = [];
      Object.observe(test, callback);
      Array.observe(arr, callback);
      test.id = 1;
      test.id = 2;
      delete test.id;
      arr.push(1, 2);
      arr.length = 0;
  
      Object.deliverChangeRecords(callback);
      if (records.length !== 5)
        return false;
  
      if (records[0].type != 'add' ||
          records[1].type != 'update' ||
          records[2].type != 'delete' ||
          records[3].type != 'splice' ||
          records[4].type != 'splice') {
        return false;
      }
  
      Object.unobserve(test, callback);
      Array.unobserve(arr, callback);
  
      return true;
    }
docs: Detect and do basic sanity checking on Object/Array.observe.