31 lines
613 B
JavaScript
31 lines
613 B
JavaScript
var foo = {};
|
|
foo[Symbol.hasInstance]= function () { return true; };
|
|
|
|
var bar = {};
|
|
|
|
expect(bar instanceof foo).toBe(true);
|
|
|
|
var qux = {};
|
|
qux[Symbol.hasInstance]= function () { return NaN };
|
|
expect(bar instanceof qux).toBe(false);
|
|
|
|
expect(new String).toBeInstanceOf(String);
|
|
|
|
//
|
|
|
|
function Greeting(greeting) {
|
|
this.greeting = greeting;
|
|
}
|
|
|
|
Object.defineProperty(Greeting, Symbol.hasInstance, {
|
|
value: function(inst) {
|
|
return inst.greeting == "hello";
|
|
}
|
|
});
|
|
|
|
var a = new Greeting("hello");
|
|
var b = new Greeting("world");
|
|
|
|
expect(a).toBeInstanceOf(Greeting);
|
|
expect(b instanceof Greeting).not.toBe(true);
|