| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | 
							- /* @flow */
 
- import { extend, cached, camelize } from 'shared/util'
 
- const normalize = cached(camelize)
 
- function createStyle (oldVnode: VNodeWithData, vnode: VNodeWithData) {
 
-   if (!vnode.data.staticStyle) {
 
-     updateStyle(oldVnode, vnode)
 
-     return
 
-   }
 
-   const elm = vnode.elm
 
-   const staticStyle = vnode.data.staticStyle
 
-   const supportBatchUpdate = typeof elm.setStyles === 'function'
 
-   const batchedStyles = {}
 
-   for (const name in staticStyle) {
 
-     if (staticStyle[name]) {
 
-       supportBatchUpdate
 
-         ? (batchedStyles[normalize(name)] = staticStyle[name])
 
-         : elm.setStyle(normalize(name), staticStyle[name])
 
-     }
 
-   }
 
-   if (supportBatchUpdate) {
 
-     elm.setStyles(batchedStyles)
 
-   }
 
-   updateStyle(oldVnode, vnode)
 
- }
 
- function updateStyle (oldVnode: VNodeWithData, vnode: VNodeWithData) {
 
-   if (!oldVnode.data.style && !vnode.data.style) {
 
-     return
 
-   }
 
-   let cur, name
 
-   const elm = vnode.elm
 
-   const oldStyle: any = oldVnode.data.style || {}
 
-   let style: any = vnode.data.style || {}
 
-   const needClone = style.__ob__
 
-   // handle array syntax
 
-   if (Array.isArray(style)) {
 
-     style = vnode.data.style = toObject(style)
 
-   }
 
-   // clone the style for future updates,
 
-   // in case the user mutates the style object in-place.
 
-   if (needClone) {
 
-     style = vnode.data.style = extend({}, style)
 
-   }
 
-   const supportBatchUpdate = typeof elm.setStyles === 'function'
 
-   const batchedStyles = {}
 
-   for (name in oldStyle) {
 
-     if (!style[name]) {
 
-       supportBatchUpdate
 
-         ? (batchedStyles[normalize(name)] = '')
 
-         : elm.setStyle(normalize(name), '')
 
-     }
 
-   }
 
-   for (name in style) {
 
-     cur = style[name]
 
-     supportBatchUpdate
 
-       ? (batchedStyles[normalize(name)] = cur)
 
-       : elm.setStyle(normalize(name), cur)
 
-   }
 
-   if (supportBatchUpdate) {
 
-     elm.setStyles(batchedStyles)
 
-   }
 
- }
 
- function toObject (arr) {
 
-   const res = {}
 
-   for (let i = 0; i < arr.length; i++) {
 
-     if (arr[i]) {
 
-       extend(res, arr[i])
 
-     }
 
-   }
 
-   return res
 
- }
 
- export default {
 
-   create: createStyle,
 
-   update: updateStyle
 
- }
 
 
  |