[build] 2.0.5

This commit is contained in:
Evan You 2016-11-04 23:47:26 -04:00
parent c67a710b3c
commit b064633951
10 changed files with 200 additions and 157 deletions

45
dist/vue.common.js vendored
View File

@ -1,5 +1,5 @@
/*!
* Vue.js v2.0.4
* Vue.js v2.0.5
* (c) 2014-2016 Evan You
* Released under the MIT License.
*/
@ -1767,6 +1767,7 @@ function lifecycleMixin (Vue) {
if (process.env.NODE_ENV !== 'production') {
observerState.isSettingProps = false;
}
vm.$options.propsData = propsData;
}
// update listeners
if (listeners) {
@ -2190,8 +2191,9 @@ function _createElement (
// unknown or unlisted namespaced elements
// check at runtime because it may get assigned a namespace when its
// parent normalizes children
var childNs = tag === 'foreignObject' ? 'xhtml' : ns;
return new VNode(
tag, data, normalizeChildren(children, ns),
tag, data, normalizeChildren(children, childNs),
undefined, undefined, ns, context
)
}
@ -2257,7 +2259,7 @@ function renderMixin (Vue) {
if (config._isServer) {
throw e
} else {
setTimeout(function () { throw e }, 0);
console.error(e);
}
}
// return previous vnode to prevent render error causing blank component
@ -2847,25 +2849,16 @@ var defaultStrat = function (parentVal, childVal) {
};
/**
* Make sure component options get converted to actual
* constructors.
* Validate component names
*/
function normalizeComponents (options) {
if (options.components) {
var components = options.components;
var normalized = options.components = {};
var def;
for (var key in components) {
function checkComponents (options) {
for (var key in options.components) {
var lower = key.toLowerCase();
if (isBuiltInTag(lower) || config.isReservedTag(lower)) {
process.env.NODE_ENV !== 'production' && warn(
warn(
'Do not use built-in or reserved HTML elements as component ' +
'id: ' + key
);
continue
}
def = components[key];
normalized[key] = isPlainObject(def) ? Vue$1.extend(def) : def;
}
}
}
@ -2926,7 +2919,9 @@ function mergeOptions (
child,
vm
) {
normalizeComponents(child);
if (process.env.NODE_ENV !== 'production') {
checkComponents(child);
}
normalizeProps(child);
normalizeDirectives(child);
var extendsFrom = child.extends;
@ -3029,7 +3024,7 @@ function validateProp (
/**
* Get the default value of a prop.
*/
function getPropDefaultValue (vm, prop, name) {
function getPropDefaultValue (vm, prop, key) {
// no default, return undefined
if (!hasOwn(prop, 'default')) {
return undefined
@ -3038,12 +3033,19 @@ function getPropDefaultValue (vm, prop, name) {
// warn against non-factory defaults for Object & Array
if (isObject(def)) {
process.env.NODE_ENV !== 'production' && warn(
'Invalid default value for prop "' + name + '": ' +
'Invalid default value for prop "' + key + '": ' +
'Props with type Object/Array must use a factory function ' +
'to return the default value.',
vm
);
}
// the raw prop value was also undefined from previous render,
// return previous default value to avoid unnecessary watcher trigger
if (vm && vm.$options.propsData &&
vm.$options.propsData[key] === undefined &&
vm[key] !== undefined) {
return vm[key]
}
// call factory function for non-Function types
return typeof def === 'function' && prop.type !== Function
? def.call(vm)
@ -3408,7 +3410,7 @@ Object.defineProperty(Vue$1.prototype, '$isServer', {
get: function () { return config._isServer; }
});
Vue$1.version = '2.0.4';
Vue$1.version = '2.0.5';
/* */
@ -3534,7 +3536,8 @@ function stringifyClass (value) {
var namespaceMap = {
svg: 'http://www.w3.org/2000/svg',
math: 'http://www.w3.org/1998/Math/MathML'
math: 'http://www.w3.org/1998/Math/MathML',
xhtml: 'http://www.w3.org/1999/xhtm'
};
var isHTMLTag = makeMap(

69
dist/vue.js vendored
View File

@ -1,5 +1,5 @@
/*!
* Vue.js v2.0.4
* Vue.js v2.0.5
* (c) 2014-2016 Evan You
* Released under the MIT License.
*/
@ -1769,6 +1769,7 @@ function lifecycleMixin (Vue) {
{
observerState.isSettingProps = false;
}
vm.$options.propsData = propsData;
}
// update listeners
if (listeners) {
@ -2192,8 +2193,9 @@ function _createElement (
// unknown or unlisted namespaced elements
// check at runtime because it may get assigned a namespace when its
// parent normalizes children
var childNs = tag === 'foreignObject' ? 'xhtml' : ns;
return new VNode(
tag, data, normalizeChildren(children, ns),
tag, data, normalizeChildren(children, childNs),
undefined, undefined, ns, context
)
}
@ -2259,7 +2261,7 @@ function renderMixin (Vue) {
if (config._isServer) {
throw e
} else {
setTimeout(function () { throw e }, 0);
console.error(e);
}
}
// return previous vnode to prevent render error causing blank component
@ -2847,25 +2849,16 @@ var defaultStrat = function (parentVal, childVal) {
};
/**
* Make sure component options get converted to actual
* constructors.
* Validate component names
*/
function normalizeComponents (options) {
if (options.components) {
var components = options.components;
var normalized = options.components = {};
var def;
for (var key in components) {
function checkComponents (options) {
for (var key in options.components) {
var lower = key.toLowerCase();
if (isBuiltInTag(lower) || config.isReservedTag(lower)) {
"development" !== 'production' && warn(
warn(
'Do not use built-in or reserved HTML elements as component ' +
'id: ' + key
);
continue
}
def = components[key];
normalized[key] = isPlainObject(def) ? Vue$2.extend(def) : def;
}
}
}
@ -2926,7 +2919,9 @@ function mergeOptions (
child,
vm
) {
normalizeComponents(child);
{
checkComponents(child);
}
normalizeProps(child);
normalizeDirectives(child);
var extendsFrom = child.extends;
@ -3029,7 +3024,7 @@ function validateProp (
/**
* Get the default value of a prop.
*/
function getPropDefaultValue (vm, prop, name) {
function getPropDefaultValue (vm, prop, key) {
// no default, return undefined
if (!hasOwn(prop, 'default')) {
return undefined
@ -3038,12 +3033,19 @@ function getPropDefaultValue (vm, prop, name) {
// warn against non-factory defaults for Object & Array
if (isObject(def)) {
"development" !== 'production' && warn(
'Invalid default value for prop "' + name + '": ' +
'Invalid default value for prop "' + key + '": ' +
'Props with type Object/Array must use a factory function ' +
'to return the default value.',
vm
);
}
// the raw prop value was also undefined from previous render,
// return previous default value to avoid unnecessary watcher trigger
if (vm && vm.$options.propsData &&
vm.$options.propsData[key] === undefined &&
vm[key] !== undefined) {
return vm[key]
}
// call factory function for non-Function types
return typeof def === 'function' && prop.type !== Function
? def.call(vm)
@ -3408,7 +3410,7 @@ Object.defineProperty(Vue$2.prototype, '$isServer', {
get: function () { return config._isServer; }
});
Vue$2.version = '2.0.4';
Vue$2.version = '2.0.5';
/* */
@ -3534,7 +3536,8 @@ function stringifyClass (value) {
var namespaceMap = {
svg: 'http://www.w3.org/2000/svg',
math: 'http://www.w3.org/1998/Math/MathML'
math: 'http://www.w3.org/1998/Math/MathML',
xhtml: 'http://www.w3.org/1999/xhtm'
};
var isHTMLTag = makeMap(
@ -5724,6 +5727,8 @@ var startTagOpen = new RegExp('^<' + qnameCapture);
var startTagClose = /^\s*(\/?)>/;
var endTag = new RegExp('^<\\/' + qnameCapture + '[^>]*>');
var doctype = /^<!DOCTYPE [^>]+>/i;
var comment = /^<!--/;
var conditionalComment = /^<!\[/;
var IS_REGEX_CAPTURING_BROKEN = false;
'x'.replace(/x(.)?/g, function (m, g) {
@ -5781,7 +5786,7 @@ function parseHTML (html, options) {
var textEnd = html.indexOf('<');
if (textEnd === 0) {
// Comment:
if (/^<!--/.test(html)) {
if (comment.test(html)) {
var commentEnd = html.indexOf('-->');
if (commentEnd >= 0) {
@ -5791,7 +5796,7 @@ function parseHTML (html, options) {
}
// http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment
if (/^<!\[/.test(html)) {
if (conditionalComment.test(html)) {
var conditionalEnd = html.indexOf(']>');
if (conditionalEnd >= 0) {
@ -5824,12 +5829,19 @@ function parseHTML (html, options) {
}
}
var text = void 0, rest$1 = void 0;
var text = void 0, rest$1 = void 0, next = void 0;
if (textEnd > 0) {
rest$1 = html.slice(textEnd);
while (!startTagOpen.test(rest$1) && !endTag.test(rest$1)) {
while (
!endTag.test(rest$1) &&
!startTagOpen.test(rest$1) &&
!comment.test(rest$1) &&
!conditionalComment.test(rest$1)
) {
// < in plain text, be forgiving and treat it as text
textEnd += rest$1.indexOf('<', 1);
next = rest$1.indexOf('<', 1);
if (next < 0) { break }
textEnd += next;
rest$1 = html.slice(textEnd);
}
text = html.substring(0, textEnd);
@ -5865,8 +5877,9 @@ function parseHTML (html, options) {
parseEndTag('</' + stackedTag + '>', stackedTag, index - endTagLength, index);
}
if (html === last) {
throw new Error('Error parsing template:\n\n' + html)
if (html === last && options.chars) {
options.chars(html);
break
}
}

8
dist/vue.min.js vendored

File diff suppressed because one or more lines are too long

45
dist/vue.runtime.js vendored
View File

@ -1,5 +1,5 @@
/*!
* Vue.js v2.0.4
* Vue.js v2.0.5
* (c) 2014-2016 Evan You
* Released under the MIT License.
*/
@ -1771,6 +1771,7 @@ function lifecycleMixin (Vue) {
if (process.env.NODE_ENV !== 'production') {
observerState.isSettingProps = false;
}
vm.$options.propsData = propsData;
}
// update listeners
if (listeners) {
@ -2194,8 +2195,9 @@ function _createElement (
// unknown or unlisted namespaced elements
// check at runtime because it may get assigned a namespace when its
// parent normalizes children
var childNs = tag === 'foreignObject' ? 'xhtml' : ns;
return new VNode(
tag, data, normalizeChildren(children, ns),
tag, data, normalizeChildren(children, childNs),
undefined, undefined, ns, context
)
}
@ -2261,7 +2263,7 @@ function renderMixin (Vue) {
if (config._isServer) {
throw e
} else {
setTimeout(function () { throw e }, 0);
console.error(e);
}
}
// return previous vnode to prevent render error causing blank component
@ -2851,25 +2853,16 @@ var defaultStrat = function (parentVal, childVal) {
};
/**
* Make sure component options get converted to actual
* constructors.
* Validate component names
*/
function normalizeComponents (options) {
if (options.components) {
var components = options.components;
var normalized = options.components = {};
var def;
for (var key in components) {
function checkComponents (options) {
for (var key in options.components) {
var lower = key.toLowerCase();
if (isBuiltInTag(lower) || config.isReservedTag(lower)) {
process.env.NODE_ENV !== 'production' && warn(
warn(
'Do not use built-in or reserved HTML elements as component ' +
'id: ' + key
);
continue
}
def = components[key];
normalized[key] = isPlainObject(def) ? Vue$1.extend(def) : def;
}
}
}
@ -2930,7 +2923,9 @@ function mergeOptions (
child,
vm
) {
normalizeComponents(child);
if (process.env.NODE_ENV !== 'production') {
checkComponents(child);
}
normalizeProps(child);
normalizeDirectives(child);
var extendsFrom = child.extends;
@ -3033,7 +3028,7 @@ function validateProp (
/**
* Get the default value of a prop.
*/
function getPropDefaultValue (vm, prop, name) {
function getPropDefaultValue (vm, prop, key) {
// no default, return undefined
if (!hasOwn(prop, 'default')) {
return undefined
@ -3042,12 +3037,19 @@ function getPropDefaultValue (vm, prop, name) {
// warn against non-factory defaults for Object & Array
if (isObject(def)) {
process.env.NODE_ENV !== 'production' && warn(
'Invalid default value for prop "' + name + '": ' +
'Invalid default value for prop "' + key + '": ' +
'Props with type Object/Array must use a factory function ' +
'to return the default value.',
vm
);
}
// the raw prop value was also undefined from previous render,
// return previous default value to avoid unnecessary watcher trigger
if (vm && vm.$options.propsData &&
vm.$options.propsData[key] === undefined &&
vm[key] !== undefined) {
return vm[key]
}
// call factory function for non-Function types
return typeof def === 'function' && prop.type !== Function
? def.call(vm)
@ -3412,7 +3414,7 @@ Object.defineProperty(Vue$1.prototype, '$isServer', {
get: function () { return config._isServer; }
});
Vue$1.version = '2.0.4';
Vue$1.version = '2.0.5';
/* */
@ -3538,7 +3540,8 @@ function stringifyClass (value) {
var namespaceMap = {
svg: 'http://www.w3.org/2000/svg',
math: 'http://www.w3.org/1998/Math/MathML'
math: 'http://www.w3.org/1998/Math/MathML',
xhtml: 'http://www.w3.org/1999/xhtm'
};
var isHTMLTag = makeMap(

File diff suppressed because one or more lines are too long

View File

@ -2044,8 +2044,9 @@ function _createElement (
// unknown or unlisted namespaced elements
// check at runtime because it may get assigned a namespace when its
// parent normalizes children
var childNs = tag === 'foreignObject' ? 'xhtml' : ns;
return new VNode(
tag, data, normalizeChildren(children, ns),
tag, data, normalizeChildren(children, childNs),
undefined, undefined, ns, context
)
}
@ -2111,7 +2112,7 @@ function renderMixin (Vue) {
if (config._isServer) {
throw e
} else {
setTimeout(function () { throw e }, 0);
console.error(e);
}
}
// return previous vnode to prevent render error causing blank component
@ -2446,6 +2447,7 @@ function lifecycleMixin (Vue) {
if (process.env.NODE_ENV !== 'production') {
observerState.isSettingProps = false;
}
vm$$1.$options.propsData = propsData;
}
// update listeners
if (listeners) {
@ -2593,7 +2595,7 @@ Object.defineProperty(Vue.prototype, '$isServer', {
get: function () { return config._isServer; }
});
Vue.version = '2.0.4';
Vue.version = '2.0.5';
/* */
@ -3167,25 +3169,16 @@ var defaultStrat = function (parentVal, childVal) {
};
/**
* Make sure component options get converted to actual
* constructors.
* Validate component names
*/
function normalizeComponents (options) {
if (options.components) {
var components = options.components;
var normalized = options.components = {};
var def;
for (var key in components) {
function checkComponents (options) {
for (var key in options.components) {
var lower = key.toLowerCase();
if (isBuiltInTag(lower) || config.isReservedTag(lower)) {
process.env.NODE_ENV !== 'production' && warn(
warn(
'Do not use built-in or reserved HTML elements as component ' +
'id: ' + key
);
continue
}
def = components[key];
normalized[key] = isPlainObject(def) ? Vue.extend(def) : def;
}
}
}
@ -3246,7 +3239,9 @@ function mergeOptions (
child,
vm$$1
) {
normalizeComponents(child);
if (process.env.NODE_ENV !== 'production') {
checkComponents(child);
}
normalizeProps(child);
normalizeDirectives(child);
var extendsFrom = child.extends;
@ -3349,7 +3344,7 @@ function validateProp (
/**
* Get the default value of a prop.
*/
function getPropDefaultValue (vm$$1, prop, name) {
function getPropDefaultValue (vm$$1, prop, key) {
// no default, return undefined
if (!hasOwn(prop, 'default')) {
return undefined
@ -3358,12 +3353,19 @@ function getPropDefaultValue (vm$$1, prop, name) {
// warn against non-factory defaults for Object & Array
if (isObject(def)) {
process.env.NODE_ENV !== 'production' && warn(
'Invalid default value for prop "' + name + '": ' +
'Invalid default value for prop "' + key + '": ' +
'Props with type Object/Array must use a factory function ' +
'to return the default value.',
vm$$1
);
}
// the raw prop value was also undefined from previous render,
// return previous default value to avoid unnecessary watcher trigger
if (vm$$1 && vm$$1.$options.propsData &&
vm$$1.$options.propsData[key] === undefined &&
vm$$1[key] !== undefined) {
return vm$$1[key]
}
// call factory function for non-Function types
return typeof def === 'function' && prop.type !== Function
? def.call(vm$$1)
@ -3763,6 +3765,8 @@ var startTagOpen = new RegExp('^<' + qnameCapture);
var startTagClose = /^\s*(\/?)>/;
var endTag = new RegExp('^<\\/' + qnameCapture + '[^>]*>');
var doctype = /^<!DOCTYPE [^>]+>/i;
var comment = /^<!--/;
var conditionalComment = /^<!\[/;
var IS_REGEX_CAPTURING_BROKEN = false;
'x'.replace(/x(.)?/g, function (m, g) {
@ -3820,7 +3824,7 @@ function parseHTML (html, options) {
var textEnd = html.indexOf('<');
if (textEnd === 0) {
// Comment:
if (/^<!--/.test(html)) {
if (comment.test(html)) {
var commentEnd = html.indexOf('-->');
if (commentEnd >= 0) {
@ -3830,7 +3834,7 @@ function parseHTML (html, options) {
}
// http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment
if (/^<!\[/.test(html)) {
if (conditionalComment.test(html)) {
var conditionalEnd = html.indexOf(']>');
if (conditionalEnd >= 0) {
@ -3863,12 +3867,19 @@ function parseHTML (html, options) {
}
}
var text = void 0, rest$1 = void 0;
var text = void 0, rest$1 = void 0, next = void 0;
if (textEnd > 0) {
rest$1 = html.slice(textEnd);
while (!startTagOpen.test(rest$1) && !endTag.test(rest$1)) {
while (
!endTag.test(rest$1) &&
!startTagOpen.test(rest$1) &&
!comment.test(rest$1) &&
!conditionalComment.test(rest$1)
) {
// < in plain text, be forgiving and treat it as text
textEnd += rest$1.indexOf('<', 1);
next = rest$1.indexOf('<', 1);
if (next < 0) { break }
textEnd += next;
rest$1 = html.slice(textEnd);
}
text = html.substring(0, textEnd);
@ -3904,8 +3915,9 @@ function parseHTML (html, options) {
parseEndTag('</' + stackedTag + '>', stackedTag, index - endTagLength, index);
}
if (html === last) {
throw new Error('Error parsing template:\n\n' + html)
if (html === last && options.chars) {
options.chars(html);
break
}
}

View File

@ -1,6 +1,6 @@
{
"name": "vue-server-renderer",
"version": "2.0.4",
"version": "2.0.5",
"description": "server renderer for Vue 2.0",
"main": "index.js",
"repository": {

View File

@ -1919,8 +1919,9 @@ function _createElement (
// unknown or unlisted namespaced elements
// check at runtime because it may get assigned a namespace when its
// parent normalizes children
var childNs = tag === 'foreignObject' ? 'xhtml' : ns;
return new VNode(
tag, data, normalizeChildren(children, ns),
tag, data, normalizeChildren(children, childNs),
undefined, undefined, ns, context
)
}
@ -1986,7 +1987,7 @@ function renderMixin (Vue) {
if (config._isServer) {
throw e
} else {
setTimeout(function () { throw e }, 0);
console.error(e);
}
}
// return previous vnode to prevent render error causing blank component
@ -2321,6 +2322,7 @@ function lifecycleMixin (Vue) {
if (process.env.NODE_ENV !== 'production') {
observerState.isSettingProps = false;
}
vm.$options.propsData = propsData;
}
// update listeners
if (listeners) {
@ -2468,7 +2470,7 @@ Object.defineProperty(Vue.prototype, '$isServer', {
get: function () { return config._isServer; }
});
Vue.version = '2.0.4';
Vue.version = '2.0.5';
/* */
@ -3042,25 +3044,16 @@ var defaultStrat = function (parentVal, childVal) {
};
/**
* Make sure component options get converted to actual
* constructors.
* Validate component names
*/
function normalizeComponents (options) {
if (options.components) {
var components = options.components;
var normalized = options.components = {};
var def;
for (var key in components) {
function checkComponents (options) {
for (var key in options.components) {
var lower = key.toLowerCase();
if (isBuiltInTag(lower) || config.isReservedTag(lower)) {
process.env.NODE_ENV !== 'production' && warn(
warn(
'Do not use built-in or reserved HTML elements as component ' +
'id: ' + key
);
continue
}
def = components[key];
normalized[key] = isPlainObject(def) ? Vue.extend(def) : def;
}
}
}
@ -3121,7 +3114,9 @@ function mergeOptions (
child,
vm
) {
normalizeComponents(child);
if (process.env.NODE_ENV !== 'production') {
checkComponents(child);
}
normalizeProps(child);
normalizeDirectives(child);
var extendsFrom = child.extends;
@ -3224,7 +3219,7 @@ function validateProp (
/**
* Get the default value of a prop.
*/
function getPropDefaultValue (vm, prop, name) {
function getPropDefaultValue (vm, prop, key) {
// no default, return undefined
if (!hasOwn(prop, 'default')) {
return undefined
@ -3233,12 +3228,19 @@ function getPropDefaultValue (vm, prop, name) {
// warn against non-factory defaults for Object & Array
if (isObject(def)) {
process.env.NODE_ENV !== 'production' && warn(
'Invalid default value for prop "' + name + '": ' +
'Invalid default value for prop "' + key + '": ' +
'Props with type Object/Array must use a factory function ' +
'to return the default value.',
vm
);
}
// the raw prop value was also undefined from previous render,
// return previous default value to avoid unnecessary watcher trigger
if (vm && vm.$options.propsData &&
vm.$options.propsData[key] === undefined &&
vm[key] !== undefined) {
return vm[key]
}
// call factory function for non-Function types
return typeof def === 'function' && prop.type !== Function
? def.call(vm)
@ -3603,6 +3605,8 @@ var startTagOpen = new RegExp('^<' + qnameCapture);
var startTagClose = /^\s*(\/?)>/;
var endTag = new RegExp('^<\\/' + qnameCapture + '[^>]*>');
var doctype = /^<!DOCTYPE [^>]+>/i;
var comment = /^<!--/;
var conditionalComment = /^<!\[/;
var IS_REGEX_CAPTURING_BROKEN = false;
'x'.replace(/x(.)?/g, function (m, g) {
@ -3660,7 +3664,7 @@ function parseHTML (html, options) {
var textEnd = html.indexOf('<');
if (textEnd === 0) {
// Comment:
if (/^<!--/.test(html)) {
if (comment.test(html)) {
var commentEnd = html.indexOf('-->');
if (commentEnd >= 0) {
@ -3670,7 +3674,7 @@ function parseHTML (html, options) {
}
// http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment
if (/^<!\[/.test(html)) {
if (conditionalComment.test(html)) {
var conditionalEnd = html.indexOf(']>');
if (conditionalEnd >= 0) {
@ -3703,12 +3707,19 @@ function parseHTML (html, options) {
}
}
var text = void 0, rest$1 = void 0;
var text = void 0, rest$1 = void 0, next = void 0;
if (textEnd > 0) {
rest$1 = html.slice(textEnd);
while (!startTagOpen.test(rest$1) && !endTag.test(rest$1)) {
while (
!endTag.test(rest$1) &&
!startTagOpen.test(rest$1) &&
!comment.test(rest$1) &&
!conditionalComment.test(rest$1)
) {
// < in plain text, be forgiving and treat it as text
textEnd += rest$1.indexOf('<', 1);
next = rest$1.indexOf('<', 1);
if (next < 0) { break }
textEnd += next;
rest$1 = html.slice(textEnd);
}
text = html.substring(0, textEnd);
@ -3744,8 +3755,9 @@ function parseHTML (html, options) {
parseEndTag('</' + stackedTag + '>', stackedTag, index - endTagLength, index);
}
if (html === last) {
throw new Error('Error parsing template:\n\n' + html)
if (html === last && options.chars) {
options.chars(html);
break
}
}

View File

@ -1,6 +1,6 @@
{
"name": "vue-template-compiler",
"version": "2.0.4",
"version": "2.0.5",
"description": "template compiler for Vue 2.0",
"main": "index.js",
"repository": {

View File

@ -8,6 +8,6 @@ Object.defineProperty(Vue.prototype, '$isServer', {
get: () => config._isServer
})
Vue.version = '2.0.4'
Vue.version = '2.0.5'
export default Vue