heyujie
2021-05-24 4885600ecc369aa2e30a65de8dd7a410f13c34df
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
"use strict";
 
var create         = require("../../../object/create")
  , getPrototypeOf = Object.getPrototypeOf;
 
module.exports = function (t, a) {
    var x = {}, y = {};
 
    if (t === null) return;
    a(t(x, y), x, "Return self object");
    a(getPrototypeOf(x), y, "Object");
    a.throws(function () { t(x); }, TypeError, "Undefined");
    a.throws(function () { t("foo"); }, TypeError, "Primitive");
    a(getPrototypeOf(t(x, null)), t.nullPolyfill || null, "Null");
    x = create(null);
    a.h1("Change null prototype");
    a(t(x, y), x, "Result");
    a(getPrototypeOf(x), y, "Prototype");
    a.h1("Set null prototype");
    a(t(y, null), y, "Result");
    a(getPrototypeOf(y), t.nullPolyfill || null, "Prototype");
};