Works with __proto__ only. Old v8 can't work with null proto objects. /* eslint-disable no-proto
function (O, proto) {
  _anObject(O);
  if (!_isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
}