http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/272454c4/packages/weex-js-framework/index.js ---------------------------------------------------------------------- diff --git a/packages/weex-js-framework/index.js b/packages/weex-js-framework/index.js index 21afb62..e868002 100644 --- a/packages/weex-js-framework/index.js +++ b/packages/weex-js-framework/index.js @@ -1,5 +1,5 @@ -(this.nativeLog || function(s) {console.log(s)})('START JS FRAMEWORK 0.20.6, Build 2017-08-01 19:09.'); -;(this.getJSFMVersion = function(){return "0.20.6"}); +(this.nativeLog || function(s) {console.log(s)})('START JS FRAMEWORK 0.21.8, Build 2017-08-10 14:43.'); +;(this.getJSFMVersion = function(){return "0.21.8"}); var global = this, process = { env: {} };var setTimeout = global.setTimeout; (function (global, factory) { @@ -8,7 +8,7 @@ var global = this, process = { env: {} };var setTimeout = global.setTimeout; (factory()); }(this, (function () { 'use strict'; -var subversion = {"browser":"0.5.0","framework":"0.20.6","vue-render":"0.12.1","transformer":">=0.1.5 <0.5"}; +var subversion = {"browser":"0.5.0","framework":"0.21.8","vue-render":"0.12.3","transformer":">=0.1.5 <0.5"}; /* * Licensed to the Apache Software Foundation (ASF) under one @@ -131,76 +131,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; }; @@ -208,115 +211,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 @@ -324,10 +326,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; @@ -339,52 +341,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); }; @@ -392,51 +395,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$1 = _has; -var toIObject = _toIobject; +var has$1 = _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$1(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$1(O, key) && result.push(key); } } // Don't enum bug & hidden keys - while(names.length > i){ if(has$1(O, key = names[i++])){ + while (names.length > i) { if (has$1(O, key = names[i++])) { ~arrayIndexOf(result, key) || result.push(key); } } return result; @@ -448,10 +453,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); }; @@ -469,49 +474,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 @@ -638,12 +644,12 @@ if (WXEnvironment$1 && WXEnvironment$1.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)); }; @@ -654,16 +660,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 @@ -676,25 +683,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 @@ -706,38 +713,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 @@ -748,15 +756,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; @@ -768,160 +776,160 @@ var def = _objectDp.f; var has$3 = _has; var TAG$1 = _wks('toStringTag'); -var _setToStringTag = function(it, tag, stat){ - if(it && !has$3(it = stat ? it : it.prototype, TAG$1)){ def(it, TAG$1, {configurable: true, value: tag}); } +var _setToStringTag = function (it, tag, stat) { + if (it && !has$3(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$4 = _has; -var toObject$1 = _toObject; -var IE_PROTO$2 = _sharedKey('IE_PROTO'); +var has$4 = _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$4(O, IE_PROTO$2)){ return O[IE_PROTO$2]; } - if(typeof O.constructor == 'function' && O instanceof O.constructor){ + if (has$4(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$2 = _has; -var Iterators = _iterators; -var $iterCreate = _iterCreate; +var LIBRARY = _library; +var $export$2 = _export; +var redefine$1 = _redefine; +var hide$1 = _hide; +var has$2 = _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$2(IteratorPrototype, ITERATOR)){ hide$1(IteratorPrototype, ITERATOR, returnThis); } + if (!LIBRARY && !has$2(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'); @@ -932,107 +940,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]) @@ -1043,133 +1088,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$2 = 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$2 = 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$1 = function(){ +var run$1 = 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$1.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$2) == 'process'){ - defer = function(id){ + if (_cof(process$2) == 'process') { + defer = function (id) { process$2.nextTick(ctx$2(run$1, id, 1)); }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(ctx$2(run$1, 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$1.call(id); }; }; // Rest old browsers } else { - defer = function(id){ + defer = function (id) { setTimeout(ctx$2(run$1, 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$3 = global$6.process; -var Promise$1 = global$6.Promise; -var isNode$1 = _cof(process$3) == 'process'; +var Observer = global$6.MutationObserver || global$6.WebKitMutationObserver; +var process$3 = global$6.process; +var Promise$1 = global$6.Promise; +var isNode$1 = _cof(process$3) == '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$3.domain)){ parent.exit(); } - while(head){ - fn = head.fn; + if (isNode$1 && (parent = process$3.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$3.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: @@ -1179,233 +1233,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$1 = global$4.process; -var $Promise = global$4[PROMISE]; -var process$1 = global$4.process; -var isNode = classof$1(process$1) == '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$1 = global$4.process; +var $Promise = global$4[PROMISE]; +var isNode = classof$1(process$1) == '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$1 = function(promise, isReject){ - if(promise._n){ return; } +var notify$1 = 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$1.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$1.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$1(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); } }); @@ -1414,25 +1495,26 @@ var $resolve = function(value){ promise._s = 1; notify$1(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 @@ -1443,30 +1525,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$1.domain : undefined; this._c.push(reaction); - if(this._a){ this._a.push(reaction); } - if(this._s){ notify$1(this, false); } + if (this._a) { this._a.push(reaction); } + if (this._s) { notify$1(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]; @@ -1474,65 +1561,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; } }); @@ -1884,6 +1968,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 @@ -1913,7 +2105,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++; @@ -1922,21 +2114,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 = {}; }; /* @@ -2730,23 +2922,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 }, /** @@ -2819,7 +3014,7 @@ var TaskCenter = function TaskCenter (id, sendTasks) { }); Object.defineProperty(this, 'callbackManager', { enumerable: true, - value: new CallbackManager() + value: new CallbackManager(id) }); fallback = sendTasks || function () {}; }; @@ -2832,54 +3027,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); }); @@ -2887,9 +3064,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) } }; @@ -2897,12 +3074,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$2 () { @@ -3797,8 +3974,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); } }); @@ -3847,7 +4026,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) } }; @@ -4230,7 +4412,9 @@ function createInstance$1 (id, code, options, data, serviceObjects) { globalKeys.push(code); var result = new (Function.prototype.bind.apply( Function, [ null ].concat( globalKeys) )); - return result.apply(void 0, globalValues) + result.apply(void 0, globalValues); + + return { document: document } } function refreshInstance (id, data) {} @@ -4272,55 +4456,91 @@ function receiveTasks (id, tasks) { } } -var init_1 = init$3; -var registerComponents_1 = registerComponents; -var registerModules_1 = registerModules; -var registerMethods_1 = registerMethods; -var prepareInstance_1 = prepareInstance; -var createInstance_1 = createInstance$1; -var refreshInstance_1 = refreshInstance; -var destroyInstance_1 = destroyInstance; -var getRoot_1 = getRoot; -var receiveTasks_1 = receiveTasks; - -var index = { - init: init_1, - registerComponents: registerComponents_1, - registerModules: registerModules_1, - registerMethods: registerMethods_1, - prepareInstance: prepareInstance_1, - createInstance: createInstance_1, - refreshInstance: refreshInstance_1, - destroyInstance: destroyInstance_1, - getRoot: getRoot_1, - receiveTasks: receiveTasks_1 -}; - - var Vanilla = Object.freeze({ - default: index, - __moduleExports: index, - init: init_1, - registerComponents: registerComponents_1, - registerModules: registerModules_1, - registerMethods: registerMethods_1, - prepareInstance: prepareInstance_1, - createInstance: createInstance_1, - refreshInstance: refreshInstance_1, - destroyInstance: destroyInstance_1, - getRoot: getRoot_1, - receiveTasks: receiveTasks_1 + init: init$3, + registerComponents: registerComponents, + registerModules: registerModules, + registerMethods: registerMethods, + prepareInstance: prepareInstance, + createInstance: createInstance$1, + refreshInstance: refreshInstance, + destroyInstance: destroyInstance, + getRoot: getRoot, + receiveTasks: receiveTasks }); -var factory = function weexFactory (exports, renderer) { +var factory = createCommonjsModule(function (module) { +'use strict'; + +module.exports = function weexFactory (exports, renderer) { /* */ +// these helpers produces better vm code in JS engines due to their +// explicitness and function inlining +function isUndef (v) { + return v === undefined || v === null +} + +function isDef (v) { + return v !== undefined && v !== null +} + +function isTrue (v) { + return v === true +} + +function isFalse (v) { + return v === false +} + +/** + * Check if value is primitive + */ +function isPrimitive (value) { + return ( + typeof value === 'string' || + typeof value === 'number' || + typeof value === 'boolean' + ) +} + +/** + * Quick object check - this is primarily used to tell + * Objects from primitive values when we know the value + * is a JSON-compliant type. + */ +function isObject (obj) { + return obj !== null && typeof obj === 'object' +} + +var _toString = Object.prototype.toString; + +/** + * Strict object type check. Only returns true + * for plain JavaScript objects. + */ +function isPlainObject (obj) { + return _toString.call(obj) === '[object Object]' +} + +function isRegExp (v) { + return _toString.call(v) === '[object RegExp]' +} + +/** + * Check if val is a valid array index. + */ +function isValidArrayIndex (val) { + var n = parseFloat(val); + return n >= 0 && Math.floor(n) === n && isFinite(val) +} + /** * Convert a value to a string that is actually rendered. */ -function _toString (val) { +function toString (val) { return val == null ? '' : typeof val === 'object' @@ -4361,6 +4581,11 @@ function makeMap ( var isBuiltInTag = makeMap('slot,component', true); /** + * Check if a attribute is a reserved attribute. + */ +var isReservedAttribute = makeMap('key,ref,slot,is'); + +/** * Remove an item from an array */ function remove (arr, item) { @@ -4381,13 +4606,6 @@ function hasOwn (obj, key) { } /** - * Check if value is primitive - */ -function isPrimitive (value) { - return typeof value === 'string' || typeof value === 'number' -} - -/** * Create a cached version of a pure function. */ function cached (fn) { @@ -4465,25 +4683,6 @@ function extend (to, _from) { } /** - * Quick object check - this is primarily used to tell - * Objects from primitive values when we know the value - * is a JSON-compliant type. - */ -function isObject (obj) { - return obj !== null && typeof obj === 'object' -} - -/** - * Strict object type check. Only returns true - * for plain JavaScript objects. - */ -var toString = Object.prototype.toString; -var OBJECT_STRING = '[object Object]'; -function isPlainObject (obj) { - return toString.call(obj) === OBJECT_STRING -} - -/** * Merge an Array of Objects into a single Object. */ function toObject (arr) { @@ -4498,13 +4697,15 @@ function toObject (arr) { /** * Perform no operation. + * Stubbing args to make Flow happy without leaving useless transpiled code + * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/) */ -function noop () {} +function noop (a, b, c) {} /** * Always return false. */ -var no = function () { return false; }; +var no = function (a, b, c) { return false; }; /** * Return same value @@ -4521,14 +4722,30 @@ var identity = function (_) { return _; }; * if they are plain objects, do they have the same shape? */ function looseEqual (a, b) { + if (a === b) { return true } var isObjectA = isObject(a); var isObjectB = isObject(b); if (isObjectA && isObjectB) { try { - return JSON.stringify(a) === JSON.stringify(b) + var isArrayA = Array.isArray(a); + var isArrayB = Array.isArray(b); + if (isArrayA && isArrayB) { + return a.length === b.length && a.every(function (e, i) { + return looseEqual(e, b[i]) + }) + } else if (!isArrayA && !isArrayB) { + var keysA = Object.keys(a); + var keysB = Object.keys(b); + return keysA.length === keysB.length && keysA.every(function (key) { + return looseEqual(a[key], b[key]) + }) + } else { + /* istanbul ignore next */ + return false + } } catch (e) { - // possible circular reference - return a === b + /* istanbul ignore next */ + return false } } else if (!isObjectA && !isObjectB) { return String(a) === String(b) @@ -4552,14 +4769,35 @@ function once (fn) { return function () { if (!called) { called = true; - fn(); + fn.apply(this, arguments); } } } +var SSR_ATTR = 'data-server-rendered'; + +var ASSET_TYPES = [ + 'component', + 'directive', + 'filter' +]; + +var LIFECYCLE_HOOKS = [ + 'beforeCreate', + 'created', + 'beforeMount', + 'mounted', + 'beforeUpdate', + 'updated', + 'beforeDestroy', + 'destroyed', + 'activated', + 'deactivated' +]; + /* */ -var config = { +var config = ({ /** * Option merge strategies (used in core/util/options) */ @@ -4591,6 +4829,11 @@ var config = { errorHandler: null, /** + * Warn handler for watcher warns + */ + warnHandler: null, + + /** * Ignore certain custom elements */ ignoredElements: [], @@ -4607,6 +4850,12 @@ var config = { isReservedTag: no, /** + * Check if an attribute is reserved so that it cannot be used as a component + * prop. This is platform-dependent and may be overwritten. + */ + isReservedAttr: no, + + /** * Check if a tag is an unknown element. * Platform-dependent. */ @@ -4629,35 +4878,10 @@ var config = { mustUseProp: no, /** - * List of asset types that a component can own. - */ - _assetTypes: [ - 'component', - 'directive', - 'filter' - ], - - /** - * List of lifecycle hooks. + * Exposed for legacy reasons */ - _lifecycleHooks: [ - 'beforeCreate', - 'created', - 'beforeMount', - 'mounted', - 'beforeUpdate', - 'updated', - 'beforeDestroy', - 'destroyed', - 'activated', - 'deactivated' - ], - - /** - * Max circular updates allowed in a scheduler flush cycle. - */ - _maxUpdateCount: 100 -}; + _lifecycleHooks: LIFECYCLE_HOOKS +}); /* */ @@ -4702,35 +4926,165 @@ function parsePath (path) { } /* */ -/* globals MutationObserver */ -// can we use __proto__? -var hasProto = '__proto__' in {}; +var warn = noop; +var tip = noop; +var formatComponentName = (null); // work around flow check -// Browser environment sniffing -var inBrowser = typeof window !== 'undefined'; -var UA = inBrowser && window.navigator.userAgent.toLowerCase(); -var isIE = UA && /msie|trident/.test(UA); -var isIE9 = UA && UA.indexOf('msie 9.0') > 0; -var isEdge = UA && UA.indexOf('edge/') > 0; -var isAndroid = UA && UA.indexOf('android') > 0; -var isIOS = UA && /iphone|ipad|ipod|ios/.test(UA); -var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge; +{ + var hasConsole = typeof console !== 'undefined'; + var classifyRE = /(?:^|[-_])(\w)/g; + var classify = function (str) { return str + .replace(classifyRE, function (c) { return c.toUpperCase(); }) + .replace(/[-_]/g, ''); }; -// this needs to be lazy-evaled because vue may be required before -// vue-server-renderer can set VUE_ENV -var _isServer; -var isServerRendering = function () { - if (_isServer === undefined) { - /* istanbul ignore if */ - if (!inBrowser && typeof commonjsGlobal !== 'undefined') { - // detect presence of vue-server-renderer and avoid - // Webpack shimming the process - _isServer = commonjsGlobal['process'].env.VUE_ENV === 'server'; - } else { - _isServer = false; + warn = function (msg, vm) { + var trace = vm ? generateComponentTrace(vm) : ''; + + if (config.warnHandler) { + config.warnHandler.call(null, msg, vm, trace); + } else if (hasConsole && (!config.silent)) { + console.error(("[Vue warn]: " + msg + trace)); } - } + }; + + tip = function (msg, vm) { + if (hasConsole && (!config.silent)) { + console.warn("[Vue tip]: " + msg + ( + vm ? generateComponentTrace(vm) : '' + )); + } + }; + + formatComponentName = function (vm, includeFile) { + if (vm.$root === vm) { + return '<Root>' + } + var name = typeof vm === 'string' + ? vm + : typeof vm === 'function' && vm.options + ? vm.options.name + : vm._isVue + ? vm.$options.name || vm.$options._componentTag + : vm.name; + + var file = vm._isVue && vm.$options.__file; + if (!name && file) { + var match = file.match(/([^/\\]+)\.vue$/); + name = match && match[1]; + } + + return ( + (name ? ("<" + (classify(name)) + ">") : "<Anonymous>") + + (file && includeFile !== false ? (" at " + file) : '') + ) + }; + + var repeat = function (str, n) { + var res = ''; + while (n) { + if (n % 2 === 1) { res += str; } + if (n > 1) { str += str; } + n >>= 1; + } + return res + }; + + var generateComponentTrace = function (vm) { + if (vm._isVue && vm.$parent) { + var tree = []; + var currentRecursiveSequence = 0; + while (vm) { + if (tree.length > 0) { + var last = tree[tree.length - 1]; + if (last.constructor === vm.constructor) { + currentRecursiveSequence++; + vm = vm.$parent; + continue + } else if (currentRecursiveSequence > 0) { + tree[tree.length - 1] = [last, currentRecursiveSequence]; + currentRecursiveSequence = 0; + } + } + tree.push(vm); + vm = vm.$parent; + } + return '\n\nfound in\n\n' + tree + .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm) + ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)") + : formatComponentName(vm))); }) + .join('\n') + } else { + return ("\n\n(found in " + (formatComponentName(vm)) + ")") + } + }; +} + +/* */ + +function handleError (err, vm, info) { + if (config.errorHandler) { + config.errorHandler.call(null, err, vm, info); + } else { + { + warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm); + } + /* istanbul ignore else */ + if (inBrowser && ty
<TRUNCATED>