| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | 
							- /* @flow */
 
- /**
 
-  * Runtime helper for rendering static trees.
 
-  */
 
- export function renderStatic (
 
-   index: number,
 
-   isInFor: boolean
 
- ): VNode | Array<VNode> {
 
-   const cached = this._staticTrees || (this._staticTrees = [])
 
-   let tree = cached[index]
 
-   // if has already-rendered static tree and not inside v-for,
 
-   // we can reuse the same tree.
 
-   if (tree && !isInFor) {
 
-     return tree
 
-   }
 
-   // otherwise, render a fresh tree.
 
-   tree = cached[index] = this.$options.staticRenderFns[index].call(
 
-     this._renderProxy,
 
-     null,
 
-     this // for render fns generated for functional component templates
 
-   )
 
-   markStatic(tree, `__static__${index}`, false)
 
-   return tree
 
- }
 
- /**
 
-  * Runtime helper for v-once.
 
-  * Effectively it means marking the node as static with a unique key.
 
-  */
 
- export function markOnce (
 
-   tree: VNode | Array<VNode>,
 
-   index: number,
 
-   key: string
 
- ) {
 
-   markStatic(tree, `__once__${index}${key ? `_${key}` : ``}`, true)
 
-   return tree
 
- }
 
- function markStatic (
 
-   tree: VNode | Array<VNode>,
 
-   key: string,
 
-   isOnce: boolean
 
- ) {
 
-   if (Array.isArray(tree)) {
 
-     for (let i = 0; i < tree.length; i++) {
 
-       if (tree[i] && typeof tree[i] !== 'string') {
 
-         markStaticNode(tree[i], `${key}_${i}`, isOnce)
 
-       }
 
-     }
 
-   } else {
 
-     markStaticNode(tree, key, isOnce)
 
-   }
 
- }
 
- function markStaticNode (node, key, isOnce) {
 
-   node.isStatic = true
 
-   node.key = key
 
-   node.isOnce = isOnce
 
- }
 
 
  |