1var $export = require('./_export');
2var toAbsoluteIndex = require('./_to-absolute-index');
3var fromCharCode = String.fromCharCode;
4var $fromCodePoint = String.fromCodePoint;
5
6// length should be 1, old FF problem
7$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
8  // 21.1.2.2 String.fromCodePoint(...codePoints)
9  fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars
10    var res = [];
11    var aLen = arguments.length;
12    var i = 0;
13    var code;
14    while (aLen > i) {
15      code = +arguments[i++];
16      if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');
17      res.push(code < 0x10000
18        ? fromCharCode(code)
19        : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)
20      );
21    } return res.join('');
22  }
23});
24