Evan You 10 лет назад
Родитель
Сommit
79f289a2f2
4 измененных файлов с 47 добавлено и 38 удалено
  1. 44 35
      dist/vue.js
  2. 1 1
      dist/vue.min.js
  3. 1 1
      package.json
  4. 1 1
      src/vue.js

+ 44 - 35
dist/vue.js

@@ -1,5 +1,5 @@
 /*!
- * Vue.js v1.0.3
+ * Vue.js v1.0.4
  * (c) 2015 Evan You
  * Released under the MIT License.
  */
@@ -146,7 +146,7 @@ return /******/ (function(modules) { // webpackBootstrap
 	extend(p, __webpack_require__(65))
 	extend(p, __webpack_require__(66))
 
-	Vue.version = '1.0.3'
+	Vue.version = '1.0.4'
 	module.exports = _.Vue = Vue
 
 	/* istanbul ignore if */
@@ -2409,6 +2409,9 @@ return /******/ (function(modules) { // webpackBootstrap
 	  'if'
 	]
 
+	// default directive priority
+	var DEFAULT_PRIORITY = 1000
+
 	/**
 	 * Compile a template and return a reusable composite link
 	 * function, which recursively contains more link functions
@@ -2491,8 +2494,8 @@ return /******/ (function(modules) { // webpackBootstrap
 	 */
 
 	function directiveComparator (a, b) {
-	  a = a.descriptor.def.priority || 0
-	  b = b.descriptor.def.priority || 0
+	  a = a.descriptor.def.priority || DEFAULT_PRIORITY
+	  b = b.descriptor.def.priority || DEFAULT_PRIORITY
 	  return a > b ? -1 : a === b ? 0 : 1
 	}
 
@@ -2597,16 +2600,17 @@ return /******/ (function(modules) { // webpackBootstrap
 	    }
 	  } else if (("development") !== 'production' && containerAttrs) {
 	    // warn container directives for fragment instances
-	    containerAttrs.forEach(function (attr) {
-	      if (attr.name.indexOf('v-') === 0 || attr.name === 'transition') {
-	        _.warn(
-	          attr.name + ' is ignored on component ' +
-	          '<' + options.el.tagName.toLowerCase() + '> because ' +
-	          'the component is a fragment instance: ' +
-	          'http://vuejs.org/guide/components.html#Fragment_Instance'
-	        )
-	      }
-	    })
+	    var names = containerAttrs.map(function (attr) {
+	      return '"' + attr.name + '"'
+	    }).join(', ')
+	    var plural = containerAttrs.length > 1
+	    _.warn(
+	      'Attribute' + (plural ? 's ' : ' ') + names +
+	      (plural ? ' are' : ' is') + ' ignored on component ' +
+	      '<' + options.el.tagName.toLowerCase() + '> because ' +
+	      'the component is a fragment instance: ' +
+	      'http://vuejs.org/guide/components.html#Fragment_Instance'
+	    )
 	  }
 
 	  return function rootLinkFn (vm, el, scope) {
@@ -3696,8 +3700,8 @@ return /******/ (function(modules) { // webpackBootstrap
 	    var parentScope = this._scope || this.vm
 	    var scope = Object.create(parentScope)
 	    // ref holder for the scope
-	    scope.$refs = {}
-	    scope.$els = {}
+	    scope.$refs = Object.create(parentScope.$refs)
+	    scope.$els = Object.create(parentScope.$els)
 	    // make sure point $parent to parent scope
 	    scope.$parent = parentScope
 	    // for two-way binding on alias
@@ -5058,6 +5062,10 @@ return /******/ (function(modules) { // webpackBootstrap
 	  bind: function () {
 	    var attr = this.arg
 	    var tag = this.el.tagName
+	    // should be deep watch on object mode
+	    if (!attr) {
+	      this.deep = true
+	    }
 	    // handle interpolation bindings
 	    if (this.descriptor.interp) {
 	      // only allow binding on native attributes
@@ -5344,6 +5352,8 @@ return /******/ (function(modules) { // webpackBootstrap
 
 	module.exports = {
 
+	  deep: true,
+
 	  update: function (value) {
 	    if (value && typeof value === 'string') {
 	      this.handleObject(stringToObject(value))
@@ -6154,19 +6164,18 @@ return /******/ (function(modules) { // webpackBootstrap
 	 * getters, so that every nested property inside the object
 	 * is collected as a "deep" dependency.
 	 *
-	 * @param {Object} obj
+	 * @param {*} val
 	 */
 
-	function traverse (obj) {
-	  var key, val, i
-	  for (key in obj) {
-	    val = obj[key]
-	    if (_.isArray(val)) {
-	      i = val.length
-	      while (i--) traverse(val[i])
-	    } else if (_.isObject(val)) {
-	      traverse(val)
-	    }
+	function traverse (val) {
+	  var i, keys
+	  if (_.isArray(val)) {
+	    i = val.length
+	    while (i--) traverse(val[i])
+	  } else if (_.isObject(val)) {
+	    keys = Object.keys(val)
+	    i = keys.length
+	    while (i--) traverse(val[keys[i]])
 	  }
 	}
 
@@ -7112,7 +7121,7 @@ return /******/ (function(modules) { // webpackBootstrap
 
 	p.enterNextTick = function () {
 
-	  // Importnatn hack:
+	  // Important hack:
 	  // in Chrome, if a just-entered element is applied the
 	  // leave class while its interpolated property still has
 	  // a very small value (within one frame), Chrome will
@@ -9457,15 +9466,15 @@ return /******/ (function(modules) { // webpackBootstrap
 	  while (i--) {
 	    key = params[i]
 	    mappedKey = _.camelize(key)
-	    val = _.attr(this.el, key)
+	    val = _.getBindAttr(this.el, key)
 	    if (val != null) {
-	      // static
-	      this.params[mappedKey] = val === '' ? true : val
-	    } else {
 	      // dynamic
-	      val = _.getBindAttr(this.el, key)
+	      this._setupParamWatcher(mappedKey, val)
+	    } else {
+	      // static
+	      val = _.attr(this.el, key)
 	      if (val != null) {
-	        this._setupParamWatcher(mappedKey, val)
+	        this.params[mappedKey] = val === '' ? true : val
 	      }
 	    }
 	  }
@@ -9522,7 +9531,7 @@ return /******/ (function(modules) { // webpackBootstrap
 	      fn.call(scope, scope)
 	    }
 	    if (this.filters) {
-	      handler = this.vm._applyFilters(handler, null, this.filters)
+	      handler = scope._applyFilters(handler, null, this.filters)
 	    }
 	    this.update(handler)
 	    return true

Разница между файлами не показана из-за своего большого размера
+ 1 - 1
dist/vue.min.js


+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "vue",
-  "version": "1.0.3",
+  "version": "1.0.4",
   "author": "Evan You <yyx990803@gmail.com>",
   "license": "MIT",
   "description": "Simple, Fast & Composable MVVM for building interactive interfaces",

+ 1 - 1
src/vue.js

@@ -85,7 +85,7 @@ extend(p, require('./api/dom'))
 extend(p, require('./api/events'))
 extend(p, require('./api/lifecycle'))
 
-Vue.version = '1.0.3'
+Vue.version = '1.0.4'
 module.exports = _.Vue = Vue
 
 /* istanbul ignore if */

Некоторые файлы не были показаны из-за большого количества измененных файлов