File tree Expand file tree Collapse file tree 4 files changed +10
-12
lines changed Expand file tree Collapse file tree 4 files changed +10
-12
lines changed Original file line number Diff line number Diff line change @@ -165,8 +165,10 @@ function makePropsLinkFn (props) {
165
165
}
166
166
} else if ( prop . optimizedLiteral ) {
167
167
// optimized literal, cast it and just set once
168
- raw = _ . stripQuotes ( raw )
169
- value = _ . toBoolean ( _ . toNumber ( raw ) )
168
+ var stripped = _ . stripQuotes ( raw )
169
+ value = stripped === raw
170
+ ? _ . toBoolean ( _ . toNumber ( raw ) )
171
+ : stripped
170
172
_ . initProp ( vm , prop , value )
171
173
} else {
172
174
// string literal, but we need to cater for
Original file line number Diff line number Diff line change @@ -662,10 +662,6 @@ function compileDirectives (attrs, options) {
662
662
}
663
663
664
664
if ( dirDef ) {
665
- if ( _ . isLiteral ( value ) ) {
666
- value = _ . stripQuotes ( value )
667
- modifiers . literal = true
668
- }
669
665
pushDir ( dirName , dirDef )
670
666
}
671
667
}
Original file line number Diff line number Diff line change @@ -495,11 +495,8 @@ module.exports = {
495
495
}
496
496
return res
497
497
} else {
498
- var type = typeof value
499
- if ( type === 'number' ) {
498
+ if ( typeof value === 'number' ) {
500
499
value = range ( value )
501
- } else if ( type === 'string' ) {
502
- value = _ . toArray ( value )
503
500
}
504
501
return value || [ ]
505
502
}
Original file line number Diff line number Diff line change @@ -90,7 +90,6 @@ if (_.inBrowser) {
90
90
expect ( args [ 0 ] . name ) . toBe ( 'b' )
91
91
expect ( args [ 0 ] . expression ) . toBe ( '1' )
92
92
expect ( args [ 0 ] . def ) . toBe ( defB )
93
- expect ( args [ 0 ] . modifiers . literal ) . toBe ( true )
94
93
expect ( args [ 1 ] ) . toBe ( el . firstChild )
95
94
// 4 (explicit literal)
96
95
args = vm . _bindDir . calls . argsFor ( 3 )
@@ -245,12 +244,14 @@ if (_.inBrowser) {
245
244
testTwoWay : null ,
246
245
twoWayWarn : null ,
247
246
testOneTime : null ,
248
- optimizeLiteral : null
247
+ optimizeLiteral : null ,
248
+ optimizeLiteralStr : null
249
249
}
250
250
el . innerHTML = '<div ' +
251
251
'v-bind:test-normal="a" ' +
252
252
'test-literal="1" ' +
253
253
':optimize-literal="1" ' +
254
+ ':optimize-literal-str="\'true\'"' +
254
255
':test-two-way.sync="a" ' +
255
256
':two-way-warn.sync="a + 1" ' +
256
257
':test-one-time.once="a"></div>'
@@ -261,6 +262,8 @@ if (_.inBrowser) {
261
262
expect ( vm . _data . testLiteral ) . toBe ( '1' )
262
263
expect ( vm . optimizeLiteral ) . toBe ( 1 )
263
264
expect ( vm . _data . optimizeLiteral ) . toBe ( 1 )
265
+ expect ( vm . optimizeLiteralStr ) . toBe ( 'true' )
266
+ expect ( vm . _data . optimizeLiteralStr ) . toBe ( 'true' )
264
267
// one time
265
268
expect ( vm . testOneTime ) . toBe ( 'from parent: a' )
266
269
expect ( vm . _data . testOneTime ) . toBe ( 'from parent: a' )
You can’t perform that action at this time.
0 commit comments