anchor.diff:      });
     }
   
  -  _getPrototypeValue(key) {
  -    var result;
  -    var prototype = (_obj["prototype"] as JsObject);
  -    if (prototype != null) {
  -      result = prototype._obj[key];
  -    }
  -    if (result == null) {
  -      if (_constructor != null) {
  -        return _constructor._getPrototypeValue(key);
  -      }
  -    }
  -    if (result == null) {
  -      return _UNDEFINED;
  -    } else {
  -      return result;
  -    }
  -  }
  -
     /**
      * Returns a [JsFunction] that captures its 'this' binding and calls [f]
      * with the value of this passed as the first argument.
  
positive.code:   toString() => "JsProperty#$id";
  }
  
  JsObject _context = _contextCreate();
  JsObject get context => _context;
  
  JsObject _contextCreate() {
    var result = new JsObject.internal();
    result["Object"] = new JsFunction.withThis((_) {});
    result["Object"]["defineProperty"] = new JsFunction.withThis((that, obj, prop,
        descriptor) {
      var getter = descriptor['get'];
  
negative.code: 
    bool hasProperty(String property) => _obj.containsKey(property);
  
    bool instanceof(JsFunction type) {
      if (type == null) {
        return false;
      }
      if (_constructor == type) {
        return true;
      }
      JsObject start = _prototype;
      while (start != null) {
        if (start._constructor == type) {
          return true;
        }
        start = start._prototype;
      }
      return false;
    }
  }
  
  class JsProperty {
  