租房小程序前端代码
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
878 B

2 months ago
  1. 'use strict';
  2. var test = require('tape');
  3. var gPO = require('reflect.getprototypeof/polyfill')();
  4. var gOPD = require('gopd');
  5. var hasProto = require('../');
  6. var hasProtoAccessor = require('../accessor');
  7. var getter = require('../helpers/getDunder');
  8. test('hasProtoAccessor', function (t) {
  9. var result = hasProtoAccessor();
  10. t.equal(typeof result, 'boolean', 'returns a boolean (' + result + ')');
  11. var obj = { __proto__: null };
  12. if (result) {
  13. t.notOk('toString' in obj, 'null object lacks toString');
  14. t.equal(gPO(obj), null);
  15. if (gOPD && getter) {
  16. t.equal(getter(obj), null);
  17. }
  18. } else if (hasProto()) {
  19. t.notOk('toString' in obj, 'null object lacks toString');
  20. if (gOPD && getter) {
  21. t.equal(getter(obj), null);
  22. }
  23. } else {
  24. t.ok('toString' in obj, 'without proto, null object has toString');
  25. t.equal(gPO(obj), Object.prototype);
  26. }
  27. t.end();
  28. });