Skip to content

Commit e78fb82

Browse files
committed
Release-v0.7.2
1 parent 331bcc6 commit e78fb82

File tree

9 files changed

+94
-67
lines changed

9 files changed

+94
-67
lines changed

Gruntfile.js

+20-29
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
var fs = require('fs'),
2-
path = require('path'),
3-
semver = require('semver')
4-
51
module.exports = function( grunt ) {
62

73
grunt.initConfig({
@@ -17,7 +13,7 @@ module.exports = function( grunt ) {
1713
src: '.',
1814
dest: 'dist'
1915
},
20-
unit: {
16+
test: {
2117
options: {
2218
name: 'vue.test'
2319
},
@@ -53,13 +49,7 @@ module.exports = function( grunt ) {
5349
build: {
5450
options: {
5551
compress: true,
56-
mangle: true,
57-
banner:
58-
'/*\n' +
59-
' VueJS v<%= version %>\n' +
60-
' (c) 2013 Evan You\n' +
61-
' License: MIT\n' +
62-
'*/\n'
52+
mangle: true
6353
},
6454
files: {
6555
'dist/vue.min.js': 'dist/vue.js'
@@ -68,51 +58,52 @@ module.exports = function( grunt ) {
6858
},
6959

7060
watch: {
61+
options: {
62+
nospawn: true
63+
},
7164
dev: {
72-
files: ['src/**/*.js', 'component.json'],
65+
files: ['src/**/*.js', './component.json'],
7366
tasks: ['componentbuild', 'jsc']
7467
}
7568
}
7669

7770
})
7871

79-
grunt.loadNpmTasks( 'grunt-contrib-watch' )
80-
grunt.loadNpmTasks( 'grunt-contrib-jshint' )
81-
grunt.loadNpmTasks( 'grunt-contrib-uglify' )
82-
grunt.loadNpmTasks( 'grunt-component-build' )
83-
grunt.loadNpmTasks( 'grunt-mocha' )
72+
// load npm tasks
73+
require('load-grunt-tasks')(grunt)
8474

75+
// load custom tasks
8576
grunt.file.recurse('tasks', function (path) {
8677
require('./' + path)(grunt)
8778
})
8879

89-
grunt.registerTask( 'build', [
90-
'componentbuild:build',
80+
grunt.registerTask( 'dist', [
9181
'uglify',
82+
'banner',
9283
'size'
9384
])
9485

86+
grunt.registerTask( 'build', [
87+
'componentbuild:build',
88+
'dist'
89+
])
90+
9591
grunt.registerTask( 'unit', [
96-
'componentbuild:unit',
92+
'componentbuild:test',
9793
'jsc',
9894
'mocha'
9995
])
10096

101-
grunt.registerTask( 'e2e', [
102-
'componentbuild:build',
103-
'casper'
104-
])
105-
10697
grunt.registerTask( 'test', [
10798
'unit',
108-
'e2e'
99+
'componentbuild:build',
100+
'casper'
109101
])
110102

111103
grunt.registerTask( 'default', [
112104
'jshint',
113105
'test',
114-
'uglify',
115-
'size'
106+
'dist'
116107
])
117108

118109
}

bower.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
{
22
"name": "vue",
3-
"version": "0.7.1",
3+
"version": "0.7.2",
44
"main": "dist/vue.js",
55
"ignore": [
66
".*",
77
"examples",
88
"src",
99
"test",
10+
"tasks",
1011
"Gruntfile.js",
1112
"*.json",
1213
"*.md"

component.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vue",
3-
"version": "0.7.1",
3+
"version": "0.7.2",
44
"main": "src/main.js",
55
"description": "Data-driven View Models",
66
"keywords": ["mvvm", "framework", "data binding"],

dist/vue.js

+26-14
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
/*
2+
VueJS v0.7.2
3+
(c) 2013 Evan You
4+
License: MIT
5+
*/
16
;(function(){
27

38
/**
@@ -778,6 +783,9 @@ var utils = module.exports = {
778783
warn: function() {
779784
if (!config.silent && console) {
780785
console.warn(join.call(arguments, ' '))
786+
if (config.debug) {
787+
console.trace()
788+
}
781789
}
782790
},
783791

@@ -1262,25 +1270,27 @@ CompilerProto.define = function (key, binding) {
12621270
log(' defined root binding: ' + key)
12631271

12641272
var compiler = this,
1265-
data = compiler.data,
1266-
vm = compiler.vm,
1267-
value = binding.value = data[key] // save the value before redefinening it
1268-
1269-
if (utils.typeOf(value) === 'Object' && value.$get) {
1270-
compiler.markComputed(binding)
1271-
}
1273+
data = compiler.data,
1274+
vm = compiler.vm,
1275+
ob = data.__observer__
12721276

12731277
if (!(key in data)) {
12741278
data[key] = undefined
12751279
}
12761280

1277-
// if the data object is already observed, that means
1278-
// this binding is created late. we need to observe it now.
1279-
if (data.__observer__) {
1281+
// if the data object is already observed, but the key
1282+
// is not observed, we need to add it to the observed keys.
1283+
if (ob && !(key in ob.values)) {
12801284
Observer.convert(data, key)
12811285
}
12821286

1287+
var value = binding.value = data[key]
1288+
if (utils.typeOf(value) === 'Object' && value.$get) {
1289+
compiler.markComputed(binding)
1290+
}
1291+
12831292
Object.defineProperty(vm, key, {
1293+
enumerable: !binding.isComputed,
12841294
get: binding.isComputed
12851295
? function () {
12861296
return compiler.data[key].$get()
@@ -1821,14 +1831,16 @@ function convert (obj, key) {
18211831
if ((keyPrefix === '$' || keyPrefix === '_') && key !== '$index') {
18221832
return
18231833
}
1824-
var observer = obj.__observer__,
1825-
val = obj[key],
1826-
values = observer.values
1827-
values[key] = val
18281834
// emit set on bind
18291835
// this means when an object is observed it will emit
18301836
// a first batch of set events.
1837+
var observer = obj.__observer__,
1838+
values = observer.values,
1839+
val = values[key] = obj[key]
18311840
observer.emit('set', key, val)
1841+
if (Array.isArray(val)) {
1842+
observer.emit('set', key + '.length', val.length)
1843+
}
18321844
Object.defineProperty(obj, key, {
18331845
get: function () {
18341846
var value = values[key]

dist/vue.min.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vue",
3-
"version": "0.7.1",
3+
"version": "0.7.2",
44
"author": {
55
"name": "Evan You",
66
"email": "yyx990803@gmail.com",
@@ -25,12 +25,13 @@
2525
"grunt": "~0.4.2",
2626
"grunt-contrib-watch": "~0.5.3",
2727
"grunt-component-build": "~0.4.1",
28-
"grunt-contrib-jshint": "~0.7.1",
28+
"grunt-contrib-jshint": "~0.8.0",
2929
"grunt-contrib-uglify": "~0.2.7",
3030
"grunt-mocha": "~0.4.6",
3131
"jscoverage": "~0.3.8",
32-
"jshint-stylish": "0.1.3",
32+
"jshint-stylish": "~0.1.4",
3333
"semver": "~2.2.1",
34-
"shell-task": "~0.1.1"
34+
"shell-task": "~0.1.1",
35+
"load-grunt-tasks": "~0.2.1"
3536
}
3637
}

tasks/banner.js

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
var fs = require('fs')
2+
3+
var bannerText =
4+
'/*\n' +
5+
' VueJS v<%= version %>\n' +
6+
' (c) 2013 Evan You\n' +
7+
' License: MIT\n' +
8+
'*/\n'
9+
10+
module.exports = function (grunt) {
11+
12+
grunt.registerTask('banner', function () {
13+
var done = this.async(),
14+
banner = new Buffer(grunt.template.process(bannerText)),
15+
written = 0
16+
addBanner('dist/vue.js', banner, next)
17+
addBanner('dist/vue.min.js', banner, next)
18+
function next () {
19+
if (written) return done()
20+
written++
21+
}
22+
})
23+
24+
function addBanner (file, banner, next) {
25+
fs.readFile(file, function (err, buf) {
26+
fs.writeFile(file, Buffer.concat([banner, buf]), next)
27+
})
28+
}
29+
}

tasks/jsc.js

+8-14
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,13 @@
1-
var fs = require('fs')
1+
var fs = require('fs'),
2+
jsc = require('jscoverage')
23

34
module.exports = function (grunt) {
45
grunt.registerTask( 'jsc', function () {
5-
var done = this.async()
6-
grunt.util.spawn({
7-
cmd: './node_modules/jscoverage/bin/jscoverage',
8-
args: ['./test/vue.test.js'],
9-
opts: {
10-
stdio: 'inherit'
11-
}
12-
}, function (err, res) {
13-
if (err) grunt.fail.fatal(res.stdout || 'Jscoverage instrumentation failed')
14-
grunt.log.writeln(res.stdout)
15-
fs.unlinkSync('./test/vue.test.js')
16-
done()
17-
})
6+
jsc.processFile(
7+
'./test/vue.test.js',
8+
'./test/vue.test-cov.js',
9+
null, {}
10+
)
11+
fs.unlink('./test/vue.test.js', this.async())
1812
})
1913
}

tasks/release.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,7 @@ module.exports = function (grunt) {
5252
'jshint',
5353
'test',
5454
'version:' + next,
55-
'uglify',
56-
'size',
55+
'dist',
5756
'git:' + next
5857
])
5958
}

0 commit comments

Comments
 (0)