Function xsIsInstanceOf

Tests whether an instance has a particular prototype, directly or indirectly (that is, one or more levels up in the prototype hierarchy).

bool xsIsInstanceOf (
  scope xs.bindings.xsMachineRecord* the,
  const(xs.bindings.xsSlotRecord) instance,
  const(xs.bindings.xsSlotRecord) prototype
);

The xsIsInstanceOf macro has no equivalent in ECMAScript; scripts test instances through constructors rather than directly through prototypes. A constructor is a function that has a prototype property that is used to test instances with isPrototypeOf.

Examples

In ECMAScript:

if (Object.prototype.isPrototypeOf(this)) return new Object();

In D:

if (machine.xsIsInstanceOf(xsThis, xsObjectPrototype)) xsResult = machine.xsNewObject();

Returns

true if the instance has the prototype, false otherwise.

Parameters

NameDescription
theA machine
instanceA reference to the instance to test
prototypeA reference to the prototype to test