This commit is contained in:
Bernhard Posselt 2015-11-12 17:21:08 +01:00
Родитель ec700890c0
Коммит 104cf2afe0
13 изменённых файлов: 397 добавлений и 304 удалений

8
js/vendor/es6-shim/.bower.json поставляемый
Просмотреть файл

@ -27,12 +27,12 @@
"test" "test"
], ],
"homepage": "https://github.com/paulmillr/es6-shim", "homepage": "https://github.com/paulmillr/es6-shim",
"version": "0.33.8", "version": "0.33.12",
"_release": "0.33.8", "_release": "0.33.12",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "0.33.8", "tag": "0.33.12",
"commit": "bdc0510b2db1366713f084c1d2d2fde4b1500f0e" "commit": "2fc76e7c759cbc1643722bc21132e246f935d4e1"
}, },
"_source": "git://github.com/paulmillr/es6-shim.git", "_source": "git://github.com/paulmillr/es6-shim.git",
"_target": "~0.*", "_target": "~0.*",

30
js/vendor/es6-shim/CHANGELOG.md поставляемый
Просмотреть файл

@ -1,5 +1,35 @@
# es6-shim x.x.x (not yet released) # es6-shim x.x.x (not yet released)
# es6-shim 0.33.12 (11 Nov 2015)
* [Fix] IE 8: more NFE madness.
* [Dev Deps] update `es5-shim`
* [Docs] removing now-fixed `Number` caveat
* [Docs] use assertions so `evalmd` will test the readme better.
* [Docs] fix incorrect isFinite note (#373)
# es6-shim 0.33.11 (9 Nov 2015)
* [Fix] handle future change of RegExp.prototype not being a regex (#370, #371)
* [Fix] disallow invalid hex strings in `Number` (#369)
* [Tests] Tweak "polluted prototype" approach
* [Dev Deps] update `chai`, `es5-shim`, `eslint`, `@ljharb/eslint-config`, `jscs`
# es6-shim 0.33.10 (2 Nov 2015)
* [Fix] the `Number` constructor properly trims (or not) whitespace characters (#368)
* [Fix] `Number('0b12')` and `Number('0o18')` should both be `NaN` (#366)
* [Tests] Fix npm upgrades in older nodes
* [Tests] add `npm run tests-only`
* [Tests] on `node` `v5.0`
* [Tests] ensure `JSON.stringify` has the right name
* [Tests] add `npm run eslint`
* [Dev Deps] update `es5-shim`, `jscs`
* [Cleanup] Rearrange things so that theyre defined before theyre used
* [Cleanup] Don't reassign to function or catch parameters
* [Cleanup] Remove unused variables
* [Refactor] String#trim shim should use `defineProperty`, and check more non-whitespace chars
# es6-shim 0.33.9 (29 Oct 2015)
* [Fix] IE 8: `Number(new Number(1))` was throwing. More NFE madness. (#365)
# es6-shim 0.33.8 (23 Oct 2015) # es6-shim 0.33.8 (23 Oct 2015)
* [Fix] IE 8: `Promise.resolve(2)` was throwing. More named function expression madness. * [Fix] IE 8: `Promise.resolve(2)` was throwing. More named function expression madness.
* [Tests] Reflect: Don't attempt to define properties on this test object unless we're in true ES5. * [Tests] Reflect: Don't attempt to define properties on this test object unless we're in true ES5.

74
js/vendor/es6-shim/Gruntfile.js поставляемый
Просмотреть файл

@ -1,14 +1,16 @@
'use strict';
module.exports = function (grunt) { module.exports = function (grunt) {
var browsers = [ var browsers = [
{ browserName: "firefox", version: "19", platform: "XP" }, { browserName: 'firefox', version: '19', platform: 'XP' },
{ browserName: "firefox", platform: "linux" }, { browserName: 'firefox', platform: 'linux' },
{ browserName: "firefox", platform: "OS X 10.10" }, { browserName: 'firefox', platform: 'OS X 10.10' },
{ browserName: "chrome", platform: "linux" }, { browserName: 'chrome', platform: 'linux' },
{ browserName: "chrome", platform: "OS X 10.9" }, { browserName: 'chrome', platform: 'OS X 10.9' },
{ browserName: "chrome", platform: "XP" }, { browserName: 'chrome', platform: 'XP' },
{ browserName: "internet explorer", platform: "Windows 8.1", version: "11" }, { browserName: 'internet explorer', platform: 'Windows 8.1', version: '11' },
{ browserName: "internet explorer", platform: "WIN8", version: "10" }, { browserName: 'internet explorer', platform: 'WIN8', version: '10' },
{ browserName: "internet explorer", platform: "VISTA", version: "9" }, { browserName: 'internet explorer', platform: 'VISTA', version: '9' },
{ browserName: 'safari', platform: 'OS X 10.6' }, { browserName: 'safari', platform: 'OS X 10.6' },
{ browserName: 'safari', platform: 'OS X 10.8' }, { browserName: 'safari', platform: 'OS X 10.8' },
{ browserName: 'safari', platform: 'OS X 10.9' }, { browserName: 'safari', platform: 'OS X 10.9' },
@ -17,16 +19,16 @@ module.exports = function (grunt) {
{ browserName: 'android', platform: 'Linux', version: '4.4' }, { browserName: 'android', platform: 'Linux', version: '4.4' },
]; ];
var extraBrowsers = [ var extraBrowsers = [
{ browserName: "firefox", platform: "linux", version: "30" }, { browserName: 'firefox', platform: 'linux', version: '30' },
{ browserName: "firefox", platform: "linux", version: "25" }, { browserName: 'firefox', platform: 'linux', version: '25' },
{ browserName: 'iphone', platform: 'OS X 10.8', version: '6.1' }, { browserName: 'iphone', platform: 'OS X 10.8', version: '6.1' },
{ browserName: 'iphone', platform: 'OS X 10.8', version: '5.1' }, { browserName: 'iphone', platform: 'OS X 10.8', version: '5.1' },
{ browserName: 'android', platform: 'Linux', version: '4.2' }, { browserName: 'android', platform: 'Linux', version: '4.2' },
// XXX haven't investigated these: // XXX haven't investigated these:
//{ browserName: "opera", platform: "Windows 7", version: "12" }, // { browserName: 'opera', platform: 'Windows 7', version: '12' },
//{ browserName: "opera", platform: "Windows 2008", version: "12" } // { browserName: 'opera', platform: 'Windows 2008', version: '12' }
//{ browserName: 'iphone', platform: 'OS X 10.6', version: '4.3' }, // { browserName: 'iphone', platform: 'OS X 10.6', version: '4.3' },
//{ browserName: 'android', platform: 'Linux', version: '4.0' }, // { browserName: 'android', platform: 'Linux', version: '4.0' },
]; ];
if (grunt.option('extra')) { if (grunt.option('extra')) {
browsers = browsers.concat(extraBrowsers); browsers = browsers.concat(extraBrowsers);
@ -35,7 +37,7 @@ module.exports = function (grunt) {
connect: { connect: {
server: { server: {
options: { options: {
base: "", base: '',
port: 9999, port: 9999,
useAvailablePort: true useAvailablePort: true
} }
@ -45,56 +47,52 @@ module.exports = function (grunt) {
all: { all: {
options: { options: {
urls: (function () { urls: (function () {
var urls = ["http://localhost:9999/test/"]; var urls = ['http://localhost:9999/test/'];
if (grunt.option('extra')) { if (grunt.option('extra')) {
urls.push("http://localhost:9999/test-sham/"); urls.push('http://localhost:9999/test-sham/');
} }
return urls; return urls;
}()), }()),
//tunnelTimeout: 5, // tunnelTimeout: 5,
build: process.env.TRAVIS_BUILD_NUMBER, build: process.env.TRAVIS_BUILD_NUMBER,
tunneled: !process.env.SAUCE_HAS_TUNNEL, tunneled: !process.env.SAUCE_HAS_TUNNEL,
identifier: process.env.TRAVIS_JOB_NUMBER, identifier: process.env.TRAVIS_JOB_NUMBER,
sauceConfig: { sauceConfig: {
'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER
}, },
//concurrency: 3, // concurrency: 3,
browsers: browsers, browsers: browsers,
testname: (function () { testname: (function () {
var testname = "mocha"; var testname = 'mocha';
if (process.env.TRAVIS_PULL_REQUEST && if (process.env.TRAVIS_PULL_REQUEST && process.env.TRAVIS_PULL_REQUEST !== 'false') {
process.env.TRAVIS_PULL_REQUEST !== 'false') { testname += ' (PR ' + process.env.TRAVIS_PULL_REQUEST + ')';
testname += ' (PR '+process.env.TRAVIS_PULL_REQUEST+')';
} }
if (process.env.TRAVIS_BRANCH && if (process.env.TRAVIS_BRANCH && process.env.TRAVIS_BRANCH !== 'false') {
process.env.TRAVIS_BRANCH !== 'false') { testname += ' (branch ' + process.env.TRAVIS_BRANCH + ')';
testname += ' (branch '+process.env.TRAVIS_BRANCH+')';
} }
return testname; return testname;
})(), }()),
tags: (function () { tags: (function () {
var tags = []; var tags = [];
if (process.env.TRAVIS_PULL_REQUEST && if (process.env.TRAVIS_PULL_REQUEST && process.env.TRAVIS_PULL_REQUEST !== 'false') {
process.env.TRAVIS_PULL_REQUEST !== 'false') { tags.push('PR-' + process.env.TRAVIS_PULL_REQUEST);
tags.push('PR-'+process.env.TRAVIS_PULL_REQUEST);
} }
if (process.env.TRAVIS_BRANCH && if (process.env.TRAVIS_BRANCH && process.env.TRAVIS_BRANCH !== 'false') {
process.env.TRAVIS_BRANCH !== 'false') {
tags.push(process.env.TRAVIS_BRANCH); tags.push(process.env.TRAVIS_BRANCH);
} }
return tags; return tags;
})() }())
} }
} }
}, },
watch: {} watch: {}
}); });
// Loading dependencies // Loading dependencies
for (var key in grunt.file.readJSON("package.json").devDependencies) { for (var key in grunt.file.readJSON('package.json').devDependencies) {
if (key !== "grunt" && key.indexOf("grunt") === 0) { if (key !== 'grunt' && key.indexOf('grunt') === 0) {
grunt.loadNpmTasks(key); grunt.loadNpmTasks(key);
} }
} }
grunt.registerTask("dev", ["connect", "watch"]); grunt.registerTask('dev', ['connect', 'watch']);
grunt.registerTask("sauce", ["connect", "saucelabs-mocha"]); grunt.registerTask('sauce', ['connect', 'saucelabs-mocha']);
}; };

67
js/vendor/es6-shim/README.md поставляемый
Просмотреть файл

@ -156,27 +156,43 @@ The [es6-collections](https://github.com/WebReflection/es6-collections) implemen
## Getting started ## Getting started
```javascript ```javascript
var assert = require('assert');
require('es6-shim'); require('es6-shim');
var assert = require('assert');
'abc'.startsWith('a'); // true assert.equal(true, 'abc'.startsWith('a'));
'abc'.endsWith('a'); // false assert.equal(false, 'abc'.endsWith('a'));
'john alice'.includes('john'); // true assert.equal(true, 'john alice'.includes('john'));
'123'.repeat(2); // '123123' assert.equal('123'.repeat(2), '123123');
Object.is(NaN, NaN); // Fixes ===. 0 isnt -0, NaN is NaN assert.equal(false, NaN === NaN);
Object.assign({a: 1}, {b: 2}); // {a: 1, b: 2} assert.equal(true, Object.is(NaN, NaN));
assert.equal(true, -0 === 0);
assert.equal(false, Object.is(-0, 0));
var result = Object.assign({ a: 1 }, { b: 2 });
assert.deepEqual(result, { a: 1, b: 2 });
assert.equal(true, isNaN('a'));
assert.equal(false, Number.isNaN('a'));
assert.equal(true, Number.isNaN(NaN));
assert.equal(true, isFinite('123'));
assert.equal(false, Number.isFinite('123'));
assert.equal(false, Number.isFinite(Infinity));
Number.isNaN('123'); // false. Global isNaN('123') will give true.
Number.isFinite('asd'); // false. Global isFinite() will give true.
// Tests if value is a number, finite, // Tests if value is a number, finite,
// >= -9007199254740992 && <= 9007199254740992 and floor(value) === value // >= -9007199254740992 && <= 9007199254740992 and floor(value) === value
Number.isInteger(2.4); // false. assert.equal(false, Number.isInteger(2.4));
Math.sign(400); // 1, 0 or -1 depending on sign. In this case 1. assert.equal(1, Math.sign(400));
assert.equal(0, Math.sign(0));
assert.equal(-1, Math.sign(-400));
[5, 10, 15, 10].find(function (item) { return item / 2 === 5; }); // 10 var found = [5, 10, 15, 10].find(function (item) { return item / 2 === 5; });
[5, 10, 15, 10].findIndex(function (item) { return item / 2 === 5; }); // 1 assert.equal(10, found);
var foundIndex = [5, 10, 15, 10].findIndex(function (item) { return item / 2 === 5; });
assert.equal(1, foundIndex);
// Replacement for `{}` key-value storage. // Replacement for `{}` key-value storage.
// Keys can be anything. // Keys can be anything.
@ -184,30 +200,35 @@ var map = new Map([['Bob', 42], ['Foo', 'bar']]);
map.set('John', 25); map.set('John', 25);
map.set('Alice', 400); map.set('Alice', 400);
map.set(['meh'], 555); map.set(['meh'], 555);
assert(map.get(['meh']) === undefined); // undefined because you need to use exactly the same object. assert.equal(undefined, map.get(['meh'])); // undefined because you need to use exactly the same object.
map.delete('Alice'); map.delete('Alice');
map.keys(); map.keys();
map.values(); map.values();
assert(map.size === 4); assert.equal(4, map.size);
// Useful for storing unique items. // Useful for storing unique items.
var set = new Set([0, 1]); var set = new Set([0, 1]);
set.add(2); set.add(2);
set.add(5); set.add(5);
assert(set.has(0) === true); assert.equal(true, set.has(0));
assert(set.has(1) === true); assert.equal(true, set.has(1));
assert(set.has(2) === true); assert.equal(true, set.has(2));
assert(set.has(4) === false); assert.equal(false, set.has(4));
assert.equal(true, set.has(5));
set.delete(5); set.delete(5);
assert.equal(false, set.has(5));
// Promises, see // Promises, see
// http://www.slideshare.net/domenicdenicola/callbacks-promises-and-coroutines-oh-my-the-evolution-of-asynchronicity-in-javascript // http://www.slideshare.net/domenicdenicola/callbacks-promises-and-coroutines-oh-my-the-evolution-of-asynchronicity-in-javascript
// https://github.com/petkaantonov/bluebird/#what-are-promises-and-why-should-i-use-them // https://github.com/petkaantonov/bluebird/#what-are-promises-and-why-should-i-use-them
Promise.resolve(5).then(function (value) { Promise.resolve(5).then(function (value) {
if (value) throw new Error("whoops!"); assert.equal(value, 5);
if (value) throw new Error('whoops!');
// do some stuff // do some stuff
return anotherPromise(); return anotherPromise();
}).catch(function (e) { }).catch(function (e) {
assert.equal(e.message, 'whoops!');
assert.equal(true, e instanceof Error);
// any errors thrown asynchronously end up here // any errors thrown asynchronously end up here
}); });
``` ```
@ -216,12 +237,6 @@ Promise.resolve(5).then(function (value) {
- `Object.setPrototypeOf` / `Reflect.setPrototypeOf` - `Object.setPrototypeOf` / `Reflect.setPrototypeOf`
- Note that null objects (`Object.create(null)`, eg, an object with `null` as its `[[Prototype]]`) can not have their `[[Prototype]]` changed except via a native `Object.setPrototypeOf`. - Note that null objects (`Object.create(null)`, eg, an object with `null` as its `[[Prototype]]`) can not have their `[[Prototype]]` changed except via a native `Object.setPrototypeOf`.
- `Number`:
- In order to support binary literals (`Number('0b1')`) and octal literals (`Number('0o7')`), the global `Number` constructor is wrapped in a shim. However, this can cause issues in the exceedingly unlikely event that you ever call `Number` as a function with a receiver (a “this” value) that is itself a number. Some problematic examples:
```js
assert(typeof Number.call(2, 3) === 'number'); // will fail when `Number` is wrapped, is "object"
assert(typeof (1).constructor(2) === 'number'); // will fail when `Number` is wrapped, is "object"
```
## [License][license-url] ## [License][license-url]

2
js/vendor/es6-shim/component.json поставляемый
Просмотреть файл

@ -1,6 +1,6 @@
{ {
"name": "es6-shim", "name": "es6-shim",
"version": "0.33.8", "version": "0.33.12",
"repo": "paulmillr/es6-shim", "repo": "paulmillr/es6-shim",
"description": "ECMAScript 6 (Harmony) compatibility shims for legacy JavaScript engines", "description": "ECMAScript 6 (Harmony) compatibility shims for legacy JavaScript engines",
"keywords": [ "keywords": [

14
js/vendor/es6-shim/es6-sham.js поставляемый
Просмотреть файл

@ -2,8 +2,8 @@
* https://github.com/paulmillr/es6-shim * https://github.com/paulmillr/es6-shim
* @license es6-shim Copyright 2013-2015 by Paul Miller (http://paulmillr.com) * @license es6-shim Copyright 2013-2015 by Paul Miller (http://paulmillr.com)
* and contributors, MIT License * and contributors, MIT License
* es6-sham: v0.33.8 * es6-sham: v0.33.12
* see https://github.com/paulmillr/es6-shim/blob/0.33.8/LICENSE * see https://github.com/paulmillr/es6-shim/blob/0.33.12/LICENSE
* Details and documentation: * Details and documentation:
* https://github.com/paulmillr/es6-shim/ * https://github.com/paulmillr/es6-shim/
*/ */
@ -28,7 +28,9 @@
'use strict'; 'use strict';
/*jshint evil: true */ /*jshint evil: true */
/* eslint-disable no-new-func */
var getGlobal = new Function('return this;'); var getGlobal = new Function('return this;');
/* eslint-enable no-new-func */
/*jshint evil: false */ /*jshint evil: false */
var globals = getGlobal(); var globals = getGlobal();
@ -85,20 +87,24 @@
}; };
} catch (e) { } catch (e) {
// do one or more feature detections // do one or more feature detections
set = {__proto__: null}; set = { __proto__: null };
// if proto does not work, needs to fallback // if proto does not work, needs to fallback
// some Opera, Rhino, ducktape // some Opera, Rhino, ducktape
if (set instanceof Object) { if (set instanceof Object) {
setPrototypeOf = createAndCopy; setPrototypeOf = createAndCopy;
} else { } else {
// verify if null objects are buggy // verify if null objects are buggy
/* eslint-disable no-proto */
set.__proto__ = objProto; set.__proto__ = objProto;
/* eslint-enable no-proto */
// if null objects are buggy // if null objects are buggy
// nodejs 0.8 to 0.10 // nodejs 0.8 to 0.10
if (set instanceof Object) { if (set instanceof Object) {
setPrototypeOf = function (origin, proto) { setPrototypeOf = function (origin, proto) {
// use such bug to promote // use such bug to promote
/* eslint-disable no-proto */
origin.__proto__ = proto; origin.__proto__ = proto;
/* eslint-enable no-proto */
return origin; return origin;
}; };
} else { } else {
@ -108,7 +114,9 @@
// if proto is not null // if proto is not null
if (getPrototypeOf(origin)) { if (getPrototypeOf(origin)) {
// use __proto__ to promote // use __proto__ to promote
/* eslint-disable no-proto */
origin.__proto__ = proto; origin.__proto__ = proto;
/* eslint-enable no-proto */
return origin; return origin;
} else { } else {
// otherwise unable to promote: fallback // otherwise unable to promote: fallback

2
js/vendor/es6-shim/es6-sham.map поставляемый
Просмотреть файл

@ -1 +1 @@
{"version":3,"sources":["es6-sham.js"],"names":["root","factory","define","amd","exports","module","returnExports","this","getGlobal","Function","globals","Object","setPrototypeOf","getOwnPropertyNames","getOwnPropertyDescriptor","create","defineProperty","getPrototypeOf","objProto","prototype","copyDescriptors","target","source","forEach","key","createAndCopy","origin","proto","set","call","e","__proto__"],"mappings":";;;;;;;;;CAYC,SAAUA,EAAMC,GAEf,SAAWC,UAAW,YAAcA,OAAOC,IAAK,CAE9CD,OAAOD,OACF,UAAWG,WAAY,SAAU,CAItCC,OAAOD,QAAUH,QACZ,CAELD,EAAKM,cAAgBL,OAEvBM,KAAM,WACN,YAGA,IAAIC,GAAY,GAAIC,UAAS,eAG7B,IAAIC,GAAUF,GACd,IAAIG,GAASD,EAAQC,QAWpB,WACC,GAAIA,EAAOC,eAAgB,CAAE,OAK7B,GAAIC,GAAsBF,EAAOE,mBACjC,IAAIC,GAA2BH,EAAOG,wBACtC,IAAIC,GAASJ,EAAOI,MACpB,IAAIC,GAAiBL,EAAOK,cAC5B,IAAIC,GAAiBN,EAAOM,cAC5B,IAAIC,GAAWP,EAAOQ,SAEtB,IAAIC,GAAkB,SAAUC,EAAQC,GAEtCT,EAAoBS,GAAQC,QAAQ,SAAUC,GAC5CR,EACEK,EACAG,EACAV,EAAyBQ,EAAQE,KAGrC,OAAOH,GAGT,IAAII,GAAgB,SAAUC,EAAQC,GACpC,MAAOP,GAAgBL,EAAOY,GAAQD,GAExC,IAAIE,GAAKhB,CACT,KAGEgB,EAAMd,EAAyBI,EAAU,aAAaU,GACtDA,GAAIC,QAAS,KAGbjB,GAAiB,SAAUc,EAAQC,GACjCC,EAAIC,KAAKH,EAAQC,EACjB,OAAOD,IAET,MAAOI,GAEPF,GAAOG,UAAW,KAGlB,IAAIH,YAAejB,GAAQ,CACzBC,EAAiBa,MACZ,CAELG,EAAIG,UAAYb,CAGhB,IAAIU,YAAejB,GAAQ,CACzBC,EAAiB,SAAUc,EAAQC,GAEjCD,EAAOK,UAAYJ,CACnB,OAAOD,QAEJ,CAGLd,EAAiB,SAAUc,EAAQC,GAEjC,GAAIV,EAAeS,GAAS,CAE1BA,EAAOK,UAAYJ,CACnB,OAAOD,OACF,CAEL,MAAOD,GAAcC,EAAQC,OAMvChB,EAAOC,eAAiBA"} {"version":3,"sources":["es6-sham.js"],"names":["root","factory","define","amd","exports","module","returnExports","this","getGlobal","Function","globals","Object","setPrototypeOf","getOwnPropertyNames","getOwnPropertyDescriptor","create","defineProperty","getPrototypeOf","objProto","prototype","copyDescriptors","target","source","forEach","key","createAndCopy","origin","proto","set","call","e","__proto__"],"mappings":";;;;;;;;;CAYC,SAAUA,EAAMC,GAEf,SAAWC,UAAW,YAAcA,OAAOC,IAAK,CAE9CD,OAAOD,OACF,UAAWG,WAAY,SAAU,CAItCC,OAAOD,QAAUH,QACZ,CAELD,EAAKM,cAAgBL,OAEvBM,KAAM,WACN,YAIA,IAAIC,GAAY,GAAIC,UAAS,eAI7B,IAAIC,GAAUF,GACd,IAAIG,GAASD,EAAQC,QAWpB,WACC,GAAIA,EAAOC,eAAgB,CAAE,OAK7B,GAAIC,GAAsBF,EAAOE,mBACjC,IAAIC,GAA2BH,EAAOG,wBACtC,IAAIC,GAASJ,EAAOI,MACpB,IAAIC,GAAiBL,EAAOK,cAC5B,IAAIC,GAAiBN,EAAOM,cAC5B,IAAIC,GAAWP,EAAOQ,SAEtB,IAAIC,GAAkB,SAAUC,EAAQC,GAEtCT,EAAoBS,GAAQC,QAAQ,SAAUC,GAC5CR,EACEK,EACAG,EACAV,EAAyBQ,EAAQE,KAGrC,OAAOH,GAGT,IAAII,GAAgB,SAAUC,EAAQC,GACpC,MAAOP,GAAgBL,EAAOY,GAAQD,GAExC,IAAIE,GAAKhB,CACT,KAGEgB,EAAMd,EAAyBI,EAAU,aAAaU,GACtDA,GAAIC,QAAS,KAGbjB,GAAiB,SAAUc,EAAQC,GACjCC,EAAIC,KAAKH,EAAQC,EACjB,OAAOD,IAET,MAAOI,GAEPF,GAAQG,UAAW,KAGnB,IAAIH,YAAejB,GAAQ,CACzBC,EAAiBa,MACZ,CAGLG,EAAIG,UAAYb,CAIhB,IAAIU,YAAejB,GAAQ,CACzBC,EAAiB,SAAUc,EAAQC,GAGjCD,EAAOK,UAAYJ,CAEnB,OAAOD,QAEJ,CAGLd,EAAiB,SAAUc,EAAQC,GAEjC,GAAIV,EAAeS,GAAS,CAG1BA,EAAOK,UAAYJ,CAEnB,OAAOD,OACF,CAEL,MAAOD,GAAcC,EAAQC,OAMvChB,EAAOC,eAAiBA"}

4
js/vendor/es6-shim/es6-sham.min.js поставляемый
Просмотреть файл

@ -2,8 +2,8 @@
* https://github.com/paulmillr/es6-shim * https://github.com/paulmillr/es6-shim
* @license es6-shim Copyright 2013-2015 by Paul Miller (http://paulmillr.com) * @license es6-shim Copyright 2013-2015 by Paul Miller (http://paulmillr.com)
* and contributors, MIT License * and contributors, MIT License
* es6-sham: v0.33.8 * es6-sham: v0.33.12
* see https://github.com/paulmillr/es6-shim/blob/0.33.8/LICENSE * see https://github.com/paulmillr/es6-shim/blob/0.33.12/LICENSE
* Details and documentation: * Details and documentation:
* https://github.com/paulmillr/es6-shim/ * https://github.com/paulmillr/es6-shim/
*/ */

467
js/vendor/es6-shim/es6-shim.js поставляемый
Просмотреть файл

@ -2,8 +2,8 @@
* https://github.com/paulmillr/es6-shim * https://github.com/paulmillr/es6-shim
* @license es6-shim Copyright 2013-2015 by Paul Miller (http://paulmillr.com) * @license es6-shim Copyright 2013-2015 by Paul Miller (http://paulmillr.com)
* and contributors, MIT License * and contributors, MIT License
* es6-shim: v0.33.8 * es6-shim: v0.33.12
* see https://github.com/paulmillr/es6-shim/blob/0.33.8/LICENSE * see https://github.com/paulmillr/es6-shim/blob/0.33.12/LICENSE
* Details and documentation: * Details and documentation:
* https://github.com/paulmillr/es6-shim/ * https://github.com/paulmillr/es6-shim/
*/ */
@ -61,26 +61,8 @@
var _forEach = Function.call.bind(Array.prototype.forEach); var _forEach = Function.call.bind(Array.prototype.forEach);
var _reduce = Function.call.bind(Array.prototype.reduce); var _reduce = Function.call.bind(Array.prototype.reduce);
var _filter = Function.call.bind(Array.prototype.filter); var _filter = Function.call.bind(Array.prototype.filter);
var _every = Function.call.bind(Array.prototype.every); var _some = Function.call.bind(Array.prototype.some);
var createDataProperty = function createDataProperty(object, name, value) {
if (supportsDescriptors) {
Object.defineProperty(object, name, {
configurable: true,
enumerable: true,
writable: true,
value: value
});
} else {
object[name] = value;
}
};
var createDataPropertyOrThrow = function createDataPropertyOrThrow(object, name, value) {
createDataProperty(object, name, value);
if (!ES.SameValue(object[name], value)) {
throw new TypeError('property is nonconfigurable');
}
};
var defineProperty = function (object, name, value, force) { var defineProperty = function (object, name, value, force) {
if (!force && name in object) { return; } if (!force && name in object) { return; }
if (supportsDescriptors) { if (supportsDescriptors) {
@ -135,6 +117,7 @@
}; };
var getGlobal = function () { var getGlobal = function () {
/* global self, window, global */
// the only reliable means to get the global object is // the only reliable means to get the global object is
// `Function('return this')()` // `Function('return this')()`
// However, this causes CSP violations in Chrome apps. // However, this causes CSP violations in Chrome apps.
@ -146,7 +129,6 @@
var globals = getGlobal(); var globals = getGlobal();
var globalIsFinite = globals.isFinite; var globalIsFinite = globals.isFinite;
var hasStrictMode = (function () { return this === null; }.call(null));
var _indexOf = Function.call.bind(String.prototype.indexOf); var _indexOf = Function.call.bind(String.prototype.indexOf);
var _toString = Function.call.bind(Object.prototype.toString); var _toString = Function.call.bind(Object.prototype.toString);
var _concat = Function.call.bind(Array.prototype.concat); var _concat = Function.call.bind(Array.prototype.concat);
@ -167,89 +149,6 @@
var Symbol = globals.Symbol || {}; var Symbol = globals.Symbol || {};
var symbolSpecies = Symbol.species || '@@species'; var symbolSpecies = Symbol.species || '@@species';
var Value = {
getter: function (object, name, getter) {
if (!supportsDescriptors) {
throw new TypeError('getters require true ES5 support');
}
Object.defineProperty(object, name, {
configurable: true,
enumerable: false,
get: getter
});
},
proxy: function (originalObject, key, targetObject) {
if (!supportsDescriptors) {
throw new TypeError('getters require true ES5 support');
}
var originalDescriptor = Object.getOwnPropertyDescriptor(originalObject, key);
Object.defineProperty(targetObject, key, {
configurable: originalDescriptor.configurable,
enumerable: originalDescriptor.enumerable,
get: function getKey() { return originalObject[key]; },
set: function setKey(value) { originalObject[key] = value; }
});
},
redefine: function (object, property, newValue) {
if (supportsDescriptors) {
var descriptor = Object.getOwnPropertyDescriptor(object, property);
descriptor.value = newValue;
Object.defineProperty(object, property, descriptor);
} else {
object[property] = newValue;
}
},
defineByDescriptor: function (object, property, descriptor) {
if (supportsDescriptors) {
Object.defineProperty(object, property, descriptor);
} else if ('value' in descriptor) {
object[property] = descriptor.value;
}
},
preserveToString: function (target, source) {
if (source && ES.IsCallable(source.toString)) {
defineProperty(target, 'toString', source.toString.bind(source), true);
}
}
};
var wrapConstructor = function wrapConstructor(original, replacement, keysToSkip) {
Value.preserveToString(replacement, original);
if (Object.setPrototypeOf) {
// sets up proper prototype chain where possible
Object.setPrototypeOf(original, replacement);
}
if (supportsDescriptors) {
_forEach(Object.getOwnPropertyNames(original), function (key) {
if (key in noop || keysToSkip[key]) { return; }
Value.proxy(original, key, replacement);
});
} else {
_forEach(Object.keys(original), function (key) {
if (key in noop || keysToSkip[key]) { return; }
replacement[key] = original[key];
});
}
replacement.prototype = original.prototype;
Value.redefine(original.prototype, 'constructor', replacement);
};
var defaultSpeciesGetter = function () { return this; };
var addDefaultSpecies = function (C) {
if (supportsDescriptors && !_hasOwnProperty(C, symbolSpecies)) {
Value.getter(C, symbolSpecies, defaultSpeciesGetter);
}
};
var Type = {
primitive: function (x) { return x === null || (typeof x !== 'function' && typeof x !== 'object'); },
object: function (x) { return x !== null && typeof x === 'object'; },
string: function (x) { return _toString(x) === '[object String]'; },
regex: function (x) { return _toString(x) === '[object RegExp]'; },
symbol: function (x) {
return typeof globals.Symbol === 'function' && typeof x === 'symbol';
}
};
var numberIsNaN = Number.isNaN || function isNaN(value) { var numberIsNaN = Number.isNaN || function isNaN(value) {
// NaN !== NaN, but they are identical. // NaN !== NaN, but they are identical.
// NaNs are the only non-reflexive value, i.e., if x !== x, // NaNs are the only non-reflexive value, i.e., if x !== x,
@ -262,33 +161,6 @@
return typeof value === 'number' && globalIsFinite(value); return typeof value === 'number' && globalIsFinite(value);
}; };
var overrideNative = function overrideNative(object, property, replacement) {
var original = object[property];
defineProperty(object, property, replacement, true);
Value.preserveToString(object[property], original);
};
// This is a private name in the es6 spec, equal to '[Symbol.iterator]'
// we're going to use an arbitrary _-prefixed name to make our shims
// work properly with each other, even though we don't have full Iterator
// support. That is, `Array.from(map.keys())` will work, but we don't
// pretend to export a "real" Iterator interface.
var $iterator$ = Type.symbol(Symbol.iterator) ? Symbol.iterator : '_es6-shim iterator_';
// Firefox ships a partial implementation using the name @@iterator.
// https://bugzilla.mozilla.org/show_bug.cgi?id=907077#c14
// So use that name if we detect it.
if (globals.Set && typeof new globals.Set()['@@iterator'] === 'function') {
$iterator$ = '@@iterator';
}
var addIterator = function (prototype, impl) {
var implementation = impl || function iterator() { return this; };
defineProperty(prototype, $iterator$, implementation);
if (!prototype[$iterator$] && Type.symbol($iterator$)) {
// implementations are buggy when $iterator$ is a Symbol
prototype[$iterator$] = implementation;
}
};
// taken directly from https://github.com/ljharb/is-arguments/blob/master/index.js // taken directly from https://github.com/ljharb/is-arguments/blob/master/index.js
// can be replaced with require('is-arguments') if we ever use a build process instead // can be replaced with require('is-arguments') if we ever use a build process instead
var isStandardArguments = function isArguments(value) { var isStandardArguments = function isArguments(value) {
@ -304,6 +176,35 @@
}; };
var isArguments = isStandardArguments(arguments) ? isStandardArguments : isLegacyArguments; var isArguments = isStandardArguments(arguments) ? isStandardArguments : isLegacyArguments;
var Type = {
primitive: function (x) { return x === null || (typeof x !== 'function' && typeof x !== 'object'); },
object: function (x) { return x !== null && typeof x === 'object'; },
string: function (x) { return _toString(x) === '[object String]'; },
regex: function (x) { return _toString(x) === '[object RegExp]'; },
symbol: function (x) {
return typeof globals.Symbol === 'function' && typeof x === 'symbol';
}
};
// This is a private name in the es6 spec, equal to '[Symbol.iterator]'
// we're going to use an arbitrary _-prefixed name to make our shims
// work properly with each other, even though we don't have full Iterator
// support. That is, `Array.from(map.keys())` will work, but we don't
// pretend to export a "real" Iterator interface.
var $iterator$ = Type.symbol(Symbol.iterator) ? Symbol.iterator : '_es6-shim iterator_';
// Firefox ships a partial implementation using the name @@iterator.
// https://bugzilla.mozilla.org/show_bug.cgi?id=907077#c14
// So use that name if we detect it.
if (globals.Set && typeof new globals.Set()['@@iterator'] === 'function') {
$iterator$ = '@@iterator';
}
// Reflect
if (!globals.Reflect) {
defineProperty(globals, 'Reflect', {});
}
var Reflect = globals.Reflect;
var ES = { var ES = {
// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-call-f-v-args // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-call-f-v-args
Call: function Call(F, V) { Call: function Call(F, V) {
@ -459,19 +360,18 @@
}, },
Construct: function (C, args, newTarget, isES6internal) { Construct: function (C, args, newTarget, isES6internal) {
if (newTarget === void 0) { var target = typeof newTarget === 'undefined' ? C : newTarget;
newTarget = C;
}
if (!isES6internal) { if (!isES6internal) {
// Try to use Reflect.construct if available // Try to use Reflect.construct if available
return Reflect.construct(C, args, newTarget); return Reflect.construct(C, args, target);
} }
// OK, we have to fake it. This will only work if the // OK, we have to fake it. This will only work if the
// C.[[ConstructorKind]] == "base" -- but that's the only // C.[[ConstructorKind]] == "base" -- but that's the only
// kind we can make in ES5 code anyway. // kind we can make in ES5 code anyway.
// OrdinaryCreateFromConstructor(newTarget, "%ObjectPrototype%") // OrdinaryCreateFromConstructor(target, "%ObjectPrototype%")
var proto = newTarget.prototype; var proto = target.prototype;
if (!ES.TypeIsObject(proto)) { if (!ES.TypeIsObject(proto)) {
proto = Object.prototype; proto = Object.prototype;
} }
@ -513,6 +413,114 @@
} }
}; };
var Value = {
getter: function (object, name, getter) {
if (!supportsDescriptors) {
throw new TypeError('getters require true ES5 support');
}
Object.defineProperty(object, name, {
configurable: true,
enumerable: false,
get: getter
});
},
proxy: function (originalObject, key, targetObject) {
if (!supportsDescriptors) {
throw new TypeError('getters require true ES5 support');
}
var originalDescriptor = Object.getOwnPropertyDescriptor(originalObject, key);
Object.defineProperty(targetObject, key, {
configurable: originalDescriptor.configurable,
enumerable: originalDescriptor.enumerable,
get: function getKey() { return originalObject[key]; },
set: function setKey(value) { originalObject[key] = value; }
});
},
redefine: function (object, property, newValue) {
if (supportsDescriptors) {
var descriptor = Object.getOwnPropertyDescriptor(object, property);
descriptor.value = newValue;
Object.defineProperty(object, property, descriptor);
} else {
object[property] = newValue;
}
},
defineByDescriptor: function (object, property, descriptor) {
if (supportsDescriptors) {
Object.defineProperty(object, property, descriptor);
} else if ('value' in descriptor) {
object[property] = descriptor.value;
}
},
preserveToString: function (target, source) {
if (source && ES.IsCallable(source.toString)) {
defineProperty(target, 'toString', source.toString.bind(source), true);
}
}
};
var wrapConstructor = function wrapConstructor(original, replacement, keysToSkip) {
Value.preserveToString(replacement, original);
if (Object.setPrototypeOf) {
// sets up proper prototype chain where possible
Object.setPrototypeOf(original, replacement);
}
if (supportsDescriptors) {
_forEach(Object.getOwnPropertyNames(original), function (key) {
if (key in noop || keysToSkip[key]) { return; }
Value.proxy(original, key, replacement);
});
} else {
_forEach(Object.keys(original), function (key) {
if (key in noop || keysToSkip[key]) { return; }
replacement[key] = original[key];
});
}
replacement.prototype = original.prototype;
Value.redefine(original.prototype, 'constructor', replacement);
};
var defaultSpeciesGetter = function () { return this; };
var addDefaultSpecies = function (C) {
if (supportsDescriptors && !_hasOwnProperty(C, symbolSpecies)) {
Value.getter(C, symbolSpecies, defaultSpeciesGetter);
}
};
var overrideNative = function overrideNative(object, property, replacement) {
var original = object[property];
defineProperty(object, property, replacement, true);
Value.preserveToString(object[property], original);
};
var addIterator = function (prototype, impl) {
var implementation = impl || function iterator() { return this; };
defineProperty(prototype, $iterator$, implementation);
if (!prototype[$iterator$] && Type.symbol($iterator$)) {
// implementations are buggy when $iterator$ is a Symbol
prototype[$iterator$] = implementation;
}
};
var createDataProperty = function createDataProperty(object, name, value) {
if (supportsDescriptors) {
Object.defineProperty(object, name, {
configurable: true,
enumerable: true,
writable: true,
value: value
});
} else {
object[name] = value;
}
};
var createDataPropertyOrThrow = function createDataPropertyOrThrow(object, name, value) {
createDataProperty(object, name, value);
if (!ES.SameValue(object[name], value)) {
throw new TypeError('property is nonconfigurable');
}
};
var emulateES6construct = function (o, defaultNewTarget, defaultProto, slots) { var emulateES6construct = function (o, defaultNewTarget, defaultProto, slots) {
// This is an es5 approximation to es6 construct semantics. in es6, // This is an es5 approximation to es6 construct semantics. in es6,
// 'new Foo' invokes Foo.[[Construct]] which (for almost all objects) // 'new Foo' invokes Foo.[[Construct]] which (for almost all objects)
@ -531,14 +539,14 @@
if (!ES.TypeIsObject(proto)) { if (!ES.TypeIsObject(proto)) {
proto = defaultProto; proto = defaultProto;
} }
o = create(proto); var obj = create(proto);
for (var name in slots) { for (var name in slots) {
if (_hasOwnProperty(slots, name)) { if (_hasOwnProperty(slots, name)) {
var value = slots[name]; var value = slots[name];
defineProperty(o, name, value, true); defineProperty(obj, name, value, true);
} }
} }
return o; return obj;
}; };
// Firefox 31 reports this function's length as 0 // Firefox 31 reports this function's length as 0
@ -591,7 +599,7 @@
next = nextIndex + 1 < arguments.length ? arguments[nextIndex + 1] : ''; next = nextIndex + 1 < arguments.length ? arguments[nextIndex + 1] : '';
nextSub = String(next); nextSub = String(next);
_push(stringElements, nextSub); _push(stringElements, nextSub);
nextIndex++; nextIndex += 1;
} }
return stringElements.join(''); return stringElements.join('');
} }
@ -695,26 +703,25 @@
defineProperties(String.prototype, StringPrototypeShims); defineProperties(String.prototype, StringPrototypeShims);
var hasStringTrimBug = '\u0085'.trim().length !== 1; // whitespace from: http://es5.github.io/#x15.5.4.20
if (hasStringTrimBug) { // implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324
delete String.prototype.trim; var ws = [
// whitespace from: http://es5.github.io/#x15.5.4.20 '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003',
// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324 '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028',
var ws = [ '\u2029\uFEFF'
'\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003', ].join('');
'\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028', var trimRegexp = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');
'\u2029\uFEFF' var trimShim = function trim() {
].join(''); if (typeof this === 'undefined' || this === null) {
var trimRegexp = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g'); throw new TypeError("can't convert " + this + ' to object');
defineProperties(String.prototype, { }
trim: function trim() { return String(this).replace(trimRegexp, '');
if (typeof this === 'undefined' || this === null) { };
throw new TypeError("can't convert " + this + ' to object'); var nonWS = ['\u0085', '\u200b', '\ufffe'].join('');
} var nonWSregex = new RegExp('[' + nonWS + ']', 'g');
return String(this).replace(trimRegexp, ''); var isBadHexRegex = /^[\-+]0x[0-9a-f]+$/i;
} var hasStringTrimBug = nonWS.trim().length !== nonWS.length;
}); defineProperty(String.prototype, 'trim', trimShim, hasStringTrimBug);
}
// see https://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype-@@iterator // see https://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype-@@iterator
var StringIterator = function (s) { var StringIterator = function (s) {
@ -760,10 +767,10 @@
// Note that that Arrays will use ArrayIterator: // Note that that Arrays will use ArrayIterator:
// https://bugs.ecmascript.org/show_bug.cgi?id=2416 // https://bugs.ecmascript.org/show_bug.cgi?id=2416
var usingIterator = isArguments(items) || ES.GetMethod(items, $iterator$); var usingIterator = typeof (isArguments(items) || ES.GetMethod(items, $iterator$)) !== 'undefined';
var length, result, i; var length, result, i;
if (usingIterator !== void 0) { if (usingIterator) {
result = ES.IsConstructor(C) ? Object(new C()) : []; result = ES.IsConstructor(C) ? Object(new C()) : [];
var iterator = ES.GetIterator(items); var iterator = ES.GetIterator(items);
var next, nextValue; var next, nextValue;
@ -777,7 +784,7 @@
nextValue = next.value; nextValue = next.value;
try { try {
if (mapping) { if (mapping) {
nextValue = T !== undefined ? _call(mapFn, T, nextValue, i) : mapFn(nextValue, i); nextValue = T === undefined ? mapFn(nextValue, i) : _call(mapFn, T, nextValue, i);
} }
result[i] = nextValue; result[i] = nextValue;
} catch (e) { } catch (e) {
@ -862,14 +869,6 @@
}); });
addIterator(ArrayIterator.prototype); addIterator(ArrayIterator.prototype);
var ObjectIterator = function (object, kind) {
defineProperties(this, {
object: object,
array: getAllKeys(object),
kind: kind
});
};
var getAllKeys = function getAllKeys(object) { var getAllKeys = function getAllKeys(object) {
var keys = []; var keys = [];
@ -880,6 +879,14 @@
return keys; return keys;
}; };
var ObjectIterator = function (object, kind) {
defineProperties(this, {
object: object,
array: getAllKeys(object),
kind: kind
});
};
defineProperties(ObjectIterator.prototype, { defineProperties(ObjectIterator.prototype, {
next: function next() { next: function next() {
var key; var key;
@ -1137,10 +1144,15 @@
}, true); }, true);
} }
if (Number('0o10') !== 8 || Number('0b10') !== 2) { var lacksOctalSupport = Number('0o10') !== 8;
var lacksBinarySupport = Number('0b10') !== 2;
var trimsNonWhitespace = _some(nonWS, function (c) {
return Number(c + 0 + c) === 0;
});
if (lacksOctalSupport || lacksBinarySupport || trimsNonWhitespace) {
var OrigNumber = Number; var OrigNumber = Number;
var binaryRegex = /^0b/i; var binaryRegex = /^0b[01]+$/i;
var octalRegex = /^0o/i; var octalRegex = /^0o[0-7]+$/i;
// Note that in IE 8, RegExp.prototype.test doesn't seem to exist: ie, "test" is an own property of regexes. wtf. // Note that in IE 8, RegExp.prototype.test doesn't seem to exist: ie, "test" is an own property of regexes. wtf.
var isBinary = binaryRegex.test.bind(binaryRegex); var isBinary = binaryRegex.test.bind(binaryRegex);
var isOctal = octalRegex.test.bind(octalRegex); var isOctal = octalRegex.test.bind(octalRegex);
@ -1160,34 +1172,43 @@
} }
throw new TypeError('No default value'); throw new TypeError('No default value');
}; };
var hasNonWS = nonWSregex.test.bind(nonWSregex);
var isBadHex = isBadHexRegex.test.bind(isBadHexRegex);
var NumberShim = (function () { var NumberShim = (function () {
// this is wrapped in an IIFE because of IE 6-8's wacky scoping issues with named function expressions. // this is wrapped in an IIFE because of IE 6-8's wacky scoping issues with named function expressions.
return function Number(value) { var NumberShim = function Number(value) {
var primValue = Type.primitive(value) ? value : toPrimitive(value, 'number'); var primValue = Type.primitive(value) ? value : toPrimitive(value, 'number');
if (typeof primValue === 'string') { if (typeof primValue === 'string') {
if (isBinary(primValue)) { if (isBinary(primValue)) {
primValue = parseInt(_strSlice(primValue, 2), 2); primValue = parseInt(_strSlice(primValue, 2), 2);
} else if (isOctal(primValue)) { } else if (isOctal(primValue)) {
primValue = parseInt(_strSlice(primValue, 2), 8); primValue = parseInt(_strSlice(primValue, 2), 8);
} else if (hasNonWS(primValue) || isBadHex(primValue)) {
primValue = NaN;
} else {
primValue = _call(trimShim, primValue);
} }
} }
var receiver = this; var receiver = this;
var valueOfSucceeds = valueOrFalseIfThrows(function () { var valueOfSucceeds = valueOrFalseIfThrows(function () {
Number.prototype.valueOf.call(receiver); OrigNumber.prototype.valueOf.call(receiver);
return true; return true;
}); });
if (receiver instanceof Number && !valueOfSucceeds) { if (receiver instanceof NumberShim && !valueOfSucceeds) {
return new OrigNumber(primValue); return new OrigNumber(primValue);
} }
/* jshint newcap: false */ /* jshint newcap: false */
return OrigNumber(primValue); return OrigNumber(primValue);
/* jshint newcap: true */ /* jshint newcap: true */
}; };
return NumberShim;
}()); }());
wrapConstructor(OrigNumber, NumberShim, {}); wrapConstructor(OrigNumber, NumberShim, {});
/*globals Number: true */ /*globals Number: true */
/* eslint-disable no-undef */
Number = NumberShim; Number = NumberShim;
Value.redefine(globals, 'Number', NumberShim); Value.redefine(globals, 'Number', NumberShim);
/* eslint-enable no-undef */
/*globals Number: false */ /*globals Number: false */
} }
@ -1220,12 +1241,14 @@
// implementations of find/findIndex indirectly use shimmed // implementations of find/findIndex indirectly use shimmed
// methods of Number, so this test has to happen down here.) // methods of Number, so this test has to happen down here.)
/*jshint elision: true */ /*jshint elision: true */
/* eslint-disable no-sparse-arrays */
if (![, 1].find(function (item, idx) { return idx === 0; })) { if (![, 1].find(function (item, idx) { return idx === 0; })) {
overrideNative(Array.prototype, 'find', ArrayPrototypeShims.find); overrideNative(Array.prototype, 'find', ArrayPrototypeShims.find);
} }
if ([, 1].findIndex(function (item, idx) { return idx === 0; }) !== 0) { if ([, 1].findIndex(function (item, idx) { return idx === 0; }) !== 0) {
overrideNative(Array.prototype, 'findIndex', ArrayPrototypeShims.findIndex); overrideNative(Array.prototype, 'findIndex', ArrayPrototypeShims.findIndex);
} }
/* eslint-enable no-sparse-arrays */
/*jshint elision: false */ /*jshint elision: false */
var isEnumerableOn = Function.bind.call(Function.bind, Object.prototype.propertyIsEnumerable); var isEnumerableOn = Function.bind.call(Function.bind, Object.prototype.propertyIsEnumerable);
@ -1468,7 +1491,11 @@
} }
} }
if (!RegExp.prototype.flags && supportsDescriptors) { var hasFlags = supportsDescriptors && (function () {
var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags');
return desc && ES.IsCallable(desc.get);
}());
if (supportsDescriptors && !hasFlags) {
var regExpFlagsGetter = function flags() { var regExpFlagsGetter = function flags() {
if (!ES.TypeIsObject(this)) { if (!ES.TypeIsObject(this)) {
throw new TypeError('Method called on incompatible type: must be an object.'); throw new TypeError('Method called on incompatible type: must be an object.');
@ -1501,22 +1528,26 @@
if (!regExpSupportsFlagsWithRegex && supportsDescriptors) { if (!regExpSupportsFlagsWithRegex && supportsDescriptors) {
var OrigRegExp = RegExp; var OrigRegExp = RegExp;
var RegExpShim = function RegExp(pattern, flags) { var RegExpShim = (function () {
var calledWithNew = this instanceof RegExp; return function RegExp(pattern, flags) {
if (!calledWithNew && (Type.regex(pattern) || (pattern && pattern.constructor === RegExp))) { var calledWithNew = this instanceof RegExp;
return pattern; if (!calledWithNew && (Type.regex(pattern) || (pattern && pattern.constructor === RegExp))) {
} return pattern;
if (Type.regex(pattern) && Type.string(flags)) { }
return new RegExp(pattern.source, flags); if (Type.regex(pattern) && Type.string(flags)) {
} return new RegExp(pattern.source, flags);
return new OrigRegExp(pattern, flags); }
}; return new OrigRegExp(pattern, flags);
};
}());
wrapConstructor(OrigRegExp, RegExpShim, { wrapConstructor(OrigRegExp, RegExpShim, {
$input: true // Chrome < v39 & Opera < 26 have a nonstandard "$input" property $input: true // Chrome < v39 & Opera < 26 have a nonstandard "$input" property
}); });
/*globals RegExp: true */ /*globals RegExp: true */
/* eslint-disable no-undef */
RegExp = RegExpShim; RegExp = RegExpShim;
Value.redefine(globals, 'RegExp', RegExpShim); Value.redefine(globals, 'RegExp', RegExpShim);
/* eslint-enable no-undef */
/*globals RegExp: false */ /*globals RegExp: false */
} }
@ -1975,6 +2006,7 @@
return C; return C;
}; };
var Promise$prototype;
var Promise = (function () { var Promise = (function () {
var PromiseShim = function Promise(resolver) { var PromiseShim = function Promise(resolver) {
if (!(this instanceof PromiseShim)) { if (!(this instanceof PromiseShim)) {
@ -2006,7 +2038,7 @@
}; };
return PromiseShim; return PromiseShim;
}()); }());
var Promise$prototype = Promise.prototype; Promise$prototype = Promise.prototype;
var _promiseAllResolver = function (index, values, capability, remaining) { var _promiseAllResolver = function (index, values, capability, remaining) {
var alreadyCalled = false; var alreadyCalled = false;
@ -2042,7 +2074,7 @@
var resolveElement = _promiseAllResolver( var resolveElement = _promiseAllResolver(
index, values, resultCapability, remaining index, values, resultCapability, remaining
); );
remaining.count++; remaining.count += 1;
nextPromise.then(resolveElement, resultCapability.reject); nextPromise.then(resolveElement, resultCapability.reject);
index += 1; index += 1;
} }
@ -2087,15 +2119,16 @@
iteratorRecord = { iterator: iterator, done: false }; iteratorRecord = { iterator: iterator, done: false };
return performPromiseAll(iteratorRecord, C, capability); return performPromiseAll(iteratorRecord, C, capability);
} catch (e) { } catch (e) {
var exception = e;
if (iteratorRecord && !iteratorRecord.done) { if (iteratorRecord && !iteratorRecord.done) {
try { try {
ES.IteratorClose(iterator, true); ES.IteratorClose(iterator, true);
} catch (ee) { } catch (ee) {
e = ee; exception = ee;
} }
} }
var reject = capability.reject; var reject = capability.reject;
reject(e); reject(exception);
return capability.promise; return capability.promise;
} }
}, },
@ -2109,15 +2142,16 @@
iteratorRecord = { iterator: iterator, done: false }; iteratorRecord = { iterator: iterator, done: false };
return performPromiseRace(iteratorRecord, C, capability); return performPromiseRace(iteratorRecord, C, capability);
} catch (e) { } catch (e) {
var exception = e;
if (iteratorRecord && !iteratorRecord.done) { if (iteratorRecord && !iteratorRecord.done) {
try { try {
ES.IteratorClose(iterator, true); ES.IteratorClose(iterator, true);
} catch (ee) { } catch (ee) {
e = ee; exception = ee;
} }
} }
var reject = capability.reject; var reject = capability.reject;
reject(e); reject(exception);
return capability.promise; return capability.promise;
} }
}, },
@ -2155,15 +2189,16 @@
var C = ES.SpeciesConstructor(promise, Promise); var C = ES.SpeciesConstructor(promise, Promise);
var resultCapability = new PromiseCapability(C); var resultCapability = new PromiseCapability(C);
// PerformPromiseThen(promise, onFulfilled, onRejected, resultCapability) // PerformPromiseThen(promise, onFulfilled, onRejected, resultCapability)
if (!ES.IsCallable(onFulfilled)) { var fulfillReaction = {
onFulfilled = PROMISE_IDENTITY; capabilities: resultCapability,
} handler: ES.IsCallable(onFulfilled) ? onFulfilled : PROMISE_IDENTITY
if (!ES.IsCallable(onRejected)) { };
onRejected = PROMISE_THROWER; var rejectReaction = {
} capabilities: resultCapability,
var fulfillReaction = { capabilities: resultCapability, handler: onFulfilled }; handler: ES.IsCallable(onRejected) ? onRejected : PROMISE_THROWER
var rejectReaction = { capabilities: resultCapability, handler: onRejected }; };
var _promise = promise._promise, value; var _promise = promise._promise;
var value;
if (_promise.state === PROMISE_PENDING) { if (_promise.state === PROMISE_PENDING) {
_push(_promise.fulfillReactions, fulfillReaction); _push(_promise.fulfillReactions, fulfillReaction);
_push(_promise.rejectReactions, rejectReaction); _push(_promise.rejectReactions, rejectReaction);
@ -2219,7 +2254,9 @@
if (!promiseSupportsSubclassing || !promiseIgnoresNonFunctionThenCallbacks || if (!promiseSupportsSubclassing || !promiseIgnoresNonFunctionThenCallbacks ||
!promiseRequiresObjectContext || promiseResolveBroken) { !promiseRequiresObjectContext || promiseResolveBroken) {
/*globals Promise: true */ /*globals Promise: true */
/* eslint-disable no-undef */
Promise = PromiseShim; Promise = PromiseShim;
/* eslint-enable no-undef */
/*globals Promise: false */ /*globals Promise: false */
overrideNative(globals, 'Promise', PromiseShim); overrideNative(globals, 'Promise', PromiseShim);
} }
@ -2399,6 +2436,7 @@
}; };
addIterator(MapIterator.prototype); addIterator(MapIterator.prototype);
var Map$prototype;
var MapShim = function Map() { var MapShim = function Map() {
if (!(this instanceof Map)) { if (!(this instanceof Map)) {
throw new TypeError('Constructor Map requires "new"'); throw new TypeError('Constructor Map requires "new"');
@ -2424,7 +2462,7 @@
} }
return map; return map;
}; };
var Map$prototype = MapShim.prototype; Map$prototype = MapShim.prototype;
Value.getter(Map$prototype, 'size', function () { Value.getter(Map$prototype, 'size', function () {
if (typeof this._size === 'undefined') { if (typeof this._size === 'undefined') {
@ -2589,6 +2627,7 @@
// Sets containing only string or numeric keys, we use an object // Sets containing only string or numeric keys, we use an object
// as backing storage and lazily create a full Map only when // as backing storage and lazily create a full Map only when
// required. // required.
var Set$prototype;
var SetShim = function Set() { var SetShim = function Set() {
if (!(this instanceof Set)) { if (!(this instanceof Set)) {
throw new TypeError('Constructor Set requires "new"'); throw new TypeError('Constructor Set requires "new"');
@ -2611,13 +2650,14 @@
} }
return set; return set;
}; };
var Set$prototype = SetShim.prototype; Set$prototype = SetShim.prototype;
// Switch from the object backing storage to a full Map. // Switch from the object backing storage to a full Map.
var ensureMap = function ensureMap(set) { var ensureMap = function ensureMap(set) {
if (!set['[[SetData]]']) { if (!set['[[SetData]]']) {
var m = set['[[SetData]]'] = new collectionShims.Map(); var m = set['[[SetData]]'] = new collectionShims.Map();
_forEach(Object.keys(set._storage), function (k) { _forEach(Object.keys(set._storage), function (key) {
var k = key;
if (k === '^null') { if (k === '^null') {
k = null; k = null;
} else if (k === '^undefined') { } else if (k === '^undefined') {
@ -2915,12 +2955,6 @@
addDefaultSpecies(globals.Set); addDefaultSpecies(globals.Set);
} }
// Reflect
if (!globals.Reflect) {
defineProperty(globals, 'Reflect', {});
}
var Reflect = globals.Reflect;
var throwUnlessTargetIsObject = function throwUnlessTargetIsObject(target) { var throwUnlessTargetIsObject = function throwUnlessTargetIsObject(target) {
if (!ES.TypeIsObject(target)) { if (!ES.TypeIsObject(target)) {
throw new TypeError('target must be an object'); throw new TypeError('target must be an object');
@ -2942,7 +2976,7 @@
if (!ES.IsConstructor(constructor)) { if (!ES.IsConstructor(constructor)) {
throw new TypeError('First argument must be a constructor.'); throw new TypeError('First argument must be a constructor.');
} }
var newTarget = (arguments.length < 3) ? constructor : arguments[2]; var newTarget = arguments.length < 3 ? constructor : arguments[2];
if (!ES.IsConstructor(newTarget)) { if (!ES.IsConstructor(newTarget)) {
throw new TypeError('new.target must be a constructor.'); throw new TypeError('new.target must be a constructor.');
} }
@ -3132,7 +3166,8 @@
} }
if (Object.setPrototypeOf && ReflectShims.getPrototypeOf) { if (Object.setPrototypeOf && ReflectShims.getPrototypeOf) {
var willCreateCircularPrototype = function (object, proto) { var willCreateCircularPrototype = function (object, lastProto) {
var proto = lastProto;
while (proto) { while (proto) {
if (object === proto) { if (object === proto) {
return true; return true;

2
js/vendor/es6-shim/es6-shim.map поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

8
js/vendor/es6-shim/es6-shim.min.js поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

20
js/vendor/es6-shim/package.json поставляемый
Просмотреть файл

@ -1,6 +1,6 @@
{ {
"name": "es6-shim", "name": "es6-shim",
"version": "0.33.8", "version": "0.33.12",
"author": "Paul Miller (http://paulmillr.com)", "author": "Paul Miller (http://paulmillr.com)",
"description": "ECMAScript 6 (Harmony) compatibility shims for legacy JavaScript engines", "description": "ECMAScript 6 (Harmony) compatibility shims for legacy JavaScript engines",
"keywords": [ "keywords": [
@ -23,13 +23,17 @@
}, },
"main": "es6-shim", "main": "es6-shim",
"scripts": { "scripts": {
"test": "npm run lint && evalmd *.md && npm run test-shim && npm run test-sham", "test": "npm run lint && evalmd *.md && npm run tests-only",
"tests-only": "npm run test-shim && npm run test-sham",
"test-shim": "mocha test/*.js test/*/*.js", "test-shim": "mocha test/*.js test/*/*.js",
"test-sham": "mocha test-sham/*.js", "test-sham": "mocha test-sham/*.js",
"test-native": "npm run jshint-shim && NO_ES6_SHIM=1 mocha test/*.js test/*/*.js", "test-native": "npm run jshint-shim && NO_ES6_SHIM=1 mocha test/*.js test/*/*.js",
"lint": "npm run lint-shim && npm run lint-sham", "lint": "npm run lint-shim && npm run lint-sham",
"lint-shim": "npm run jshint-shim && npm run jscs-shim", "lint-shim": "npm run jshint-shim && npm run jscs-shim && npm run eslint-shim",
"lint-sham": "npm run jshint-sham && npm run jscs-sham", "lint-sham": "npm run jshint-sham && npm run jscs-sham && npm run eslint-sham",
"eslint": "npm run eslint-shim && npm run eslint-sham",
"eslint-shim": "eslint es6-shim.js test/*.js test/*/*.js",
"eslint-sham": "eslint es6-sham.js test-sham/*.js",
"jshint": "npm run jshint-shim && npm run jshint-sham", "jshint": "npm run jshint-shim && npm run jshint-sham",
"jshint-shim": "jshint es6-shim.js test/*.js test/*/*.js", "jshint-shim": "jshint es6-shim.js test/*.js test/*/*.js",
"jshint-sham": "jshint es6-sham.js test-sham/*.js", "jshint-sham": "jshint es6-sham.js test-sham/*.js",
@ -63,13 +67,15 @@
}, },
"dependencies": {}, "dependencies": {},
"devDependencies": { "devDependencies": {
"chai": "^3.4.0", "chai": "^3.4.1",
"es5-shim": "^4.1.15", "es5-shim": "^4.3.1",
"eslint": "^1.9.0",
"@ljharb/eslint-config": "^1.6.0",
"grunt": "^0.4.5", "grunt": "^0.4.5",
"grunt-contrib-connect": "^0.11.2", "grunt-contrib-connect": "^0.11.2",
"grunt-contrib-watch": "^0.6.1", "grunt-contrib-watch": "^0.6.1",
"grunt-saucelabs": "^8.6.1", "grunt-saucelabs": "^8.6.1",
"jscs": "^2.3.5", "jscs": "^2.5.1",
"jshint": "^2.8.0", "jshint": "^2.8.0",
"mocha": "^2.3.3", "mocha": "^2.3.3",
"promises-aplus-tests": "^2.1.1", "promises-aplus-tests": "^2.1.1",

Просмотреть файл

@ -1,4 +1,5 @@
/*global expect */ /* global expect, describe, it */
describe('Object.setPrototypeOf(o, p)', function () { describe('Object.setPrototypeOf(o, p)', function () {
'use strict'; 'use strict';