You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ac...@apache.org on 2017/08/10 07:36:21 UTC
[08/12] incubator-weex git commit: * [jsfm] publish
weex-js-runtime@0.21.8
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/a7266a2c/packages/weex-js-runtime/index.js
----------------------------------------------------------------------
diff --git a/packages/weex-js-runtime/index.js b/packages/weex-js-runtime/index.js
index ff5f91a..c765528 100644
--- a/packages/weex-js-runtime/index.js
+++ b/packages/weex-js-runtime/index.js
@@ -1,6 +1,6 @@
-/* 'WEEX JS RUNTIME 0.20.6, Build 2017-08-01 19:09. */
+/* 'WEEX JS RUNTIME 0.21.8, Build 2017-08-10 14:46. */
-;(this.getJSFMVersion = function(){return "0.20.6"});
+;(this.getJSFMVersion = function(){return "0.21.8"});
var global = this, process = { env: {} };var setTimeout = global.setTimeout;
(function (global, factory) {
@@ -128,76 +128,79 @@ function createCommonjsModule(fn, module) {
var _global = createCommonjsModule(function (module) {
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
- ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
-if(typeof __g == 'number'){ __g = global; } // eslint-disable-line no-undef
+ ? window : typeof self != 'undefined' && self.Math == Math ? self
+ // eslint-disable-next-line no-new-func
+ : Function('return this')();
+if (typeof __g == 'number') { __g = global; } // eslint-disable-line no-undef
});
var _core = createCommonjsModule(function (module) {
-var core = module.exports = {version: '2.4.0'};
-if(typeof __e == 'number'){ __e = core; } // eslint-disable-line no-undef
+var core = module.exports = { version: '2.5.0' };
+if (typeof __e == 'number') { __e = core; } // eslint-disable-line no-undef
});
-var _isObject = function(it){
+var _isObject = function (it) {
return typeof it === 'object' ? it !== null : typeof it === 'function';
};
var isObject = _isObject;
-var _anObject = function(it){
- if(!isObject(it)){ throw TypeError(it + ' is not an object!'); }
+var _anObject = function (it) {
+ if (!isObject(it)) { throw TypeError(it + ' is not an object!'); }
return it;
};
-var _fails = function(exec){
+var _fails = function (exec) {
try {
return !!exec();
- } catch(e){
+ } catch (e) {
return true;
}
};
// Thank's IE8 for his funny defineProperty
-var _descriptors = !_fails(function(){
- return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
+var _descriptors = !_fails(function () {
+ return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});
var isObject$1 = _isObject;
var document$1 = _global.document;
+// typeof document.createElement is 'object' in old IE
var is = isObject$1(document$1) && isObject$1(document$1.createElement);
-var _domCreate = function(it){
+var _domCreate = function (it) {
return is ? document$1.createElement(it) : {};
};
-var _ie8DomDefine = !_descriptors && !_fails(function(){
- return Object.defineProperty(_domCreate('div'), 'a', {get: function(){ return 7; }}).a != 7;
+var _ie8DomDefine = !_descriptors && !_fails(function () {
+ return Object.defineProperty(_domCreate('div'), 'a', { get: function () { return 7; } }).a != 7;
});
// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject$2 = _isObject;
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
-var _toPrimitive = function(it, S){
- if(!isObject$2(it)){ return it; }
+var _toPrimitive = function (it, S) {
+ if (!isObject$2(it)) { return it; }
var fn, val;
- if(S && typeof (fn = it.toString) == 'function' && !isObject$2(val = fn.call(it))){ return val; }
- if(typeof (fn = it.valueOf) == 'function' && !isObject$2(val = fn.call(it))){ return val; }
- if(!S && typeof (fn = it.toString) == 'function' && !isObject$2(val = fn.call(it))){ return val; }
+ if (S && typeof (fn = it.toString) == 'function' && !isObject$2(val = fn.call(it))) { return val; }
+ if (typeof (fn = it.valueOf) == 'function' && !isObject$2(val = fn.call(it))) { return val; }
+ if (!S && typeof (fn = it.toString) == 'function' && !isObject$2(val = fn.call(it))) { return val; }
throw TypeError("Can't convert object to primitive value");
};
-var anObject = _anObject;
+var anObject = _anObject;
var IE8_DOM_DEFINE = _ie8DomDefine;
-var toPrimitive = _toPrimitive;
-var dP$1 = Object.defineProperty;
+var toPrimitive = _toPrimitive;
+var dP$1 = Object.defineProperty;
-var f = _descriptors ? Object.defineProperty : function defineProperty(O, P, Attributes){
+var f = _descriptors ? Object.defineProperty : function defineProperty(O, P, Attributes) {
anObject(O);
P = toPrimitive(P, true);
anObject(Attributes);
- if(IE8_DOM_DEFINE){ try {
+ if (IE8_DOM_DEFINE) { try {
return dP$1(O, P, Attributes);
- } catch(e){ /* empty */ } }
- if('get' in Attributes || 'set' in Attributes){ throw TypeError('Accessors not supported!'); }
- if('value' in Attributes){ O[P] = Attributes.value; }
+ } catch (e) { /* empty */ } }
+ if ('get' in Attributes || 'set' in Attributes) { throw TypeError('Accessors not supported!'); }
+ if ('value' in Attributes) { O[P] = Attributes.value; }
return O;
};
@@ -205,115 +208,114 @@ var _objectDp = {
f: f
};
-var _propertyDesc = function(bitmap, value){
+var _propertyDesc = function (bitmap, value) {
return {
- enumerable : !(bitmap & 1),
+ enumerable: !(bitmap & 1),
configurable: !(bitmap & 2),
- writable : !(bitmap & 4),
- value : value
+ writable: !(bitmap & 4),
+ value: value
};
};
-var dP = _objectDp;
+var dP = _objectDp;
var createDesc = _propertyDesc;
-var _hide = _descriptors ? function(object, key, value){
+var _hide = _descriptors ? function (object, key, value) {
return dP.f(object, key, createDesc(1, value));
-} : function(object, key, value){
+} : function (object, key, value) {
object[key] = value;
return object;
};
var hasOwnProperty = {}.hasOwnProperty;
-var _has = function(it, key){
+var _has = function (it, key) {
return hasOwnProperty.call(it, key);
};
var id = 0;
var px = Math.random();
-var _uid = function(key){
+var _uid = function (key) {
return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};
var _redefine = createCommonjsModule(function (module) {
-var global = _global
- , hide = _hide
- , has = _has
- , SRC = _uid('src')
- , TO_STRING = 'toString'
- , $toString = Function[TO_STRING]
- , TPL = ('' + $toString).split(TO_STRING);
-
-_core.inspectSource = function(it){
+var global = _global;
+var hide = _hide;
+var has = _has;
+var SRC = _uid('src');
+var TO_STRING = 'toString';
+var $toString = Function[TO_STRING];
+var TPL = ('' + $toString).split(TO_STRING);
+
+_core.inspectSource = function (it) {
return $toString.call(it);
};
-(module.exports = function(O, key, val, safe){
+(module.exports = function (O, key, val, safe) {
var isFunction = typeof val == 'function';
- if(isFunction){ has(val, 'name') || hide(val, 'name', key); }
- if(O[key] === val){ return; }
- if(isFunction){ has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); }
- if(O === global){
+ if (isFunction) { has(val, 'name') || hide(val, 'name', key); }
+ if (O[key] === val) { return; }
+ if (isFunction) { has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); }
+ if (O === global) {
+ O[key] = val;
+ } else if (!safe) {
+ delete O[key];
+ hide(O, key, val);
+ } else if (O[key]) {
O[key] = val;
} else {
- if(!safe){
- delete O[key];
- hide(O, key, val);
- } else {
- if(O[key]){ O[key] = val; }
- else { hide(O, key, val); }
- }
+ hide(O, key, val);
}
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
-})(Function.prototype, TO_STRING, function toString(){
+})(Function.prototype, TO_STRING, function toString() {
return typeof this == 'function' && this[SRC] || $toString.call(this);
});
});
-var _aFunction = function(it){
- if(typeof it != 'function'){ throw TypeError(it + ' is not a function!'); }
+var _aFunction = function (it) {
+ if (typeof it != 'function') { throw TypeError(it + ' is not a function!'); }
return it;
};
// optional / simple context binding
var aFunction = _aFunction;
-var _ctx = function(fn, that, length){
+var _ctx = function (fn, that, length) {
aFunction(fn);
- if(that === undefined){ return fn; }
- switch(length){
- case 1: return function(a){
+ if (that === undefined) { return fn; }
+ switch (length) {
+ case 1: return function (a) {
return fn.call(that, a);
};
- case 2: return function(a, b){
+ case 2: return function (a, b) {
return fn.call(that, a, b);
};
- case 3: return function(a, b, c){
+ case 3: return function (a, b, c) {
return fn.call(that, a, b, c);
};
}
- return function(/* ...args */){
+ return function (/* ...args */) {
return fn.apply(that, arguments);
};
};
-var global$1 = _global;
-var core = _core;
-var hide = _hide;
-var redefine = _redefine;
-var ctx = _ctx;
+var global$1 = _global;
+var core = _core;
+var hide = _hide;
+var redefine = _redefine;
+var ctx = _ctx;
var PROTOTYPE = 'prototype';
-var $export$1 = function(type, name, source){
- var IS_FORCED = type & $export$1.F
- , IS_GLOBAL = type & $export$1.G
- , IS_STATIC = type & $export$1.S
- , IS_PROTO = type & $export$1.P
- , IS_BIND = type & $export$1.B
- , target = IS_GLOBAL ? global$1 : IS_STATIC ? global$1[name] || (global$1[name] = {}) : (global$1[name] || {})[PROTOTYPE]
- , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
- , expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {})
- , key, own, out, exp;
- if(IS_GLOBAL){ source = name; }
- for(key in source){
+var $export$1 = function (type, name, source) {
+ var IS_FORCED = type & $export$1.F;
+ var IS_GLOBAL = type & $export$1.G;
+ var IS_STATIC = type & $export$1.S;
+ var IS_PROTO = type & $export$1.P;
+ var IS_BIND = type & $export$1.B;
+ var target = IS_GLOBAL ? global$1 : IS_STATIC ? global$1[name] || (global$1[name] = {}) : (global$1[name] || {})[PROTOTYPE];
+ var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
+ var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
+ var key, own, out, exp;
+ if (IS_GLOBAL) { source = name; }
+ for (key in source) {
// contains in native
own = !IS_FORCED && target && target[key] !== undefined;
// export native or passed
@@ -321,10 +323,10 @@ var $export$1 = function(type, name, source){
// bind timers to global for call from export context
exp = IS_BIND && own ? ctx(out, global$1) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
// extend global
- if(target){ redefine(target, key, out, type & $export$1.U); }
+ if (target) { redefine(target, key, out, type & $export$1.U); }
// export
- if(exports[key] != out){ hide(exports, key, exp); }
- if(IS_PROTO && expProto[key] != out){ expProto[key] = out; }
+ if (exports[key] != out) { hide(exports, key, exp); }
+ if (IS_PROTO && expProto[key] != out) { expProto[key] = out; }
}
};
global$1.core = core;
@@ -336,52 +338,53 @@ $export$1.P = 8; // proto
$export$1.B = 16; // bind
$export$1.W = 32; // wrap
$export$1.U = 64; // safe
-$export$1.R = 128; // real proto method for `library`
+$export$1.R = 128; // real proto method for `library`
var _export = $export$1;
var toString$1 = {}.toString;
-var _cof = function(it){
+var _cof = function (it) {
return toString$1.call(it).slice(8, -1);
};
// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof = _cof;
-var _iobject = Object('z').propertyIsEnumerable(0) ? Object : function(it){
+// eslint-disable-next-line no-prototype-builtins
+var _iobject = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
return cof(it) == 'String' ? it.split('') : Object(it);
};
// 7.2.1 RequireObjectCoercible(argument)
-var _defined = function(it){
- if(it == undefined){ throw TypeError("Can't call method on " + it); }
+var _defined = function (it) {
+ if (it == undefined) { throw TypeError("Can't call method on " + it); }
return it;
};
// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject$1 = _iobject;
var defined = _defined;
-var _toIobject = function(it){
+var _toIobject = function (it) {
return IObject$1(defined(it));
};
// 7.1.4 ToInteger
-var ceil = Math.ceil;
+var ceil = Math.ceil;
var floor = Math.floor;
-var _toInteger = function(it){
+var _toInteger = function (it) {
return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};
// 7.1.15 ToLength
var toInteger = _toInteger;
-var min = Math.min;
-var _toLength = function(it){
+var min = Math.min;
+var _toLength = function (it) {
return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};
var toInteger$1 = _toInteger;
-var max = Math.max;
-var min$1 = Math.min;
-var _toIndex = function(index, length){
+var max = Math.max;
+var min$1 = Math.min;
+var _toAbsoluteIndex = function (index, length) {
index = toInteger$1(index);
return index < 0 ? max(index + length, 0) : min$1(index, length);
};
@@ -389,51 +392,53 @@ var _toIndex = function(index, length){
// false -> Array#indexOf
// true -> Array#includes
var toIObject$1 = _toIobject;
-var toLength = _toLength;
-var toIndex = _toIndex;
-var _arrayIncludes = function(IS_INCLUDES){
- return function($this, el, fromIndex){
- var O = toIObject$1($this)
- , length = toLength(O.length)
- , index = toIndex(fromIndex, length)
- , value;
+var toLength = _toLength;
+var toAbsoluteIndex = _toAbsoluteIndex;
+var _arrayIncludes = function (IS_INCLUDES) {
+ return function ($this, el, fromIndex) {
+ var O = toIObject$1($this);
+ var length = toLength(O.length);
+ var index = toAbsoluteIndex(fromIndex, length);
+ var value;
// Array#includes uses SameValueZero equality algorithm
- if(IS_INCLUDES && el != el){ while(length > index){
+ // eslint-disable-next-line no-self-compare
+ if (IS_INCLUDES && el != el) { while (length > index) {
value = O[index++];
- if(value != value){ return true; }
- // Array#toIndex ignores holes, Array#includes - not
- } } else { for(;length > index; index++){ if(IS_INCLUDES || index in O){
- if(O[index] === el){ return IS_INCLUDES || index || 0; }
+ // eslint-disable-next-line no-self-compare
+ if (value != value) { return true; }
+ // Array#indexOf ignores holes, Array#includes - not
+ } } else { for (;length > index; index++) { if (IS_INCLUDES || index in O) {
+ if (O[index] === el) { return IS_INCLUDES || index || 0; }
} } } return !IS_INCLUDES && -1;
};
};
var global$2 = _global;
var SHARED = '__core-js_shared__';
-var store = global$2[SHARED] || (global$2[SHARED] = {});
-var _shared = function(key){
+var store = global$2[SHARED] || (global$2[SHARED] = {});
+var _shared = function (key) {
return store[key] || (store[key] = {});
};
var shared = _shared('keys');
-var uid = _uid;
-var _sharedKey = function(key){
+var uid = _uid;
+var _sharedKey = function (key) {
return shared[key] || (shared[key] = uid(key));
};
-var has = _has;
-var toIObject = _toIobject;
+var has = _has;
+var toIObject = _toIobject;
var arrayIndexOf = _arrayIncludes(false);
-var IE_PROTO = _sharedKey('IE_PROTO');
-
-var _objectKeysInternal = function(object, names){
- var O = toIObject(object)
- , i = 0
- , result = []
- , key;
- for(key in O){ if(key != IE_PROTO){ has(O, key) && result.push(key); } }
+var IE_PROTO = _sharedKey('IE_PROTO');
+
+var _objectKeysInternal = function (object, names) {
+ var O = toIObject(object);
+ var i = 0;
+ var result = [];
+ var key;
+ for (key in O) { if (key != IE_PROTO) { has(O, key) && result.push(key); } }
// Don't enum bug & hidden keys
- while(names.length > i){ if(has(O, key = names[i++])){
+ while (names.length > i) { if (has(O, key = names[i++])) {
~arrayIndexOf(result, key) || result.push(key);
} }
return result;
@@ -445,10 +450,10 @@ var _enumBugKeys = (
).split(',');
// 19.1.2.14 / 15.2.3.14 Object.keys(O)
-var $keys = _objectKeysInternal;
+var $keys = _objectKeysInternal;
var enumBugKeys = _enumBugKeys;
-var _objectKeys = Object.keys || function keys(O){
+var _objectKeys = Object.keys || function keys(O) {
return $keys(O, enumBugKeys);
};
@@ -466,49 +471,50 @@ var _objectPie = {
// 7.1.13 ToObject(argument)
var defined$1 = _defined;
-var _toObject = function(it){
+var _toObject = function (it) {
return Object(defined$1(it));
};
// 19.1.2.1 Object.assign(target, source, ...)
-var getKeys = _objectKeys;
-var gOPS = _objectGops;
-var pIE = _objectPie;
+var getKeys = _objectKeys;
+var gOPS = _objectGops;
+var pIE = _objectPie;
var toObject = _toObject;
-var IObject = _iobject;
-var $assign = Object.assign;
+var IObject = _iobject;
+var $assign = Object.assign;
// should work with symbols and should have deterministic property order (V8 bug)
-var _objectAssign = !$assign || _fails(function(){
- var A = {}
- , B = {}
- , S = Symbol()
- , K = 'abcdefghijklmnopqrst';
+var _objectAssign = !$assign || _fails(function () {
+ var A = {};
+ var B = {};
+ // eslint-disable-next-line no-undef
+ var S = Symbol();
+ var K = 'abcdefghijklmnopqrst';
A[S] = 7;
- K.split('').forEach(function(k){ B[k] = k; });
+ K.split('').forEach(function (k) { B[k] = k; });
return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
-}) ? function assign(target, source){
+}) ? function assign(target, source) {
var arguments$1 = arguments;
// eslint-disable-line no-unused-vars
- var T = toObject(target)
- , aLen = arguments.length
- , index = 1
- , getSymbols = gOPS.f
- , isEnum = pIE.f;
- while(aLen > index){
- var S = IObject(arguments$1[index++])
- , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
- , length = keys.length
- , j = 0
- , key;
- while(length > j){ if(isEnum.call(S, key = keys[j++])){ T[key] = S[key]; } }
+ var T = toObject(target);
+ var aLen = arguments.length;
+ var index = 1;
+ var getSymbols = gOPS.f;
+ var isEnum = pIE.f;
+ while (aLen > index) {
+ var S = IObject(arguments$1[index++]);
+ var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
+ var length = keys.length;
+ var j = 0;
+ var key;
+ while (length > j) { if (isEnum.call(S, key = keys[j++])) { T[key] = S[key]; } }
} return T;
} : $assign;
// 19.1.3.1 Object.assign(target, source)
var $export = _export;
-$export($export.S + $export.F, 'Object', {assign: _objectAssign});
+$export($export.S + $export.F, 'Object', { assign: _objectAssign });
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -635,12 +641,12 @@ if (WXEnvironment && WXEnvironment.platform === 'iOS') {
}
var _wks = createCommonjsModule(function (module) {
-var store = _shared('wks')
- , uid = _uid
- , Symbol = _global.Symbol
- , USE_SYMBOL = typeof Symbol == 'function';
+var store = _shared('wks');
+var uid = _uid;
+var Symbol = _global.Symbol;
+var USE_SYMBOL = typeof Symbol == 'function';
-var $exports = module.exports = function(name){
+var $exports = module.exports = function (name) {
return store[name] || (store[name] =
USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};
@@ -651,16 +657,17 @@ $exports.store = store;
// getting tag from 19.1.3.6 Object.prototype.toString()
var cof$1 = _cof;
var TAG = _wks('toStringTag');
-var ARG = cof$1(function(){ return arguments; }()) == 'Arguments';
+// ES3 wrong here
+var ARG = cof$1(function () { return arguments; }()) == 'Arguments';
// fallback for IE11 Script Access Denied error
-var tryGet = function(it, key){
+var tryGet = function (it, key) {
try {
return it[key];
- } catch(e){ /* empty */ }
+ } catch (e) { /* empty */ }
};
-var _classof = function(it){
+var _classof = function (it) {
var O, T, B;
return it === undefined ? 'Undefined' : it === null ? 'Null'
// @@toStringTag case
@@ -673,25 +680,25 @@ var _classof = function(it){
// 19.1.3.6 Object.prototype.toString()
var classof = _classof;
-var test = {};
+var test = {};
test[_wks('toStringTag')] = 'z';
-if(test + '' != '[object z]'){
- _redefine(Object.prototype, 'toString', function toString(){
+if (test + '' != '[object z]') {
+ _redefine(Object.prototype, 'toString', function toString() {
return '[object ' + classof(this) + ']';
}, true);
}
var toInteger$2 = _toInteger;
-var defined$2 = _defined;
+var defined$2 = _defined;
// true -> String#at
// false -> String#codePointAt
-var _stringAt = function(TO_STRING){
- return function(that, pos){
- var s = String(defined$2(that))
- , i = toInteger$2(pos)
- , l = s.length
- , a, b;
- if(i < 0 || i >= l){ return TO_STRING ? '' : undefined; }
+var _stringAt = function (TO_STRING) {
+ return function (that, pos) {
+ var s = String(defined$2(that));
+ var i = toInteger$2(pos);
+ var l = s.length;
+ var a, b;
+ if (i < 0 || i >= l) { return TO_STRING ? '' : undefined; }
a = s.charCodeAt(i);
return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
? TO_STRING ? s.charAt(i) : a
@@ -703,38 +710,39 @@ var _library = false;
var _iterators = {};
-var dP$2 = _objectDp;
+var dP$2 = _objectDp;
var anObject$2 = _anObject;
-var getKeys$1 = _objectKeys;
+var getKeys$1 = _objectKeys;
-var _objectDps = _descriptors ? Object.defineProperties : function defineProperties(O, Properties){
+var _objectDps = _descriptors ? Object.defineProperties : function defineProperties(O, Properties) {
anObject$2(O);
- var keys = getKeys$1(Properties)
- , length = keys.length
- , i = 0
- , P;
- while(length > i){ dP$2.f(O, P = keys[i++], Properties[P]); }
+ var keys = getKeys$1(Properties);
+ var length = keys.length;
+ var i = 0;
+ var P;
+ while (length > i) { dP$2.f(O, P = keys[i++], Properties[P]); }
return O;
};
-var _html = _global.document && document.documentElement;
+var document$2 = _global.document;
+var _html = document$2 && document$2.documentElement;
// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
-var anObject$1 = _anObject;
-var dPs = _objectDps;
+var anObject$1 = _anObject;
+var dPs = _objectDps;
var enumBugKeys$1 = _enumBugKeys;
-var IE_PROTO$1 = _sharedKey('IE_PROTO');
-var Empty = function(){ /* empty */ };
-var PROTOTYPE$1 = 'prototype';
+var IE_PROTO$1 = _sharedKey('IE_PROTO');
+var Empty = function () { /* empty */ };
+var PROTOTYPE$1 = 'prototype';
// Create object with fake `null` prototype: use iframe Object with cleared prototype
-var createDict = function(){
+var createDict = function () {
// Thrash, waste and sodomy: IE GC bug
- var iframe = _domCreate('iframe')
- , i = enumBugKeys$1.length
- , lt = '<'
- , gt = '>'
- , iframeDocument;
+ var iframe = _domCreate('iframe');
+ var i = enumBugKeys$1.length;
+ var lt = '<';
+ var gt = '>';
+ var iframeDocument;
iframe.style.display = 'none';
_html.appendChild(iframe);
iframe.src = 'javascript:'; // eslint-disable-line no-script-url
@@ -745,15 +753,15 @@ var createDict = function(){
iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
iframeDocument.close();
createDict = iframeDocument.F;
- while(i--){ delete createDict[PROTOTYPE$1][enumBugKeys$1[i]]; }
+ while (i--) { delete createDict[PROTOTYPE$1][enumBugKeys$1[i]]; }
return createDict();
};
-var _objectCreate = Object.create || function create(O, Properties){
+var _objectCreate = Object.create || function create(O, Properties) {
var result;
- if(O !== null){
+ if (O !== null) {
Empty[PROTOTYPE$1] = anObject$1(O);
- result = new Empty;
+ result = new Empty();
Empty[PROTOTYPE$1] = null;
// add "__proto__" for Object.getPrototypeOf polyfill
result[IE_PROTO$1] = O;
@@ -765,160 +773,160 @@ var def = _objectDp.f;
var has$2 = _has;
var TAG$1 = _wks('toStringTag');
-var _setToStringTag = function(it, tag, stat){
- if(it && !has$2(it = stat ? it : it.prototype, TAG$1)){ def(it, TAG$1, {configurable: true, value: tag}); }
+var _setToStringTag = function (it, tag, stat) {
+ if (it && !has$2(it = stat ? it : it.prototype, TAG$1)) { def(it, TAG$1, { configurable: true, value: tag }); }
};
-var create$1 = _objectCreate;
-var descriptor = _propertyDesc;
+var create$1 = _objectCreate;
+var descriptor = _propertyDesc;
var setToStringTag$1 = _setToStringTag;
var IteratorPrototype = {};
// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
-_hide(IteratorPrototype, _wks('iterator'), function(){ return this; });
+_hide(IteratorPrototype, _wks('iterator'), function () { return this; });
-var _iterCreate = function(Constructor, NAME, next){
- Constructor.prototype = create$1(IteratorPrototype, {next: descriptor(1, next)});
+var _iterCreate = function (Constructor, NAME, next) {
+ Constructor.prototype = create$1(IteratorPrototype, { next: descriptor(1, next) });
setToStringTag$1(Constructor, NAME + ' Iterator');
};
// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
-var has$3 = _has;
-var toObject$1 = _toObject;
-var IE_PROTO$2 = _sharedKey('IE_PROTO');
+var has$3 = _has;
+var toObject$1 = _toObject;
+var IE_PROTO$2 = _sharedKey('IE_PROTO');
var ObjectProto = Object.prototype;
-var _objectGpo = Object.getPrototypeOf || function(O){
+var _objectGpo = Object.getPrototypeOf || function (O) {
O = toObject$1(O);
- if(has$3(O, IE_PROTO$2)){ return O[IE_PROTO$2]; }
- if(typeof O.constructor == 'function' && O instanceof O.constructor){
+ if (has$3(O, IE_PROTO$2)) { return O[IE_PROTO$2]; }
+ if (typeof O.constructor == 'function' && O instanceof O.constructor) {
return O.constructor.prototype;
} return O instanceof Object ? ObjectProto : null;
};
-var LIBRARY = _library;
-var $export$2 = _export;
-var redefine$1 = _redefine;
-var hide$1 = _hide;
-var has$1 = _has;
-var Iterators = _iterators;
-var $iterCreate = _iterCreate;
+var LIBRARY = _library;
+var $export$2 = _export;
+var redefine$1 = _redefine;
+var hide$1 = _hide;
+var has$1 = _has;
+var Iterators = _iterators;
+var $iterCreate = _iterCreate;
var setToStringTag = _setToStringTag;
var getPrototypeOf = _objectGpo;
-var ITERATOR = _wks('iterator');
-var BUGGY = !([].keys && 'next' in [].keys());
-var FF_ITERATOR = '@@iterator';
-var KEYS = 'keys';
-var VALUES = 'values';
+var ITERATOR = _wks('iterator');
+var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
+var FF_ITERATOR = '@@iterator';
+var KEYS = 'keys';
+var VALUES = 'values';
-var returnThis = function(){ return this; };
+var returnThis = function () { return this; };
-var _iterDefine = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){
+var _iterDefine = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
$iterCreate(Constructor, NAME, next);
- var getMethod = function(kind){
- if(!BUGGY && kind in proto){ return proto[kind]; }
- switch(kind){
- case KEYS: return function keys(){ return new Constructor(this, kind); };
- case VALUES: return function values(){ return new Constructor(this, kind); };
- } return function entries(){ return new Constructor(this, kind); };
+ var getMethod = function (kind) {
+ if (!BUGGY && kind in proto) { return proto[kind]; }
+ switch (kind) {
+ case KEYS: return function keys() { return new Constructor(this, kind); };
+ case VALUES: return function values() { return new Constructor(this, kind); };
+ } return function entries() { return new Constructor(this, kind); };
};
- var TAG = NAME + ' Iterator'
- , DEF_VALUES = DEFAULT == VALUES
- , VALUES_BUG = false
- , proto = Base.prototype
- , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]
- , $default = $native || getMethod(DEFAULT)
- , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined
- , $anyNative = NAME == 'Array' ? proto.entries || $native : $native
- , methods, key, IteratorPrototype;
+ var TAG = NAME + ' Iterator';
+ var DEF_VALUES = DEFAULT == VALUES;
+ var VALUES_BUG = false;
+ var proto = Base.prototype;
+ var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
+ var $default = $native || getMethod(DEFAULT);
+ var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
+ var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
+ var methods, key, IteratorPrototype;
// Fix native
- if($anyNative){
- IteratorPrototype = getPrototypeOf($anyNative.call(new Base));
- if(IteratorPrototype !== Object.prototype){
+ if ($anyNative) {
+ IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
+ if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
// Set @@toStringTag to native iterators
setToStringTag(IteratorPrototype, TAG, true);
// fix for some old engines
- if(!LIBRARY && !has$1(IteratorPrototype, ITERATOR)){ hide$1(IteratorPrototype, ITERATOR, returnThis); }
+ if (!LIBRARY && !has$1(IteratorPrototype, ITERATOR)) { hide$1(IteratorPrototype, ITERATOR, returnThis); }
}
}
// fix Array#{values, @@iterator}.name in V8 / FF
- if(DEF_VALUES && $native && $native.name !== VALUES){
+ if (DEF_VALUES && $native && $native.name !== VALUES) {
VALUES_BUG = true;
- $default = function values(){ return $native.call(this); };
+ $default = function values() { return $native.call(this); };
}
// Define iterator
- if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){
+ if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
hide$1(proto, ITERATOR, $default);
}
// Plug for library
Iterators[NAME] = $default;
- Iterators[TAG] = returnThis;
- if(DEFAULT){
+ Iterators[TAG] = returnThis;
+ if (DEFAULT) {
methods = {
- values: DEF_VALUES ? $default : getMethod(VALUES),
- keys: IS_SET ? $default : getMethod(KEYS),
+ values: DEF_VALUES ? $default : getMethod(VALUES),
+ keys: IS_SET ? $default : getMethod(KEYS),
entries: $entries
};
- if(FORCED){ for(key in methods){
- if(!(key in proto)){ redefine$1(proto, key, methods[key]); }
+ if (FORCED) { for (key in methods) {
+ if (!(key in proto)) { redefine$1(proto, key, methods[key]); }
} } else { $export$2($export$2.P + $export$2.F * (BUGGY || VALUES_BUG), NAME, methods); }
}
return methods;
};
-var $at = _stringAt(true);
+var $at = _stringAt(true);
// 21.1.3.27 String.prototype[@@iterator]()
-_iterDefine(String, 'String', function(iterated){
+_iterDefine(String, 'String', function (iterated) {
this._t = String(iterated); // target
this._i = 0; // next index
// 21.1.5.2.1 %StringIteratorPrototype%.next()
-}, function(){
- var O = this._t
- , index = this._i
- , point;
- if(index >= O.length){ return {value: undefined, done: true}; }
+}, function () {
+ var O = this._t;
+ var index = this._i;
+ var point;
+ if (index >= O.length) { return { value: undefined, done: true }; }
point = $at(O, index);
this._i += point.length;
- return {value: point, done: false};
+ return { value: point, done: false };
});
// 22.1.3.31 Array.prototype[@@unscopables]
var UNSCOPABLES = _wks('unscopables');
-var ArrayProto = Array.prototype;
-if(ArrayProto[UNSCOPABLES] == undefined){ _hide(ArrayProto, UNSCOPABLES, {}); }
-var _addToUnscopables = function(key){
+var ArrayProto = Array.prototype;
+if (ArrayProto[UNSCOPABLES] == undefined) { _hide(ArrayProto, UNSCOPABLES, {}); }
+var _addToUnscopables = function (key) {
ArrayProto[UNSCOPABLES][key] = true;
};
-var _iterStep = function(done, value){
- return {value: value, done: !!done};
+var _iterStep = function (done, value) {
+ return { value: value, done: !!done };
};
var addToUnscopables = _addToUnscopables;
-var step = _iterStep;
-var Iterators$2 = _iterators;
-var toIObject$2 = _toIobject;
+var step = _iterStep;
+var Iterators$2 = _iterators;
+var toIObject$2 = _toIobject;
// 22.1.3.4 Array.prototype.entries()
// 22.1.3.13 Array.prototype.keys()
// 22.1.3.29 Array.prototype.values()
// 22.1.3.30 Array.prototype[@@iterator]()
-var es6_array_iterator = _iterDefine(Array, 'Array', function(iterated, kind){
+var es6_array_iterator = _iterDefine(Array, 'Array', function (iterated, kind) {
this._t = toIObject$2(iterated); // target
this._i = 0; // next index
this._k = kind; // kind
// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
-}, function(){
- var O = this._t
- , kind = this._k
- , index = this._i++;
- if(!O || index >= O.length){
+}, function () {
+ var O = this._t;
+ var kind = this._k;
+ var index = this._i++;
+ if (!O || index >= O.length) {
this._t = undefined;
return step(1);
}
- if(kind == 'keys' ){ return step(0, index); }
- if(kind == 'values'){ return step(0, O[index]); }
+ if (kind == 'keys') { return step(0, index); }
+ if (kind == 'values') { return step(0, O[index]); }
return step(0, [index, O[index]]);
}, 'values');
@@ -929,107 +937,144 @@ addToUnscopables('keys');
addToUnscopables('values');
addToUnscopables('entries');
-var $iterators = es6_array_iterator;
-var redefine$2 = _redefine;
-var global$3 = _global;
-var hide$2 = _hide;
-var Iterators$1 = _iterators;
-var wks = _wks;
-var ITERATOR$1 = wks('iterator');
+var $iterators = es6_array_iterator;
+var getKeys$2 = _objectKeys;
+var redefine$2 = _redefine;
+var global$3 = _global;
+var hide$2 = _hide;
+var Iterators$1 = _iterators;
+var wks = _wks;
+var ITERATOR$1 = wks('iterator');
var TO_STRING_TAG = wks('toStringTag');
-var ArrayValues = Iterators$1.Array;
-
-for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){
- var NAME = collections[i]
- , Collection = global$3[NAME]
- , proto = Collection && Collection.prototype
- , key;
- if(proto){
- if(!proto[ITERATOR$1]){ hide$2(proto, ITERATOR$1, ArrayValues); }
- if(!proto[TO_STRING_TAG]){ hide$2(proto, TO_STRING_TAG, NAME); }
+var ArrayValues = Iterators$1.Array;
+
+var DOMIterables = {
+ CSSRuleList: true, // TODO: Not spec compliant, should be false.
+ CSSStyleDeclaration: false,
+ CSSValueList: false,
+ ClientRectList: false,
+ DOMRectList: false,
+ DOMStringList: false,
+ DOMTokenList: true,
+ DataTransferItemList: false,
+ FileList: false,
+ HTMLAllCollection: false,
+ HTMLCollection: false,
+ HTMLFormElement: false,
+ HTMLSelectElement: false,
+ MediaList: true, // TODO: Not spec compliant, should be false.
+ MimeTypeArray: false,
+ NamedNodeMap: false,
+ NodeList: true,
+ PaintRequestList: false,
+ Plugin: false,
+ PluginArray: false,
+ SVGLengthList: false,
+ SVGNumberList: false,
+ SVGPathSegList: false,
+ SVGPointList: false,
+ SVGStringList: false,
+ SVGTransformList: false,
+ SourceBufferList: false,
+ StyleSheetList: true, // TODO: Not spec compliant, should be false.
+ TextTrackCueList: false,
+ TextTrackList: false,
+ TouchList: false
+};
+
+for (var collections = getKeys$2(DOMIterables), i = 0; i < collections.length; i++) {
+ var NAME = collections[i];
+ var explicit = DOMIterables[NAME];
+ var Collection = global$3[NAME];
+ var proto = Collection && Collection.prototype;
+ var key;
+ if (proto) {
+ if (!proto[ITERATOR$1]) { hide$2(proto, ITERATOR$1, ArrayValues); }
+ if (!proto[TO_STRING_TAG]) { hide$2(proto, TO_STRING_TAG, NAME); }
Iterators$1[NAME] = ArrayValues;
- for(key in $iterators){ if(!proto[key]){ redefine$2(proto, key, $iterators[key], true); } }
+ if (explicit) { for (key in $iterators) { if (!proto[key]) { redefine$2(proto, key, $iterators[key], true); } } }
}
}
-var _anInstance = function(it, Constructor, name, forbiddenField){
- if(!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)){
+var _anInstance = function (it, Constructor, name, forbiddenField) {
+ if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
throw TypeError(name + ': incorrect invocation!');
} return it;
};
// call something on iterator step with safe closing on error
var anObject$3 = _anObject;
-var _iterCall = function(iterator, fn, value, entries){
+var _iterCall = function (iterator, fn, value, entries) {
try {
return entries ? fn(anObject$3(value)[0], value[1]) : fn(value);
// 7.4.6 IteratorClose(iterator, completion)
- } catch(e){
+ } catch (e) {
var ret = iterator['return'];
- if(ret !== undefined){ anObject$3(ret.call(iterator)); }
+ if (ret !== undefined) { anObject$3(ret.call(iterator)); }
throw e;
}
};
// check on default Array iterator
-var Iterators$3 = _iterators;
-var ITERATOR$2 = _wks('iterator');
+var Iterators$3 = _iterators;
+var ITERATOR$2 = _wks('iterator');
var ArrayProto$1 = Array.prototype;
-var _isArrayIter = function(it){
+var _isArrayIter = function (it) {
return it !== undefined && (Iterators$3.Array === it || ArrayProto$1[ITERATOR$2] === it);
};
-var classof$2 = _classof;
-var ITERATOR$3 = _wks('iterator');
+var classof$2 = _classof;
+var ITERATOR$3 = _wks('iterator');
var Iterators$4 = _iterators;
-var core_getIteratorMethod = _core.getIteratorMethod = function(it){
- if(it != undefined){ return it[ITERATOR$3]
+var core_getIteratorMethod = _core.getIteratorMethod = function (it) {
+ if (it != undefined) { return it[ITERATOR$3]
|| it['@@iterator']
|| Iterators$4[classof$2(it)]; }
};
var _forOf = createCommonjsModule(function (module) {
-var ctx = _ctx
- , call = _iterCall
- , isArrayIter = _isArrayIter
- , anObject = _anObject
- , toLength = _toLength
- , getIterFn = core_getIteratorMethod
- , BREAK = {}
- , RETURN = {};
-var exports = module.exports = function(iterable, entries, fn, that, ITERATOR){
- var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable)
- , f = ctx(fn, that, entries ? 2 : 1)
- , index = 0
- , length, step, iterator, result;
- if(typeof iterFn != 'function'){ throw TypeError(iterable + ' is not iterable!'); }
+var ctx = _ctx;
+var call = _iterCall;
+var isArrayIter = _isArrayIter;
+var anObject = _anObject;
+var toLength = _toLength;
+var getIterFn = core_getIteratorMethod;
+var BREAK = {};
+var RETURN = {};
+var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
+ var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
+ var f = ctx(fn, that, entries ? 2 : 1);
+ var index = 0;
+ var length, step, iterator, result;
+ if (typeof iterFn != 'function') { throw TypeError(iterable + ' is not iterable!'); }
// fast case for arrays with default iterator
- if(isArrayIter(iterFn)){ for(length = toLength(iterable.length); length > index; index++){
+ if (isArrayIter(iterFn)) { for (length = toLength(iterable.length); length > index; index++) {
result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
- if(result === BREAK || result === RETURN){ return result; }
- } } else { for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){
+ if (result === BREAK || result === RETURN) { return result; }
+ } } else { for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
result = call(iterator, f, step.value, entries);
- if(result === BREAK || result === RETURN){ return result; }
+ if (result === BREAK || result === RETURN) { return result; }
} }
};
-exports.BREAK = BREAK;
+exports.BREAK = BREAK;
exports.RETURN = RETURN;
});
// 7.3.20 SpeciesConstructor(O, defaultConstructor)
-var anObject$4 = _anObject;
+var anObject$4 = _anObject;
var aFunction$2 = _aFunction;
-var SPECIES = _wks('species');
-var _speciesConstructor = function(O, D){
- var C = anObject$4(O).constructor, S;
+var SPECIES = _wks('species');
+var _speciesConstructor = function (O, D) {
+ var C = anObject$4(O).constructor;
+ var S;
return C === undefined || (S = anObject$4(C)[SPECIES]) == undefined ? D : aFunction$2(S);
};
// fast apply, http://jsperf.lnkit.com/fast-apply/5
-var _invoke = function(fn, args, that){
+var _invoke = function (fn, args, that) {
var un = that === undefined;
- switch(args.length){
+ switch (args.length) {
case 0: return un ? fn()
: fn.call(that);
case 1: return un ? fn(args[0])
@@ -1040,133 +1085,142 @@ var _invoke = function(fn, args, that){
: fn.call(that, args[0], args[1], args[2]);
case 4: return un ? fn(args[0], args[1], args[2], args[3])
: fn.call(that, args[0], args[1], args[2], args[3]);
- } return fn.apply(that, args);
-};
-
-var ctx$2 = _ctx;
-var invoke = _invoke;
-var html = _html;
-var cel = _domCreate;
-var global$5 = _global;
-var process$1 = global$5.process;
-var setTask = global$5.setImmediate;
-var clearTask = global$5.clearImmediate;
-var MessageChannel = global$5.MessageChannel;
-var counter = 0;
-var queue = {};
+ } return fn.apply(that, args);
+};
+
+var ctx$2 = _ctx;
+var invoke = _invoke;
+var html = _html;
+var cel = _domCreate;
+var global$5 = _global;
+var process$1 = global$5.process;
+var setTask = global$5.setImmediate;
+var clearTask = global$5.clearImmediate;
+var MessageChannel = global$5.MessageChannel;
+var Dispatch = global$5.Dispatch;
+var counter = 0;
+var queue = {};
var ONREADYSTATECHANGE = 'onreadystatechange';
var defer;
var channel;
var port;
-var run = function(){
+var run = function () {
var id = +this;
- if(queue.hasOwnProperty(id)){
+ // eslint-disable-next-line no-prototype-builtins
+ if (queue.hasOwnProperty(id)) {
var fn = queue[id];
delete queue[id];
fn();
}
};
-var listener = function(event){
+var listener = function (event) {
run.call(event.data);
};
// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
-if(!setTask || !clearTask){
- setTask = function setImmediate(fn){
+if (!setTask || !clearTask) {
+ setTask = function setImmediate(fn) {
var arguments$1 = arguments;
- var args = [], i = 1;
- while(arguments.length > i){ args.push(arguments$1[i++]); }
- queue[++counter] = function(){
+ var args = [];
+ var i = 1;
+ while (arguments.length > i) { args.push(arguments$1[i++]); }
+ queue[++counter] = function () {
+ // eslint-disable-next-line no-new-func
invoke(typeof fn == 'function' ? fn : Function(fn), args);
};
defer(counter);
return counter;
};
- clearTask = function clearImmediate(id){
+ clearTask = function clearImmediate(id) {
delete queue[id];
};
// Node.js 0.8-
- if(_cof(process$1) == 'process'){
- defer = function(id){
+ if (_cof(process$1) == 'process') {
+ defer = function (id) {
process$1.nextTick(ctx$2(run, id, 1));
};
+ // Sphere (JS game engine) Dispatch API
+ } else if (Dispatch && Dispatch.now) {
+ defer = function (id) {
+ Dispatch.now(ctx$2(run, id, 1));
+ };
// Browsers with MessageChannel, includes WebWorkers
- } else if(MessageChannel){
- channel = new MessageChannel;
- port = channel.port2;
+ } else if (MessageChannel) {
+ channel = new MessageChannel();
+ port = channel.port2;
channel.port1.onmessage = listener;
defer = ctx$2(port.postMessage, port, 1);
// Browsers with postMessage, skip WebWorkers
// IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
- } else if(global$5.addEventListener && typeof postMessage == 'function' && !global$5.importScripts){
- defer = function(id){
+ } else if (global$5.addEventListener && typeof postMessage == 'function' && !global$5.importScripts) {
+ defer = function (id) {
global$5.postMessage(id + '', '*');
};
global$5.addEventListener('message', listener, false);
// IE8-
- } else if(ONREADYSTATECHANGE in cel('script')){
- defer = function(id){
- html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function(){
+ } else if (ONREADYSTATECHANGE in cel('script')) {
+ defer = function (id) {
+ html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
html.removeChild(this);
run.call(id);
};
};
// Rest old browsers
} else {
- defer = function(id){
+ defer = function (id) {
setTimeout(ctx$2(run, id, 1), 0);
};
}
}
var _task = {
- set: setTask,
+ set: setTask,
clear: clearTask
};
-var global$6 = _global;
+var global$6 = _global;
var macrotask = _task.set;
-var Observer = global$6.MutationObserver || global$6.WebKitMutationObserver;
-var process$2 = global$6.process;
-var Promise$1 = global$6.Promise;
-var isNode$1 = _cof(process$2) == 'process';
+var Observer = global$6.MutationObserver || global$6.WebKitMutationObserver;
+var process$2 = global$6.process;
+var Promise$1 = global$6.Promise;
+var isNode$1 = _cof(process$2) == 'process';
-var _microtask = function(){
+var _microtask = function () {
var head, last, notify;
- var flush = function(){
+ var flush = function () {
var parent, fn;
- if(isNode$1 && (parent = process$2.domain)){ parent.exit(); }
- while(head){
- fn = head.fn;
+ if (isNode$1 && (parent = process$2.domain)) { parent.exit(); }
+ while (head) {
+ fn = head.fn;
head = head.next;
try {
fn();
- } catch(e){
- if(head){ notify(); }
+ } catch (e) {
+ if (head) { notify(); }
else { last = undefined; }
throw e;
}
} last = undefined;
- if(parent){ parent.enter(); }
+ if (parent) { parent.enter(); }
};
// Node.js
- if(isNode$1){
- notify = function(){
+ if (isNode$1) {
+ notify = function () {
process$2.nextTick(flush);
};
// browsers with MutationObserver
- } else if(Observer){
- var toggle = true
- , node = document.createTextNode('');
- new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new
- notify = function(){
+ } else if (Observer) {
+ var toggle = true;
+ var node = document.createTextNode('');
+ new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new
+ notify = function () {
node.data = toggle = !toggle;
};
// environments with maybe non-completely correct, but existent Promise
- } else if(Promise$1 && Promise$1.resolve){
+ } else if (Promise$1 && Promise$1.resolve) {
var promise = Promise$1.resolve();
- notify = function(){
+ notify = function () {
promise.then(flush);
};
// for other environments - macrotask based on:
@@ -1176,233 +1230,260 @@ var _microtask = function(){
// - onreadystatechange
// - setTimeout
} else {
- notify = function(){
+ notify = function () {
// strange IE + webpack dev server bug - use .call(global)
macrotask.call(global$6, flush);
};
}
- return function(fn){
- var task = {fn: fn, next: undefined};
- if(last){ last.next = task; }
- if(!head){
+ return function (fn) {
+ var task = { fn: fn, next: undefined };
+ if (last) { last.next = task; }
+ if (!head) {
head = task;
notify();
} last = task;
};
};
+// 25.4.1.5 NewPromiseCapability(C)
+var aFunction$3 = _aFunction;
+
+function PromiseCapability(C) {
+ var resolve, reject;
+ this.promise = new C(function ($$resolve, $$reject) {
+ if (resolve !== undefined || reject !== undefined) { throw TypeError('Bad Promise constructor'); }
+ resolve = $$resolve;
+ reject = $$reject;
+ });
+ this.resolve = aFunction$3(resolve);
+ this.reject = aFunction$3(reject);
+}
+
+var f$3 = function (C) {
+ return new PromiseCapability(C);
+};
+
+var _newPromiseCapability = {
+ f: f$3
+};
+
+var _perform = function (exec) {
+ try {
+ return { e: false, v: exec() };
+ } catch (e) {
+ return { e: true, v: e };
+ }
+};
+
+var newPromiseCapability$1 = _newPromiseCapability;
+
+var _promiseResolve = function (C, x) {
+ var promiseCapability = newPromiseCapability$1.f(C);
+ var resolve = promiseCapability.resolve;
+ resolve(x);
+ return promiseCapability.promise;
+};
+
var redefine$3 = _redefine;
-var _redefineAll = function(target, src, safe){
- for(var key in src){ redefine$3(target, key, src[key], safe); }
+var _redefineAll = function (target, src, safe) {
+ for (var key in src) { redefine$3(target, key, src[key], safe); }
return target;
};
-var global$7 = _global;
-var dP$3 = _objectDp;
+var global$7 = _global;
+var dP$3 = _objectDp;
var DESCRIPTORS = _descriptors;
-var SPECIES$1 = _wks('species');
+var SPECIES$1 = _wks('species');
-var _setSpecies = function(KEY){
+var _setSpecies = function (KEY) {
var C = global$7[KEY];
- if(DESCRIPTORS && C && !C[SPECIES$1]){ dP$3.f(C, SPECIES$1, {
+ if (DESCRIPTORS && C && !C[SPECIES$1]) { dP$3.f(C, SPECIES$1, {
configurable: true,
- get: function(){ return this; }
+ get: function () { return this; }
}); }
};
-var ITERATOR$4 = _wks('iterator');
+var ITERATOR$4 = _wks('iterator');
var SAFE_CLOSING = false;
try {
var riter = [7][ITERATOR$4]();
- riter['return'] = function(){ SAFE_CLOSING = true; };
- Array.from(riter, function(){ throw 2; });
-} catch(e){ /* empty */ }
+ riter['return'] = function () { SAFE_CLOSING = true; };
+ // eslint-disable-next-line no-throw-literal
+ Array.from(riter, function () { throw 2; });
+} catch (e) { /* empty */ }
-var _iterDetect = function(exec, skipClosing){
- if(!skipClosing && !SAFE_CLOSING){ return false; }
+var _iterDetect = function (exec, skipClosing) {
+ if (!skipClosing && !SAFE_CLOSING) { return false; }
var safe = false;
try {
- var arr = [7]
- , iter = arr[ITERATOR$4]();
- iter.next = function(){ return {done: safe = true}; };
- arr[ITERATOR$4] = function(){ return iter; };
+ var arr = [7];
+ var iter = arr[ITERATOR$4]();
+ iter.next = function () { return { done: safe = true }; };
+ arr[ITERATOR$4] = function () { return iter; };
exec(arr);
- } catch(e){ /* empty */ }
+ } catch (e) { /* empty */ }
return safe;
};
-var LIBRARY$1 = _library;
-var global$4 = _global;
-var ctx$1 = _ctx;
-var classof$1 = _classof;
-var $export$3 = _export;
-var isObject$3 = _isObject;
-var aFunction$1 = _aFunction;
-var anInstance = _anInstance;
-var forOf = _forOf;
+var LIBRARY$1 = _library;
+var global$4 = _global;
+var ctx$1 = _ctx;
+var classof$1 = _classof;
+var $export$3 = _export;
+var isObject$3 = _isObject;
+var aFunction$1 = _aFunction;
+var anInstance = _anInstance;
+var forOf = _forOf;
var speciesConstructor = _speciesConstructor;
-var task = _task.set;
-var microtask = _microtask();
-var PROMISE = 'Promise';
-var TypeError$1 = global$4.TypeError;
-var process = global$4.process;
-var $Promise = global$4[PROMISE];
-var process = global$4.process;
-var isNode = classof$1(process) == 'process';
-var empty = function(){ /* empty */ };
+var task = _task.set;
+var microtask = _microtask();
+var newPromiseCapabilityModule = _newPromiseCapability;
+var perform = _perform;
+var promiseResolve = _promiseResolve;
+var PROMISE = 'Promise';
+var TypeError$1 = global$4.TypeError;
+var process = global$4.process;
+var $Promise = global$4[PROMISE];
+var isNode = classof$1(process) == 'process';
+var empty = function () { /* empty */ };
var Internal;
-var GenericPromiseCapability;
+var newGenericPromiseCapability;
+var OwnPromiseCapability;
var Wrapper;
+var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;
-var USE_NATIVE = !!function(){
+var USE_NATIVE = !!function () {
try {
// correct subclassing with @@species support
- var promise = $Promise.resolve(1)
- , FakePromise = (promise.constructor = {})[_wks('species')] = function(exec){ exec(empty, empty); };
+ var promise = $Promise.resolve(1);
+ var FakePromise = (promise.constructor = {})[_wks('species')] = function (exec) {
+ exec(empty, empty);
+ };
// unhandled rejections tracking support, NodeJS Promise without it fails @@species test
return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;
- } catch(e){ /* empty */ }
+ } catch (e) { /* empty */ }
}();
// helpers
-var sameConstructor = function(a, b){
+var sameConstructor = LIBRARY$1 ? function (a, b) {
// with library wrapper special case
return a === b || a === $Promise && b === Wrapper;
+} : function (a, b) {
+ return a === b;
};
-var isThenable = function(it){
+var isThenable = function (it) {
var then;
return isObject$3(it) && typeof (then = it.then) == 'function' ? then : false;
};
-var newPromiseCapability = function(C){
- return sameConstructor($Promise, C)
- ? new PromiseCapability(C)
- : new GenericPromiseCapability(C);
-};
-var PromiseCapability = GenericPromiseCapability = function(C){
- var resolve, reject;
- this.promise = new C(function($$resolve, $$reject){
- if(resolve !== undefined || reject !== undefined){ throw TypeError$1('Bad Promise constructor'); }
- resolve = $$resolve;
- reject = $$reject;
- });
- this.resolve = aFunction$1(resolve);
- this.reject = aFunction$1(reject);
-};
-var perform = function(exec){
- try {
- exec();
- } catch(e){
- return {error: e};
- }
-};
-var notify = function(promise, isReject){
- if(promise._n){ return; }
+var notify = function (promise, isReject) {
+ if (promise._n) { return; }
promise._n = true;
var chain = promise._c;
- microtask(function(){
- var value = promise._v
- , ok = promise._s == 1
- , i = 0;
- var run = function(reaction){
- var handler = ok ? reaction.ok : reaction.fail
- , resolve = reaction.resolve
- , reject = reaction.reject
- , domain = reaction.domain
- , result, then;
+ microtask(function () {
+ var value = promise._v;
+ var ok = promise._s == 1;
+ var i = 0;
+ var run = function (reaction) {
+ var handler = ok ? reaction.ok : reaction.fail;
+ var resolve = reaction.resolve;
+ var reject = reaction.reject;
+ var domain = reaction.domain;
+ var result, then;
try {
- if(handler){
- if(!ok){
- if(promise._h == 2){ onHandleUnhandled(promise); }
+ if (handler) {
+ if (!ok) {
+ if (promise._h == 2) { onHandleUnhandled(promise); }
promise._h = 1;
}
- if(handler === true){ result = value; }
+ if (handler === true) { result = value; }
else {
- if(domain){ domain.enter(); }
+ if (domain) { domain.enter(); }
result = handler(value);
- if(domain){ domain.exit(); }
+ if (domain) { domain.exit(); }
}
- if(result === reaction.promise){
+ if (result === reaction.promise) {
reject(TypeError$1('Promise-chain cycle'));
- } else if(then = isThenable(result)){
+ } else if (then = isThenable(result)) {
then.call(result, resolve, reject);
} else { resolve(result); }
} else { reject(value); }
- } catch(e){
+ } catch (e) {
reject(e);
}
};
- while(chain.length > i){ run(chain[i++]); } // variable length - can't use forEach
+ while (chain.length > i) { run(chain[i++]); } // variable length - can't use forEach
promise._c = [];
promise._n = false;
- if(isReject && !promise._h){ onUnhandled(promise); }
+ if (isReject && !promise._h) { onUnhandled(promise); }
});
};
-var onUnhandled = function(promise){
- task.call(global$4, function(){
- var value = promise._v
- , abrupt, handler, console;
- if(isUnhandled(promise)){
- abrupt = perform(function(){
- if(isNode){
+var onUnhandled = function (promise) {
+ task.call(global$4, function () {
+ var value = promise._v;
+ var unhandled = isUnhandled(promise);
+ var result, handler, console;
+ if (unhandled) {
+ result = perform(function () {
+ if (isNode) {
process.emit('unhandledRejection', value, promise);
- } else if(handler = global$4.onunhandledrejection){
- handler({promise: promise, reason: value});
- } else if((console = global$4.console) && console.error){
+ } else if (handler = global$4.onunhandledrejection) {
+ handler({ promise: promise, reason: value });
+ } else if ((console = global$4.console) && console.error) {
console.error('Unhandled promise rejection', value);
}
});
// Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
promise._h = isNode || isUnhandled(promise) ? 2 : 1;
} promise._a = undefined;
- if(abrupt){ throw abrupt.error; }
+ if (unhandled && result.e) { throw result.v; }
});
};
-var isUnhandled = function(promise){
- if(promise._h == 1){ return false; }
- var chain = promise._a || promise._c
- , i = 0
- , reaction;
- while(chain.length > i){
+var isUnhandled = function (promise) {
+ if (promise._h == 1) { return false; }
+ var chain = promise._a || promise._c;
+ var i = 0;
+ var reaction;
+ while (chain.length > i) {
reaction = chain[i++];
- if(reaction.fail || !isUnhandled(reaction.promise)){ return false; }
+ if (reaction.fail || !isUnhandled(reaction.promise)) { return false; }
} return true;
};
-var onHandleUnhandled = function(promise){
- task.call(global$4, function(){
+var onHandleUnhandled = function (promise) {
+ task.call(global$4, function () {
var handler;
- if(isNode){
+ if (isNode) {
process.emit('rejectionHandled', promise);
- } else if(handler = global$4.onrejectionhandled){
- handler({promise: promise, reason: promise._v});
+ } else if (handler = global$4.onrejectionhandled) {
+ handler({ promise: promise, reason: promise._v });
}
});
};
-var $reject = function(value){
+var $reject = function (value) {
var promise = this;
- if(promise._d){ return; }
+ if (promise._d) { return; }
promise._d = true;
promise = promise._w || promise; // unwrap
promise._v = value;
promise._s = 2;
- if(!promise._a){ promise._a = promise._c.slice(); }
+ if (!promise._a) { promise._a = promise._c.slice(); }
notify(promise, true);
};
-var $resolve = function(value){
- var promise = this
- , then;
- if(promise._d){ return; }
+var $resolve = function (value) {
+ var promise = this;
+ var then;
+ if (promise._d) { return; }
promise._d = true;
promise = promise._w || promise; // unwrap
try {
- if(promise === value){ throw TypeError$1("Promise can't be resolved itself"); }
- if(then = isThenable(value)){
- microtask(function(){
- var wrapper = {_w: promise, _d: false}; // wrap
+ if (promise === value) { throw TypeError$1("Promise can't be resolved itself"); }
+ if (then = isThenable(value)) {
+ microtask(function () {
+ var wrapper = { _w: promise, _d: false }; // wrap
try {
then.call(value, ctx$1($resolve, wrapper, 1), ctx$1($reject, wrapper, 1));
- } catch(e){
+ } catch (e) {
$reject.call(wrapper, e);
}
});
@@ -1411,25 +1492,26 @@ var $resolve = function(value){
promise._s = 1;
notify(promise, false);
}
- } catch(e){
- $reject.call({_w: promise, _d: false}, e); // wrap
+ } catch (e) {
+ $reject.call({ _w: promise, _d: false }, e); // wrap
}
};
// constructor polyfill
-if(!USE_NATIVE){
+if (!USE_NATIVE) {
// 25.4.3.1 Promise(executor)
- $Promise = function Promise(executor){
+ $Promise = function Promise(executor) {
anInstance(this, $Promise, PROMISE, '_h');
aFunction$1(executor);
Internal.call(this);
try {
executor(ctx$1($resolve, this, 1), ctx$1($reject, this, 1));
- } catch(err){
+ } catch (err) {
$reject.call(this, err);
}
};
- Internal = function Promise(executor){
+ // eslint-disable-next-line no-unused-vars
+ Internal = function Promise(executor) {
this._c = []; // <- awaiting reactions
this._a = undefined; // <- checked in isUnhandled reactions
this._s = 0; // <- state
@@ -1440,30 +1522,35 @@ if(!USE_NATIVE){
};
Internal.prototype = _redefineAll($Promise.prototype, {
// 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
- then: function then(onFulfilled, onRejected){
- var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
- reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
- reaction.fail = typeof onRejected == 'function' && onRejected;
+ then: function then(onFulfilled, onRejected) {
+ var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
+ reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
+ reaction.fail = typeof onRejected == 'function' && onRejected;
reaction.domain = isNode ? process.domain : undefined;
this._c.push(reaction);
- if(this._a){ this._a.push(reaction); }
- if(this._s){ notify(this, false); }
+ if (this._a) { this._a.push(reaction); }
+ if (this._s) { notify(this, false); }
return reaction.promise;
},
// 25.4.5.1 Promise.prototype.catch(onRejected)
- 'catch': function(onRejected){
+ 'catch': function (onRejected) {
return this.then(undefined, onRejected);
}
});
- PromiseCapability = function(){
- var promise = new Internal;
+ OwnPromiseCapability = function () {
+ var promise = new Internal();
this.promise = promise;
this.resolve = ctx$1($resolve, promise, 1);
- this.reject = ctx$1($reject, promise, 1);
+ this.reject = ctx$1($reject, promise, 1);
+ };
+ newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
+ return sameConstructor($Promise, C)
+ ? new OwnPromiseCapability(C)
+ : newGenericPromiseCapability(C);
};
}
-$export$3($export$3.G + $export$3.W + $export$3.F * !USE_NATIVE, {Promise: $Promise});
+$export$3($export$3.G + $export$3.W + $export$3.F * !USE_NATIVE, { Promise: $Promise });
_setToStringTag($Promise, PROMISE);
_setSpecies(PROMISE);
Wrapper = _core[PROMISE];
@@ -1471,65 +1558,62 @@ Wrapper = _core[PROMISE];
// statics
$export$3($export$3.S + $export$3.F * !USE_NATIVE, PROMISE, {
// 25.4.4.5 Promise.reject(r)
- reject: function reject(r){
- var capability = newPromiseCapability(this)
- , $$reject = capability.reject;
+ reject: function reject(r) {
+ var capability = newPromiseCapability(this);
+ var $$reject = capability.reject;
$$reject(r);
return capability.promise;
}
});
$export$3($export$3.S + $export$3.F * (LIBRARY$1 || !USE_NATIVE), PROMISE, {
// 25.4.4.6 Promise.resolve(x)
- resolve: function resolve(x){
+ resolve: function resolve(x) {
// instanceof instead of internal slot check because we should fix it without replacement native Promise core
- if(x instanceof $Promise && sameConstructor(x.constructor, this)){ return x; }
- var capability = newPromiseCapability(this)
- , $$resolve = capability.resolve;
- $$resolve(x);
- return capability.promise;
+ if (x instanceof $Promise && sameConstructor(x.constructor, this)) { return x; }
+ return promiseResolve(this, x);
}
});
-$export$3($export$3.S + $export$3.F * !(USE_NATIVE && _iterDetect(function(iter){
+$export$3($export$3.S + $export$3.F * !(USE_NATIVE && _iterDetect(function (iter) {
$Promise.all(iter)['catch'](empty);
})), PROMISE, {
// 25.4.4.1 Promise.all(iterable)
- all: function all(iterable){
- var C = this
- , capability = newPromiseCapability(C)
- , resolve = capability.resolve
- , reject = capability.reject;
- var abrupt = perform(function(){
- var values = []
- , index = 0
- , remaining = 1;
- forOf(iterable, false, function(promise){
- var $index = index++
- , alreadyCalled = false;
+ all: function all(iterable) {
+ var C = this;
+ var capability = newPromiseCapability(C);
+ var resolve = capability.resolve;
+ var reject = capability.reject;
+ var result = perform(function () {
+ var values = [];
+ var index = 0;
+ var remaining = 1;
+ forOf(iterable, false, function (promise) {
+ var $index = index++;
+ var alreadyCalled = false;
values.push(undefined);
remaining++;
- C.resolve(promise).then(function(value){
- if(alreadyCalled){ return; }
- alreadyCalled = true;
+ C.resolve(promise).then(function (value) {
+ if (alreadyCalled) { return; }
+ alreadyCalled = true;
values[$index] = value;
--remaining || resolve(values);
}, reject);
});
--remaining || resolve(values);
});
- if(abrupt){ reject(abrupt.error); }
+ if (result.e) { reject(result.v); }
return capability.promise;
},
// 25.4.4.4 Promise.race(iterable)
- race: function race(iterable){
- var C = this
- , capability = newPromiseCapability(C)
- , reject = capability.reject;
- var abrupt = perform(function(){
- forOf(iterable, false, function(promise){
+ race: function race(iterable) {
+ var C = this;
+ var capability = newPromiseCapability(C);
+ var reject = capability.reject;
+ var result = perform(function () {
+ forOf(iterable, false, function (promise) {
C.resolve(promise).then(capability.resolve, reject);
});
});
- if(abrupt){ reject(abrupt.error); }
+ if (result.e) { reject(result.v); }
return capability.promise;
}
});
@@ -1881,6 +1965,114 @@ function freezeProtoProperty (proto, propertyName, protoName) {
*/
// import promise hack and polyfills
+function typof (v) {
+ var s = Object.prototype.toString.call(v);
+ return s.substring(8, s.length - 1)
+}
+
+function bufferToBase64 (buffer) {
+ if (typeof btoa !== 'function') {
+ return ''
+ }
+ var string = Array.prototype.map.call(
+ new Uint8Array(buffer),
+ function (code) { return String.fromCharCode(code); }
+ ).join('');
+ return btoa(string) // eslint-disable-line no-undef
+}
+
+function base64ToBuffer (base64) {
+ if (typeof atob !== 'function') {
+ return new ArrayBuffer(0)
+ }
+ var string = atob(base64); // eslint-disable-line no-undef
+ var array = new Uint8Array(string.length);
+ Array.prototype.forEach.call(string, function (ch, i) {
+ array[i] = ch.charCodeAt(0);
+ });
+ return array.buffer
+}
+
+/**
+ * Normalize a primitive value.
+ * @param {any} v
+ * @return {primitive}
+ */
+function normalizePrimitive (v) {
+ var type = typof(v);
+
+ switch (type) {
+ case 'Undefined':
+ case 'Null':
+ return ''
+
+ case 'RegExp':
+ return v.toString()
+ case 'Date':
+ return v.toISOString()
+
+ case 'Number':
+ case 'String':
+ case 'Boolean':
+ return v
+
+ case 'Array':
+ return v.map(normalizePrimitive)
+
+ case 'Object': {
+ var obj = {};
+ for (var k in v) {
+ obj[k] = normalizePrimitive(v[k]);
+ }
+ return obj
+ }
+
+ case 'ArrayBuffer':
+ return {
+ '@type': 'binary',
+ dataType: type,
+ base64: bufferToBase64(v)
+ }
+
+ case 'Int8Array':
+ case 'Uint8Array':
+ case 'Uint8ClampedArray':
+ case 'Int16Array':
+ case 'Uint16Array':
+ case 'Int32Array':
+ case 'Uint32Array':
+ case 'Float32Array':
+ case 'Float64Array':
+ return {
+ '@type': 'binary',
+ dataType: type,
+ base64: bufferToBase64(v.buffer)
+ }
+
+ default:
+ return JSON.stringify(v)
+ }
+}
+
+function decodePrimitive (data) {
+ if (typof(data) === 'Object') {
+ // decode base64 into binary
+ if (data['@type'] && data['@type'] === 'binary') {
+ return base64ToBuffer(data.base64 || '')
+ }
+
+ var realData = {};
+ for (var key in data) {
+ realData[key] = decodePrimitive(data[key]);
+ }
+ return realData
+ }
+ if (typof(data) === 'Array') {
+ return data.map(decodePrimitive)
+ }
+ return data
+}
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -1910,7 +2102,7 @@ function freezeProtoProperty (proto, propertyName, protoName) {
var CallbackManager = function CallbackManager (instanceId) {
this.instanceId = instanceId;
this.lastCallbackId = 0;
- this.callbacks = [];
+ this.callbacks = {};
};
CallbackManager.prototype.add = function add (callback) {
this.lastCallbackId++;
@@ -1919,21 +2111,21 @@ CallbackManager.prototype.add = function add (callback) {
};
CallbackManager.prototype.remove = function remove (callbackId) {
var callback = this.callbacks[callbackId];
- this.callbacks[callbackId] = undefined;
+ delete this.callbacks[callbackId];
return callback
};
CallbackManager.prototype.consume = function consume (callbackId, data, ifKeepAlive) {
var callback = this.callbacks[callbackId];
if (typeof ifKeepAlive === 'undefined' || ifKeepAlive === false) {
- this.callbacks[callbackId] = undefined;
+ delete this.callbacks[callbackId];
}
if (typeof callback === 'function') {
- return callback(data)
+ return callback(decodePrimitive(data))
}
return new Error(("invalid callback id \"" + callbackId + "\""))
};
CallbackManager.prototype.close = function close () {
- this.callbacks = this.callbacks.map(function (cb) { return undefined; });
+ this.callbacks = {};
};
/*
@@ -2727,23 +2919,26 @@ Object.assign(Element.prototype, {
* @return {} anything returned by handler function
*/
fireEvent: function fireEvent (type, e, isBubble) {
+ var result = null;
var isStopPropagation = false;
var handler = this.event[type];
if (handler && e) {
e.stopPropagation = function () {
isStopPropagation = true;
};
- handler.call(this, e);
- }
-
- if (isStopPropagation) {
- return
+ result = handler.call(this, e);
}
- if (isBubble && BUBBLE_EVENTS.includes(type) && this.parentNode && this.parentNode.fireEvent) {
+ if (!isStopPropagation
+ && isBubble
+ && BUBBLE_EVENTS.includes(type)
+ && this.parentNode
+ && this.parentNode.fireEvent) {
e.currentTarget = this.parentNode;
this.parentNode.fireEvent(type, e, isBubble);
}
+
+ return result
},
/**
@@ -2816,7 +3011,7 @@ var TaskCenter = function TaskCenter (id, sendTasks) {
});
Object.defineProperty(this, 'callbackManager', {
enumerable: true,
- value: new CallbackManager()
+ value: new CallbackManager(id)
});
fallback = sendTasks || function () {};
};
@@ -2829,54 +3024,36 @@ TaskCenter.prototype.destroyCallback = function destroyCallback () {
return this.callbackManager.close()
};
-TaskCenter.prototype.typof = function typof (v) {
- var s = Object.prototype.toString.call(v);
- return s.substring(8, s.length - 1).toLowerCase()
-};
-
/**
* Normalize a value. Specially, if the value is a function, then generate a function id
* and save it to `CallbackManager`, at last return the function id.
* @param{any} v
- * @param{object} app
* @return {primitive}
*/
TaskCenter.prototype.normalize = function normalize (v) {
- var type = this.typof(v);
+ var type = typof(v);
- switch (type) {
- case 'undefined':
- case 'null':
- return ''
- case 'regexp':
- return v.toString()
- case 'date':
- return v.toISOString()
- case 'number':
- case 'string':
- case 'boolean':
- case 'array':
- case 'object':
- if (v instanceof Element) {
- return v.ref
- }
- return v
- case 'function':
- return this.callbackManager.add(v).toString()
- /* istanbul ignore next */
- default:
- return JSON.stringify(v)
+ if (v && v instanceof Element) {
+ return v.ref
+ }
+ if (v && v._isVue && v.$el instanceof Element) {
+ return v.$el.ref
}
+ if (type === 'Function') {
+ return this.callbackManager.add(v).toString()
+ }
+
+ return normalizePrimitive(v)
};
-TaskCenter.prototype.send = function send (type, options, args) {
+TaskCenter.prototype.send = function send (type, params, args, options) {
var this$1 = this;
- var action = options.action;
- var component = options.component;
- var ref = options.ref;
- var module = options.module;
- var method = options.method;
+ var action = params.action;
+ var component = params.component;
+ var ref = params.ref;
+ var module = params.module;
+ var method = params.method;
args = args.map(function (arg) { return this$1.normalize(arg); });
@@ -2884,9 +3061,9 @@ TaskCenter.prototype.send = function send (type, options, args) {
case 'dom':
return this[action](this.instanceId, args)
case 'component':
- return this.componentHandler(this.instanceId, ref, method, args, { component: component })
+ return this.componentHandler(this.instanceId, ref, method, args, Object.assign({ component: component }, options))
default:
- return this.moduleHandler(this.instanceId, module, method, args, {})
+ return this.moduleHandler(this.instanceId, module, method, args, options)
}
};
@@ -2894,12 +3071,12 @@ TaskCenter.prototype.callDOM = function callDOM (action, args) {
return this[action](this.instanceId, args)
};
-TaskCenter.prototype.callComponent = function callComponent (ref, method, args) {
- return this.componentHandler(this.instanceId, ref, method, args, {})
+TaskCenter.prototype.callComponent = function callComponent (ref, method, args, options) {
+ return this.componentHandler(this.instanceId, ref, method, args, options)
};
-TaskCenter.prototype.callModule = function callModule (module, method, args) {
- return this.moduleHandler(this.instanceId, module, method, args, {})
+TaskCenter.prototype.callModule = function callModule (module, method, args, options) {
+ return this.moduleHandler(this.instanceId, module, method, args, options)
};
function init$1 () {
@@ -3794,8 +3971,10 @@ Object.assign(Document.prototype, {
* Destroy current document, and remove itself form docMap.
*/
destroy: function destroy () {
+ this.taskCenter.destroyCallback();
delete this.listener;
delete this.nodeMap;
+ delete this.taskCenter;
removeDoc(this.id);
}
});
@@ -3844,7 +4023,10 @@ var config = {
var args = [], len = arguments.length;
while ( len-- ) args[ len ] = arguments[ len ];
- return global.callNative.apply(global, args)
+ if (typeof callNative === 'function') {
+ return callNative.apply(void 0, args)
+ }
+ return (global.callNative || (function () {})).apply(void 0, args)
}
};
@@ -3903,4 +4085,4 @@ var index = {
return index;
})));
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjpudWxsLCJzb3VyY2VzIjpbIi4uLy4uL2h0bWw1L3NoYXJlZC9hcnJheUZyb20uanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19nbG9iYWwuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19jb3JlLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXMtb2JqZWN0LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fYW4tb2JqZWN0LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZmFpbHMuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19kZXNjcmlwdG9ycy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2RvbS1jcmVhdGUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pZTgtZG9tLWRlZmluZS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3RvLXByaW1pdGl2ZS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX29iamVjdC1kcC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3Byb3BlcnR5LWRlc2MuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19oaWRlLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL
2NvcmUtanMvbW9kdWxlcy9faGFzLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fdWlkLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fcmVkZWZpbmUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hLWZ1bmN0aW9uLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fY3R4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZXhwb3J0LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fY29mLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faW9iamVjdC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2RlZmluZWQuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL190by1pb2JqZWN0LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fdG8taW50ZWdlci5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3RvLWxlbmd0aC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3RvLWluZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fYXJyYXktaW5jbHVkZXMuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19zaGFyZWQuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2
R1bGVzL19zaGFyZWQta2V5LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fb2JqZWN0LWtleXMtaW50ZXJuYWwuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19lbnVtLWJ1Zy1rZXlzLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fb2JqZWN0LWtleXMuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19vYmplY3QtZ29wcy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX29iamVjdC1waWUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL190by1vYmplY3QuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19vYmplY3QtYXNzaWduLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYub2JqZWN0LmFzc2lnbi5qcyIsIi4uLy4uL2h0bWw1L3NoYXJlZC9vYmplY3RBc3NpZ24uanMiLCIuLi8uLi9odG1sNS9zaGFyZWQvb2JqZWN0U2V0UHJvdG90eXBlT2YuanMiLCIuLi8uLi9odG1sNS9zaGFyZWQvcHJvbWlzZS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3drcy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2NsYXNzb2YuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5vYmplY3QudG8tc3RyaW5nLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGV
zL2NvcmUtanMvbW9kdWxlcy9fc3RyaW5nLWF0LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fbGlicmFyeS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2l0ZXJhdG9ycy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX29iamVjdC1kcHMuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19odG1sLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fb2JqZWN0LWNyZWF0ZS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3NldC10by1zdHJpbmctdGFnLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXRlci1jcmVhdGUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19vYmplY3QtZ3BvLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXRlci1kZWZpbmUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5zdHJpbmcuaXRlcmF0b3IuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hZGQtdG8tdW5zY29wYWJsZXMuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pdGVyLXN0ZXAuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5hcnJheS5pdGVyYXRvci5qcyIsIi4uLy4uL25vZGVfbW9k
dWxlcy9jb3JlLWpzL21vZHVsZXMvd2ViLmRvbS5pdGVyYWJsZS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2FuLWluc3RhbmNlLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXRlci1jYWxsLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXMtYXJyYXktaXRlci5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvY29yZS5nZXQtaXRlcmF0b3ItbWV0aG9kLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZm9yLW9mLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fc3BlY2llcy1jb25zdHJ1Y3Rvci5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2ludm9rZS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3Rhc2suanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19taWNyb3Rhc2suanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19yZWRlZmluZS1hbGwuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19zZXQtc3BlY2llcy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2l0ZXItZGV0ZWN0LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYucHJvbWlzZS5qcyIsIi4uLy4uL2h0bWw1L3NoY
XJlZC9jb25zb2xlLmpzIiwiLi4vLi4vaHRtbDUvc2hhcmVkL3NldFRpbWVvdXQuanMiLCIuLi8uLi9odG1sNS9zaGFyZWQvZnJlZXplLmpzIiwiLi4vLi4vaHRtbDUvc2hhcmVkL2luZGV4LmpzIiwiLi4vLi4vaHRtbDUvcnVudGltZS9jYWxsYmFjay1tYW5hZ2VyLmpzIiwiLi4vLi4vaHRtbDUvcnVudGltZS92ZG9tL29wZXJhdGlvbi5qcyIsIi4uLy4uL2h0bWw1L3J1bnRpbWUvdmRvbS9ub2RlLmpzIiwiLi4vLi4vaHRtbDUvcnVudGltZS92ZG9tL2VsZW1lbnQtdHlwZXMuanMiLCIuLi8uLi9odG1sNS9ydW50aW1lL3Zkb20vZWxlbWVudC5qcyIsIi4uLy4uL2h0bWw1L3J1bnRpbWUvdGFzay1jZW50ZXIuanMiLCIuLi8uLi9odG1sNS9ydW50aW1lL3NlcnZpY2UuanMiLCIuLi8uLi9odG1sNS9ydW50aW1lL2luaXQuanMiLCIuLi8uLi9odG1sNS9ydW50aW1lL3Zkb20vY29tbWVudC5qcyIsIi4uLy4uL2h0bWw1L3J1bnRpbWUvbGlzdGVuZXIuanMiLCIuLi8uLi9odG1sNS9ydW50aW1lL2hhbmRsZXIuanMiLCIuLi8uLi9odG1sNS9ydW50aW1lL3Zkb20vZG9jdW1lbnQuanMiLCIuLi8uLi9odG1sNS9ydW50aW1lL3Zkb20vaW5kZXguanMiLCIuLi8uLi9odG1sNS9ydW50aW1lL2NvbmZpZy5qcyIsIi4uLy4uL2h0bWw1L3J1bnRpbWUvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmVcbiAqIG9yIG
1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZVxuICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb25cbiAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGVcbiAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGVcbiAqIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLFxuICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW5cbiAqIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXG4gKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGVcbiAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnNcbiAqIHVuZGVyIHRoZSBMaWNlbnN
lLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlICovXG5cbi8vIFByb2R1Y3Rpb24gc3RlcHMgb2YgRUNNQS0yNjIsIEVkaXRpb24gNiwgMjIuMS4yLjFcbi8vIFJlZmVyZW5jZTogaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLWFycmF5LmZyb21cblxuLyogaXN0YW5idWwgaWdub3JlIGlmICovXG5pZiAoIUFycmF5LmZyb20pIHtcbiAgQXJyYXkuZnJvbSA9IChmdW5jdGlvbigpIHtcbiAgICB2YXIgdG9TdHIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuICAgIHZhciBpc0NhbGxhYmxlID0gZnVuY3Rpb24oZm4pIHtcbiAgICAgIHJldHVybiB0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicgfHwgdG9TdHIuY2FsbChmbikgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSc7XG4gICAgfTtcbiAgICB2YXIgdG9JbnRlZ2VyID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIHZhciBudW1iZXIgPSBOdW1iZXIodmFsdWUpO1xuICAgICAgaWYgKGlzTmFOKG51bWJlcikpIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG4gICAgICBpZiAobnVtYmVyID09PSAwIHx8ICFpc0Zpbml0ZShudW1iZXIpKSB7XG4gICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICB9XG4gICAgICByZXR1cm4gKG51bWJlciA+IDAgPyAxIDogLTEpICogTWF0aC5mbG9vcihNYXRoLmFicyhudW1iZXIpKTtcbiAgICB9O1xuICAgIHZhciBtYXhTYWZlSW50ZWdlciA9IE1hdGgucG93KDIsIDUz
KSAtIDE7XG4gICAgdmFyIHRvTGVuZ3RoID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIHZhciBsZW4gPSB0b0ludGVnZXIodmFsdWUpO1xuICAgICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGxlbiwgMCksIG1heFNhZmVJbnRlZ2VyKTtcbiAgICB9O1xuXG4gICAgLy8gVGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiB0aGUgZnJvbSBtZXRob2QgaXMgMS5cbiAgICByZXR1cm4gZnVuY3Rpb24gZnJvbShhcnJheUxpa2UvKiwgbWFwRm4sIHRoaXNBcmcgKi8pIHtcbiAgICAgIC8vIDEuIExldCBDIGJlIHRoZSB0aGlzIHZhbHVlLlxuICAgICAgdmFyIEMgPSB0aGlzO1xuXG4gICAgICAvLyAyLiBMZXQgaXRlbXMgYmUgVG9PYmplY3QoYXJyYXlMaWtlKS5cbiAgICAgIHZhciBpdGVtcyA9IE9iamVjdChhcnJheUxpa2UpO1xuXG4gICAgICAvLyAzLiBSZXR1cm5JZkFicnVwdChpdGVtcykuXG4gICAgICBpZiAoYXJyYXlMaWtlID09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJyYXkuZnJvbSByZXF1aXJlcyBhbiBhcnJheS1saWtlIG9iamVjdCAtIG5vdCBudWxsIG9yIHVuZGVmaW5lZCcpO1xuICAgICAgfVxuXG4gICAgICAvLyA0LiBJZiBtYXBmbiBpcyB1bmRlZmluZWQsIHRoZW4gbGV0IG1hcHBpbmcgYmUgZmFsc2UuXG4gICAgICB2YXIgbWFwRm4gPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHZvaWQgdW5kZWZpbmVkO1xuICAgICAgdmFyIFQ7XG4gICAgICBpZiAod
HlwZW9mIG1hcEZuICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAvLyA1LiBlbHNlXG4gICAgICAgIC8vIDUuIGEgSWYgSXNDYWxsYWJsZShtYXBmbikgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi5cbiAgICAgICAgaWYgKCFpc0NhbGxhYmxlKG1hcEZuKSkge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FycmF5LmZyb206IHdoZW4gcHJvdmlkZWQsIHRoZSBzZWNvbmQgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyA1LiBiLiBJZiB0aGlzQXJnIHdhcyBzdXBwbGllZCwgbGV0IFQgYmUgdGhpc0FyZzsgZWxzZSBsZXQgVCBiZSB1bmRlZmluZWQuXG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMikge1xuICAgICAgICAgIFQgPSBhcmd1bWVudHNbMl07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gMTAuIExldCBsZW5WYWx1ZSBiZSBHZXQoaXRlbXMsIFwibGVuZ3RoXCIpLlxuICAgICAgLy8gMTEuIExldCBsZW4gYmUgVG9MZW5ndGgobGVuVmFsdWUpLlxuICAgICAgdmFyIGxlbiA9IHRvTGVuZ3RoKGl0ZW1zLmxlbmd0aCk7XG5cbiAgICAgIC8vIDEzLiBJZiBJc0NvbnN0cnVjdG9yKEMpIGlzIHRydWUsIHRoZW5cbiAgICAgIC8vIDEzLiBhLiBMZXQgQSBiZSB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgdGhlIFtbQ29uc3RydWN0XV0gaW50ZXJuYWwgbWV0aG9kIG9mIEMgd2l0aCBhbiBhcmd1bWVudCBsaX
N0IGNvbnRhaW5pbmcgdGhlIHNpbmdsZSBpdGVtIGxlbi5cbiAgICAgIC8vIDE0LiBhLiBFbHNlLCBMZXQgQSBiZSBBcnJheUNyZWF0ZShsZW4pLlxuICAgICAgdmFyIEEgPSBpc0NhbGxhYmxlKEMpID8gT2JqZWN0KG5ldyBDKGxlbikpIDogbmV3IEFycmF5KGxlbik7XG5cbiAgICAgIC8vIDE2LiBMZXQgayBiZSAwLlxuICAgICAgdmFyIGsgPSAwO1xuICAgICAgLy8gMTcuIFJlcGVhdCwgd2hpbGUgayA8IGxlbuKApiAoYWxzbyBzdGVwcyBhIC0gaClcbiAgICAgIHZhciBrVmFsdWU7XG4gICAgICB3aGlsZSAoayA8IGxlbikge1xuICAgICAgICBrVmFsdWUgPSBpdGVtc1trXTtcbiAgICAgICAgaWYgKG1hcEZuKSB7XG4gICAgICAgICAgQVtrXSA9IHR5cGVvZiBUID09PSAndW5kZWZpbmVkJyA/IG1hcEZuKGtWYWx1ZSwgaykgOiBtYXBGbi5jYWxsKFQsIGtWYWx1ZSwgayk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgQVtrXSA9IGtWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBrICs9IDE7XG4gICAgICB9XG4gICAgICAvLyAxOC4gTGV0IHB1dFN0YXR1cyBiZSBQdXQoQSwgXCJsZW5ndGhcIiwgbGVuLCB0cnVlKS5cbiAgICAgIEEubGVuZ3RoID0gbGVuO1xuICAgICAgLy8gMjAuIFJldHVybiBBLlxuICAgICAgcmV0dXJuIEE7XG4gICAgfTtcbiAgfSgpKTtcbn1cbiIsIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy84NiNpc3N1ZWNvbW1lbnQtMTE1NzU5MDI4XG52YXI
gZ2xvYmFsID0gbW9kdWxlLmV4cG9ydHMgPSB0eXBlb2Ygd2luZG93ICE9ICd1bmRlZmluZWQnICYmIHdpbmRvdy5NYXRoID09IE1hdGhcbiAgPyB3aW5kb3cgOiB0eXBlb2Ygc2VsZiAhPSAndW5kZWZpbmVkJyAmJiBzZWxmLk1hdGggPT0gTWF0aCA/IHNlbGYgOiBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuaWYodHlwZW9mIF9fZyA9PSAnbnVtYmVyJylfX2cgPSBnbG9iYWw7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWYiLCJ2YXIgY29yZSA9IG1vZHVsZS5leHBvcnRzID0ge3ZlcnNpb246ICcyLjQuMCd9O1xuaWYodHlwZW9mIF9fZSA9PSAnbnVtYmVyJylfX2UgPSBjb3JlOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihpdCl7XG4gIHJldHVybiB0eXBlb2YgaXQgPT09ICdvYmplY3QnID8gaXQgIT09IG51bGwgOiB0eXBlb2YgaXQgPT09ICdmdW5jdGlvbic7XG59OyIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihpdCl7XG4gIGlmKCFpc09iamVjdChpdCkpdGhyb3cgVHlwZUVycm9yKGl0ICsgJyBpcyBub3QgYW4gb2JqZWN0IScpO1xuICByZXR1cm4gaXQ7XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oZXhlYyl7XG4gIHRyeSB7XG4gICAgcmV0dXJuICEhZXhlYygpO1xuICB9IGNhdGNoKGUpe1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59OyIs
Ii8vIFRoYW5rJ3MgSUU4IGZvciBoaXMgZnVubnkgZGVmaW5lUHJvcGVydHlcbm1vZHVsZS5leHBvcnRzID0gIXJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24oKXtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2EnLCB7Z2V0OiBmdW5jdGlvbigpeyByZXR1cm4gNzsgfX0pLmEgIT0gNztcbn0pOyIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpXG4gICwgZG9jdW1lbnQgPSByZXF1aXJlKCcuL19nbG9iYWwnKS5kb2N1bWVudFxuICAvLyBpbiBvbGQgSUUgdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCdcbiAgLCBpcyA9IGlzT2JqZWN0KGRvY3VtZW50KSAmJiBpc09iamVjdChkb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaXQpe1xuICByZXR1cm4gaXMgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGl0KSA6IHt9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9ICFyZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpICYmICFyZXF1aXJlKCcuL19mYWlscycpKGZ1bmN0aW9uKCl7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVxdWlyZSgnLi9fZG9tLWNyZWF0ZScpKCdkaXYnKSwgJ2EnLCB7Z2V0OiBmdW5jdGlvbigpeyByZXR1cm4gNzsgfX0pLmEgIT0gNztc
<TRUNCATED>