Преглед изворни кода

fix literal prop handling for negative numbers (fix #2242)

Evan You пре 10 година
родитељ
комит
a257d02f58
2 измењених фајлова са 5 додато и 1 уклоњено
  1. 1 1
      src/util/lang.js
  2. 4 0
      test/unit/specs/compiler/compile_spec.js

+ 1 - 1
src/util/lang.js

@@ -82,7 +82,7 @@ export function hasOwn (obj, key) {
  * @return {Boolean}
  */
 
-var literalValueRE = /^\s?(true|false|[\d\.]+|'[^']*'|"[^"]*")\s?$/
+var literalValueRE = /^\s?(true|false|-?[\d\.]+|'[^']*'|"[^"]*")\s?$/
 export function isLiteral (exp) {
   return literalValueRE.test(exp)
 }

+ 4 - 0
test/unit/specs/compiler/compile_spec.js

@@ -277,6 +277,7 @@ describe('Compile', function () {
       testOneTime: null,
       optimizeLiteral: null,
       optimizeLiteralStr: null,
+      optimizeLiteralNegativeNumber: null,
       literalWithFilter: null
     }
     el.innerHTML = '<div ' +
@@ -285,6 +286,7 @@ describe('Compile', function () {
       'test-boolean ' +
       ':optimize-literal="1" ' +
       ':optimize-literal-str="\'true\'"' +
+      ':optimize-literal-negative-number="-1"' +
       ':test-two-way.sync="a" ' +
       ':two-way-warn.sync="a + 1" ' +
       ':test-one-time.once="a" ' +
@@ -303,6 +305,8 @@ describe('Compile', function () {
     expect(vm._data.optimizeLiteral).toBe(1)
     expect(vm.optimizeLiteralStr).toBe('true')
     expect(vm._data.optimizeLiteralStr).toBe('true')
+    expect(vm.optimizeLiteralNegativeNumber).toBe(-1)
+    expect(vm._data.optimizeLiteralNegativeNumber).toBe(-1)
     // one time
     expect(vm.testOneTime).toBe('from parent: a')
     expect(vm._data.testOneTime).toBe('from parent: a')