You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
870 B
34 lines
870 B
'use strict'; |
|
|
|
var test = require('tape'); |
|
var gPO = require('reflect.getprototypeof/polyfill')(); |
|
var gOPD = require('gopd'); |
|
|
|
var hasProto = require('../'); |
|
var hasProtoMutator = require('../mutator'); |
|
|
|
var getter = require('dunder-proto/get'); |
|
|
|
test('hasProtoMutator', function (t) { |
|
var result = hasProtoMutator(); |
|
t.equal(typeof result, 'boolean', 'returns a boolean (' + result + ')'); |
|
|
|
var obj = { __proto__: null }; |
|
if (result) { |
|
t.notOk('toString' in obj, 'null object lacks toString'); |
|
t.equal(gPO(obj), null); |
|
if (gOPD && getter) { |
|
t.equal(getter(obj), null); |
|
} |
|
} else if (hasProto()) { |
|
t.notOk('toString' in obj, 'null object lacks toString'); |
|
if (gOPD && getter) { |
|
t.equal(getter(obj), null); |
|
} |
|
} else { |
|
t.ok('toString' in obj, 'without proto, null object has toString'); |
|
t.equal(gPO(obj), Object.prototype); |
|
} |
|
|
|
t.end(); |
|
});
|
|
|