summaryrefslogtreecommitdiffstats
path: root/js/vendor/es6-shim/test-sham/set-prototype-of.js
blob: 06683b492a3a5fe85663ace1b0c00124f17b4684 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/*global expect */
describe('Object.setPrototypeOf(o, p)', function () {
  'use strict';

  it('changes prototype to regular objects', function () {
    var obj = { a: 123 };
    expect(obj).to.be.an.instanceOf(Object);
    // sham requires assignment to work cross browser
    obj = Object.setPrototypeOf(obj, null);
    expect(obj).not.to.be.an.instanceOf(Object);
    expect(obj.a).to.equal(123);
  });

  it('changes prototype to null objects', function () {
    var obj = Object.create(null);
    obj.a = 456;
    expect(obj).not.to.be.an.instanceOf(Object);
    expect(obj.a).to.equal(456);
    // sham requires assignment to work cross browser
    obj = Object.setPrototypeOf(obj, {});
    expect(obj).to.be.an.instanceOf(Object);
    expect(obj.a).to.equal(456);
  });

});