code: func (self *_object) hasInstance(of Value) bool {
  	if !self.isCall() {
  		// We should not have a hasInstance method
  		panic(self.runtime.panicTypeError())
  	}
  	if !of.IsObject() {
  		return false
  	}
  	prototype := self.get("prototype")
  	if !prototype.IsObject() {
  		panic(self.runtime.panicTypeError())
  	}
  	prototypeObject := prototype._object()
  
  	value := of._object().prototype
  	for value != nil {
  		if value == prototypeObject {
  			return true
  		}
  		value = value.prototype
  	}
  	return false
  }
docs: // 15.3.5.3