| Index: src/object-observe.js
 | 
| diff --git a/src/object-observe.js b/src/object-observe.js
 | 
| index dcf98d84aed1e66359b2c71d8f648733f7479922..e21ab9c1e126b80566ba4cdbc68961d389f26a34 100644
 | 
| --- a/src/object-observe.js
 | 
| +++ b/src/object-observe.js
 | 
| @@ -30,21 +30,32 @@
 | 
|  var InternalObjectIsFrozen = $Object.isFrozen;
 | 
|  var InternalObjectFreeze = $Object.freeze;
 | 
|  
 | 
| -var InternalWeakMapProto = {
 | 
| -  __proto__: null,
 | 
| -  set: $WeakMap.prototype.set,
 | 
| -  get: $WeakMap.prototype.get,
 | 
| -  has: $WeakMap.prototype.has
 | 
| +var objectObservationState = %GetObjectObservationState();
 | 
| +if (IS_UNDEFINED(objectObservationState.observerInfoMap)) {
 | 
| +  objectObservationState.observerInfoMap = %CreateObjectHashTable();
 | 
| +  objectObservationState.objectInfoMap = %CreateObjectHashTable();
 | 
|  }
 | 
|  
 | 
| -function createInternalWeakMap() {
 | 
| -  var map = new $WeakMap;
 | 
| -  map.__proto__ = InternalWeakMapProto;
 | 
| -  return map;
 | 
| +function InternalObjectHashTable(table) {
 | 
| +  this.table = table;
 | 
|  }
 | 
|  
 | 
| -var observerInfoMap = createInternalWeakMap();
 | 
| -var objectInfoMap = createInternalWeakMap();
 | 
| +InternalObjectHashTable.prototype = {
 | 
| +  get: function(key) {
 | 
| +    return %ObjectHashTableGet(this.table, key);
 | 
| +  },
 | 
| +  set: function(key, value) {
 | 
| +    return %ObjectHashTableSet(this.table, key, value);
 | 
| +  },
 | 
| +  has: function(key) {
 | 
| +    return %ObjectHashTableHas(this.table, key);
 | 
| +  }
 | 
| +};
 | 
| +
 | 
| +var observerInfoMap = new InternalObjectHashTable(
 | 
| +    objectObservationState.observerInfoMap);
 | 
| +var objectInfoMap = new InternalObjectHashTable(
 | 
| +    objectObservationState.observerInfoMap);
 | 
|  
 | 
|  function ObjectObserve(object, callback) {
 | 
|    if (!IS_SPEC_OBJECT(object))
 | 
| @@ -161,4 +172,4 @@ function SetupObjectObserve() {
 | 
|    ));
 | 
|  }
 | 
|  
 | 
| -SetupObjectObserve();
 | 
| +SetupObjectObserve();
 | 
| 
 |