Index: frontend/node_modules/has-proto/test/accessor.js
===================================================================
--- frontend/node_modules/has-proto/test/accessor.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/has-proto/test/accessor.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,34 @@
+'use strict';
+
+var test = require('tape');
+var gPO = require('reflect.getprototypeof/polyfill')();
+var gOPD = require('gopd');
+
+var hasProto = require('../');
+var hasProtoAccessor = require('../accessor');
+
+var getter = require('dunder-proto/get');
+
+test('hasProtoAccessor', function (t) {
+	var result = hasProtoAccessor();
+	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();
+});
Index: frontend/node_modules/has-proto/test/index.js
===================================================================
--- frontend/node_modules/has-proto/test/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/has-proto/test/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,28 @@
+'use strict';
+
+var test = require('tape');
+var gPO = require('reflect.getprototypeof/polyfill')();
+var gOPD = require('gopd');
+
+var hasProto = require('../');
+
+var getter = require('dunder-proto/get');
+
+test('hasProto', function (t) {
+	var result = hasProto();
+	t.equal(typeof result, 'boolean', 'returns a boolean (' + result + ')');
+
+	var obj = { __proto__: null };
+	if (result) {
+		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();
+});
+
Index: frontend/node_modules/has-proto/test/mutator.js
===================================================================
--- frontend/node_modules/has-proto/test/mutator.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/has-proto/test/mutator.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,34 @@
+'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();
+});
