]>*>`);\n// 匹配属性,第一个分组是属性的key,属性的值是分组3/4/5\nconst attribute =\n /^\\s*([^\\s\"'<>\\/=]+)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>']+)))?/;\n//匹配前标签结束\nconst startTagClose = /^\\s*(\\/?)>/;\n// 匹配{{}}\nconst defaultTagRE = /\\{\\{((?:.|\\r?\\n)+?)\\}\\}/g;\n// 转化为ast模板语法树\nexport function parseHTML(html) {\n const ELEMENT_TYPE = 1;\n const TEXT_TYPE = 3;\n const stack = [];\n let currentParent;\n let root;\n // 创建节点\n function createASTElement(tag, attrs) {\n return {\n tag,\n type: ELEMENT_TYPE,\n children: [],\n attrs,\n parent: null,\n };\n }\n function advance(n) {\n html = html.substring(n);\n }\n // 在解析的各个阶段建立一颗ast语法树\n function start(tag, attrs) {\n let node = createASTElement(tag, attrs);\n if (!root) {\n root = node;\n }\n // 如果有栈中有值,就将栈中最后一个元素作为parent\n if (currentParent) {\n // 这里要同时建立节点的父子关系\n node.parent = currentParent;\n currentParent.children.push(node);\n }\n // 将当前的节点推入栈中,并更新当前的父节点\n stack.push(node);\n currentParent = node;\n }\n function end(tag) {\n // 出栈并更新当前父节点\n stack.pop();\n currentParent = stack[stack.length - 1];\n }\n function char(text) {\n // 处理文本节点\n text = text.replace(/\\s/g, \"\");\n text &&\n currentParent.children.push({\n type: TEXT_TYPE,\n text,\n parent: currentParent,\n });\n }\n // 解析开始标签,收集属性\n function parseStartTag() {\n const start = html.match(startTagOpen);\n if (start) {\n const match = {\n tagName: [start[1]], //标签名\n attrs: [],\n };\n advance(start[0].length);\n // 如果不是开始标签的结束,就一直匹配下去\n let attr, end;\n while (\n !(end = html.match(startTagClose)) &&\n (attr = html.match(attribute))\n ) {\n advance(attr[0].length);\n match.attrs.push({\n name: attr[1],\n value: attr[3] || attr[4] || attr[5] || true,\n });\n }\n if (end) {\n advance(end[0].length);\n }\n return match;\n }\n return false;\n }\n while (html) {\n // textEnd如果为0,就是一个开始标签或结束标签\n //textEnd>0,说明是一个文本\n let textEnd = html.indexOf(\"<\"); //如果indexOf中的索引是0,就是一个标签\n if (textEnd == 0) {\n const startTagMatch = parseStartTag();\n if (startTagMatch) {\n // 解析到开始标签\n start(startTagMatch.tagName, startTagMatch.attrs);\n continue;\n }\n let endTagMatch = html.match(endTag);\n if (endTagMatch) {\n advance(endTagMatch[0].length);\n end(endTagMatch[1]);\n continue;\n }\n }\n if (textEnd > 0) {\n let text = html.substring(0, textEnd); //文本内容\n if (text) {\n char(text);\n advance(text.length);\n }\n continue;\n }\n }\n return root;\n}\n","import { parseHTML } from \"./parse\";\n// 匹配{{}}\nconst defaultTagRE = /\\{\\{((?:.|\\r?\\n)+?)\\}\\}/g;\nfunction genProps(attrs) {\n let str = \"\";\n for (let i = 0; i < attrs.length; i++) {\n let attr = attrs[i];\n // style要做特殊处理\n if (attr.name == \"style\") {\n let obj = {};\n attr.value.split(\";\").forEach((item) => {\n let [key, value] = item.split(\":\");\n obj[key] = value;\n });\n attr.value = obj;\n }\n str += `${attr.name}:${JSON.stringify(attr.value)},`;\n }\n return `{${str.slice(0, -1)}}`;\n}\n// 将children生成代码\nfunction genChildren(children) {\n if (children) {\n return children\n .map((child) => {\n return gen(child);\n })\n .join(\",\");\n }\n}\nfunction gen(node) {\n // 如果有子节点就递归生成\n if (node.type === 1) {\n return codegen(node);\n } else {\n let text = node.text;\n if (!defaultTagRE.test(text)) {\n // 文本节点直接格式化处理\n return `_v(${JSON.stringify(text)})`;\n } else {\n // 操作模板语法,将模板语法替换为变量\n let tokens = [];\n let match;\n // 注意这里将正则的lastIndex重置为0,每次的行为一致\n defaultTagRE.lastIndex = 0;\n let lastIndex = 0;\n while ((match = defaultTagRE.exec(text))) {\n let index = match.index;\n if (index > lastIndex) {\n // 添加模板引擎之前/之后的内容\n tokens.push(JSON.stringify(text.slice(lastIndex, index)));\n }\n // 将模板中的变量添加进去\n tokens.push(`_s(${match[1].trim()})`);\n lastIndex = index + match[0].length;\n }\n if (lastIndex < text.length) {\n // 添加一般的文本\n tokens.push(JSON.stringify(text.slice(lastIndex)));\n }\n return `_v(${tokens.join(\"+\")})`;\n }\n }\n}\n// 将ast语法树生成render函数\nfunction codegen(ast) {\n let children = genChildren(ast.children);\n let code = `_c('${ast.tag}',${\n ast.attrs.length > 0 ? genProps(ast.attrs) : \"null\"\n }${ast.children.length ? `,${children}` : \"\"})`;\n return code;\n}\nexport function complieToFunction(template) {\n let ast = parseHTML(template);\n let code = codegen(ast);\n // 绑定this并利用Function生成函数\n code = `with(this){return ${code}}`;\n let render = new Function(code);\n return render;\n}\n","const isReservedTag = (tag) => {\n return [\n \"a\",\n \"div\",\n \"span\",\n \"ul\",\n \"li\",\n \"ol\",\n \"button\",\n \"input\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"p\",\n \"br\",\n ].includes(tag);\n};\nexport function createElementVNode(vm, tag, data, ...children) {\n if (data == null) {\n data = {};\n }\n let key = data.key;\n if (key) {\n delete data.key;\n }\n // 判断是否是原生标签\n if (isReservedTag(tag)) {\n return vnode(vm, tag, key, data, children);\n } else {\n // 创造一个组件的虚拟节点,包含组件的构造函数\n let Ctor = vm.$options.components[tag]; //组件的构造函数\n // Ctor是组件的定义,可能是配置对象(模板选项)或者是Sub(Vue的子类)\n //全局组件是构造函数,否则是对象\n return createComponentVNode(vm, tag, key, data, children, Ctor);\n // 调用完这个方法之后,vnode.componentInstance上\n }\n}\nfunction createComponentVNode(vm, tag, key, data, children, Ctor) {\n if (typeof Ctor == \"object\") {\n // 确保Ctor一定是构造函数\n Ctor = vm.$options._base.extend(Ctor);\n }\n data.hook = {\n // 用于创建真实节点的时候,如果是组件则调用此方法\n init(vnode) {\n // 保存组件的实例到虚拟节点上\n let instance = (vnode.componentInstance =\n new vnode.componentOptions.Ctor());\n instance.$mount();\n // 执行后instance上增加了$el\n },\n };\n return vnode(vm, tag, key, data, children, null, { Ctor });\n}\nexport function createTextVNode(vm, text) {\n return vnode(vm, undefined, undefined, undefined, undefined, text);\n}\n// ast是描述JS,css,等语言本身的情况的\n// 虚拟dom是描述dom节点的\nfunction vnode(vm, tag, key, data, children, text, componentOptions) {\n return {\n vm,\n tag,\n key,\n data,\n children,\n text,\n // 包含了组件的构造函数\n componentOptions,\n };\n}\nexport function isSameVnode(vnode1, vnode2) {\n return vnode1.tag === vnode2.tag && vnode1.key === vnode2.key;\n}\n","import { isSameVnode } from \"./index\";\nfunction createComponent(vnode) {\n let i = vnode.data;\n if ((i = i.hook) && (i = i.init)) {\n i(vnode); //使用init方法初始化组件,调用$mount()\n }\n if (vnode.componentInstance) {\n return true; //说明是组件\n }\n}\nexport function createElm(vnode) {\n let { tag, data, children, text } = vnode;\n if (typeof tag == \"string\") {\n // 创建真实节点需要知道是组件还是真实元素\n\n if (createComponent(vnode)) {\n // 这里的$el是在执行$mount后产生的虚拟节点对应的真实节点\n return vnode.componentInstance.$el;\n }\n // 将真实节点和虚拟节点进行对应,为后续diff算法做准备\n vnode.el = document.createElement(tag);\n patchProps(vnode.el, {}, data);\n children.forEach((child) => {\n vnode.el.appendChild(createElm(child));\n });\n } else {\n vnode.el = document.createTextNode(text);\n }\n return vnode.el;\n}\nexport function patchProps(el, oldProps = {}, props = {}) {\n // 老的属性中有,新的没有,要删除老的\n let oldStyles = oldProps.style || {};\n let newStyle = props.style;\n // 对于style\n for (let key in oldProps) {\n if (!newStyle[key]) {\n el.style[key] = \"\";\n }\n }\n // 对于一般属性\n for (let key in oldProps) {\n if (!props[key]) {\n el.removeAttribute(key);\n }\n }\n // 用新的覆盖掉老的\n for (let key in props) {\n if (key == \"style\") {\n for (let styleName in props.style) {\n el.style[styleName] = props.style[styleName];\n }\n } else {\n el.setAttribute(key, props[key]);\n }\n }\n}\nexport function patch(oldVNode, vnode) {\n if (!oldVNode) {\n // 没有el,表示是组件的挂载\n //注意这里要修改init中的挂载方法,没有el也可以挂载\n //vm.$el就是渲染的结果\n return createElm(vnode);\n }\n const isRealElement = oldVNode.nodeType;\n if (isRealElement) {\n // 获取真实元素\n const elm = oldVNode;\n // 拿到父元素\n const parentElm = elm.parentNode;\n let newElm = createElm(vnode);\n parentElm.insertBefore(newElm, elm.nextSibiling);\n parentElm.removeChild(elm);\n return newElm;\n } else {\n // diff算法\n return patchVnode(oldVNode, vnode);\n }\n}\n// 利用diff算法更新两个节点\nfunction patchVnode(oldVNode, vnode) {\n // 两个节点不是同一个节点,直接删除老的,换上新的(没有对比)\n\n // 两个节点是同一个节点,判断节点的tag和key,tag和key一样是同一个节点,此时去比较两个节点的属性是否有差异(复用老的节点,将差异的属性更新)\n // 节点比较完成后,比较两个节点的子节点\n // 如果不是同一节点,用新节点替换老节点\n if (!isSameVnode(oldVNode, vnode)) {\n // 用老节点的父亲进行替换\n //这里的el属性就是虚拟节点对应的真实节点\n let el = createElm(vnode);\n oldVNode.el.parentNode.replaceChild(el, oldVNode);\n return el;\n }\n // 如果是文本节点,就比对一下文本的内容\n let el = (vnode.el = oldVNode.el); //复用老节点的元素\n if (!oldVNode.tag) {\n // 文本的情况\n if (oldVNode.text !== vnode.text) {\n el.textContent = vnode.text;\n }\n }\n //是标签,需要比对标签的属性\n patchProps(el, oldVNode.data, vnode.data);\n // 比较子节点:\n // 1.一方有儿子,一方没儿子\n // 2.两方都有儿子\n let oldChildren = oldVNode.children || [];\n let newChildren = vnode.children || [];\n if (oldChildren.length > 0 && newChildren.length > 0) {\n // 完整的diff算法\n updateChild(el, oldChildren, newChildren);\n } else if (newChildren > 0) {\n // 老的没有新的有\n mountChildren(el, newChildren);\n } else if (oldChildren > 0) {\n // 新的没有老的有\n unmountChild(el, oldChildren);\n }\n return el;\n}\n\nfunction mountChildren(el, children) {\n for (let i = 0; i < children.length; i++) {\n let child = newChildren[i];\n el.appendChild(createElm(child));\n }\n}\n\nfunction unmountChild(el, children) {\n el.innerHTML = \"\";\n}\n\nfunction updateChild(el, oldChildren, newChildren) {\n // 为了增高性能,会有一些优化手段\n // vue2中采用双指针的方式比较两个节点\n let oldStartIndex = 0;\n let newStartIndex = 0;\n let oldEndIndex = oldChildren.length - 1;\n let newEndIndex = newChildren.length - 1;\n\n let oldStartVnode = oldChildren[0];\n let newStartVnode = newChildren[0];\n\n let oldEndVnode = oldChildren[oldEndIndex];\n let newEndVnode = newChildren[newEndIndex];\n function makeIndexByKey(children) {\n let map = {};\n children.forEach((child, index) => {\n map[child.key] = index;\n });\n return map;\n }\n let map = makeIndexByKey(oldChildren);\n while (oldStartIndex <= oldEndIndex && newStartIndex <= newEndIndex) {\n // 有一方的头指针大于尾部指针,则停止循环\n // 如果是相同节点,则递归比较子节点\n if (!oldStartVnode) {\n // 处理置空节点产生的undefind的问题\n oldStartVnode = oldChildren[++oldStartIndex];\n } else if (!oldEndVnode) {\n // 处理置空节点产生的undefind的问题\n oldEndVnode = oldChildren[--oldEndIndex];\n } else if (isSameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode);\n // 指针移动\n oldStartVnode = oldChildren[++oldStartIndex];\n newStartVnode = newChildren[++newStartIndex];\n }\n // 当首个元素不同时反向比对\n else if (isSameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode);\n oldEndVnode = oldChildren[--oldEndIndex];\n newEndVnode = newChildren[--newEndIndex];\n }\n // 交叉比对,优化reverse方法 abcd__>dabc,处理了倒叙和排序的情况\n else if (isSameVnode(oldEndVnode, newStartVnode)) {\n patchVnode(oldEndVnode, newStartVnode);\n // 将老的尾部移动到老的前面去(变为了新前对旧前)\n // insertBefore具有移动性,会将原来的元素移动走\n el.insertBefore(oldEndVnode.el, oldStartVnode.el);\n oldEndVnode = oldChildren[--oldEndIndex];\n newStartVnode = newChildren[++newStartIndex];\n } else if (isSameVnode(oldStartVnode, newEndVnode)) {\n patchVnode(oldStartVnode, newEndVnode);\n // 将老的尾部移动到老的前面去(变为了新前对旧前)\n // insertBefore具有移动性,会将原来的元素移动走\n el.insertBefore(oldStartVnode.el, oldEndVnode.el.nextSibiling);\n oldStartVnode = oldChildren[++oldStartIndex];\n newEndVnode = newChildren[--newEndIndex];\n } else {\n // 给动态列表添加key时,尽量避免使用索引,可能导致错误复用\n // 乱序比对:根据老的列表做一个映射关系,用新的逐个比对查找,找到移动,找不到添加,多出的删除\n // 如果拿到说明是要移动的索引\n let moveIndex = map[newStartVnode?.key];\n if (moveIndex !== undefined) {\n // 找到对应的虚拟节点进行复用\n let moveVnode = oldChildren[moveIndex];\n el.insertBefore(moveVnode.el, oldStartVnode.el);\n oldChildren[moveIndex] = undefined; //表示这个节点已经被移走了\n // 递归比较属性和子节点\n patchVnode(moveVnode, newStartVnode);\n } else {\n // 无法找到老节点\n el.insertBefore(createElm(newStartVnode), oldStartVnode.el);\n }\n newStartVnode = newChildren[++newStartIndex];\n }\n }\n\n // 多出元素删除,缺少元素添加\n // 相比于原有的数组有新增元素,尾部对新增元素进行添加\n if (newStartIndex <= newEndIndex) {\n for (let i = newStartIndex; i <= newEndIndex; i++) {\n let childEl = createElm(newChildren[i]);\n // 这里也有可能向前追加\n let anchor = newChildren[newEndIndex + 1]\n ? newChildren[newEndIndex + 1].el\n : null;\n el.insertBefore(childEl, anchor);\n // anchor为null时,则等价于appendChild\n }\n }\n // 相比于原有数组尾部减少元素,对被减少的元素进行删除\n if (oldStartIndex <= oldEndIndex) {\n for (let i = oldStartIndex; i <= oldEndIndex; i++) {\n if (oldChildren[i]) {\n let childEl = oldChildren[i].el;\n el.removeChild(childEl);\n }\n }\n }\n}\n","import { createElementVNode, createTextVNode } from \"./vdom/index\";\nimport Watcher from \"./observe/watcher\";\nimport { createElm, patch, patchProps } from \"./vdom/patch\";\nexport function initLifeCycle(Vue) {\n Vue.prototype._update = function (vnode) {\n // patch既有初始化功能,又有更新的功能\n const vm = this;\n const el = vm.$el;\n // 把组件第一次产生的虚拟节点保存到_vnode上\n const preVnode = vm._vnode;\n vm._vnode = vnode;\n if (preVnode) {\n // 之前渲染过\n vm.$el = patch(preVnode, vnode);\n } else {\n vm.$el = patch(el, vnode);\n }\n };\n Vue.prototype._render = function () {\n // 渲染时会去实例上取值\n const vm = this;\n return vm.$options.render.call(this); //转移后生产的 render方法\n };\n // 创造虚拟节点\n Vue.prototype._c = function () {\n return createElementVNode(this, ...arguments);\n };\n // 创建文本虚拟节点\n Vue.prototype._v = function () {\n return createTextVNode(this, ...arguments);\n };\n // 创建普通文字节点\n Vue.prototype._s = function (value) {\n if (typeof value !== \"object\") return value;\n return JSON.stringify(value);\n };\n}\nexport function mountComponent(vm, el) {\n vm.$el = el;\n const updateComponent = () => {\n vm._update(vm._render()); //vm.$options.render,返回虚拟节点\n };\n // 注意,子组件挂载时也会调用这个方法,因此每个子组件也都会对应一个Watcher\n // 1.调用render方法,产生虚拟dom\n const watcher = new Watcher(vm, updateComponent, true);\n // 2.根据虚拟dom产生真实dom\n\n // 3.插入到el元素中\n}\n\n// 将模板转化为ast模板语法树,ast转化为render函数,后续每次数据更新只执行render函数(无需再转化ast)\n// render函数会产生虚拟节点,根据创造的虚拟节点创造真实Dom\n\nexport function callHook(vm, hook) {\n const handlers = vm.$options[hook];\n if (handlers) {\n handlers.forEach((handler) => {\n handler.call(vm);\n });\n }\n}\n","const strats = {};\nconst LIFECYCLE = [\n \"beforeCreate\",\n \"created\",\n \"mounted\",\n \"beforeUpdate\",\n \"updated\",\n \"beforeDestroy\",\n \"destroy\",\n];\nLIFECYCLE.forEach((hook) => {\n strats[hook] = function (p, c) {\n if (c) {\n if (p) {\n // 第一次之后,p必定为一个数组\n return p.concat(c);\n } else {\n // 第一次合并p为{}\n return [c];\n }\n } else {\n // 如果儿子没有,直接返回父亲\n // c没有的情况下,p可能有,也可能为undefined\n return p;\n }\n };\n});\nstrats.components = function (parentVal, childVal) {\n const res = Object.create(parentVal);\n if (childVal) {\n for (let key in childVal) {\n // 返回的是构造的对象,可以返回父亲原型上的属性,并将儿子的属性拷贝到自己身上\n res[key] = childVal[key];\n }\n }\n return res;\n};\nexport function mergeOptions(parent, child) {\n const options = {};\n for (let key in parent) {\n mergeField(key);\n }\n for (let key in child) {\n if (!parent.hasOwnProperty(key)) {\n mergeField(key);\n }\n }\n function mergeField(key) {\n // 策略模式减少if-else\n if (strats[key]) {\n options[key] = strats[key](parent[key], child[key]);\n } else {\n // 不在策略中则优先采用儿子的,再采用父亲\n options[key] = child[key] || parent[key];\n }\n }\n return options;\n}\n","// 给Vue增加初始化方法\nimport { initState } from \"./state\";\nimport { complieToFunction } from \"./compiler/index\";\nimport { mountComponent } from \"./lifecycle\";\nimport { mergeOptions } from \"./utils\";\nimport { callHook } from \"./lifecycle\";\nexport function initMixin(Vue) {\n Vue.prototype._init = function (options) {\n const vm = this;\n // 将用户传入的选项和全局选项进行合并\n vm.$options = mergeOptions(this.constructor.options, options);\n console.log(vm.$options);\n callHook(vm, \"beforeCreated\");\n initState(vm);\n callHook(vm, \"created\");\n if (options.el) {\n vm.$mount(options.el);\n }\n };\n Vue.prototype.$mount = function (el) {\n const vm = this;\n el = document.querySelector(el);\n let opts = vm.$options;\n // 当没有render函数时\n if (!opts?.render) {\n let template = null;\n // 没有模板但写了el\n if (!opts.template && opts.el) {\n template = el.outerHTML;\n // 存在模板或不存在模板和el\n } else {\n // 存在模板\n if (opts.template) {\n template = opts.template;\n } else {\n // 既没有模板也没有el\n template = \"
\";\n }\n }\n //拿到模板\n // 获取优先级:render=>temple=>el\n if (template) {\n const render = complieToFunction(template);\n opts.render = render;\n }\n }\n mountComponent(vm, el);\n };\n}\n// script标签引入的vue,编译过程在浏览器\n// runtime是不包含编译的,编译时通过loader进行转译.vue文件,用runtime不能使用template(在mian.js中,.vue文件有loader转译,因此不影响)\n// 包含main.js中模板编译的版本是runtime-with-compiler\n","import { mergeOptions } from \"./utils\";\nexport function initGlobalAPI(Vue) {\n Vue.options = {\n _base: Vue,\n };\n Vue.mixin = function (mixin) {\n // 期望将用户的选项和全局的options进行合并\n // Vue的混入本质是一个订阅发布者模式\n this.options = mergeOptions(Vue.options, mixin);\n return this;\n };\n // 可以手动改创造组件进行挂载\n Vue.extend = function (options) {\n // 根据用户的参数,返回一个构造函数\n // 最终使用一个组件,就是new一个实例\n function Sub(options = {}) {\n this._init(options); // 默认对子类进行初始化操作\n }\n Sub.prototype = Object.create(Vue.prototype);\n Sub.prototype.constructor = Sub;\n // 希望将用户传递的参数和全局的Vue.options合并,使形成类似原型链的查找方式,出现重名优先查找自己\n Sub.options = mergeOptions(Vue.options, options); //保存用户传递的选项\n return Sub;\n // 子组件挂载时也会产生一个watcher\n };\n Vue.options.components = {};\n Vue.component = function (id, definition) {\n // 如果definition已经是一个函数了,说明用户自己调用了vue.extend\n definition =\n typeof definition == \"function\" ? definition : Vue.extend(definition);\n Vue.options.components[id] = definition;\n };\n}\n","import { initMixin } from \"./init\";\nimport { initLifeCycle } from \"./lifecycle\";\nimport { initStateMixin } from \"./state\";\nimport { complieToFunction } from \"./compiler/index\";\nimport { createElm, patch } from \"./vdom/patch\";\nimport { initGlobalAPI } from \"./gloablAPI\";\nfunction Vue(options) {\n this._init(options);\n}\n// 扩展了init方法\ninitMixin(Vue);\n// 提供了_update()和_render两个方法\ninitLifeCycle(Vue);\n// 实现了$nextTick和$watch\ninitStateMixin(Vue);\n// 实现全局API\ninitGlobalAPI(Vue);\n// diff算法是一个平级比较的过程,父亲不能跟儿子进行比对\nexport default Vue;\n"],"names":["id","Dep","subs","target","addDep","watcher","push","forEach","update","stack","pushTarget","popTarget","pop","length","oldArrayProto","Array","prototype","newArrayProto","Object","create","methods","method","args","result","call","ob","__ob__","inserted","slice","observeArray","dep","notify","Observe","data","defineProperty","value","enumerable","isArray","__proto__","walk","keys","key","defineReactive","item","observe","dependArray","i","depend","childOb","get","set","newValue","Watcher","vm","exprOrFn","options","cb","renderWatcher","getter","deps","depsId","Set","lazy","dirty","user","undefined","queueWatcher","has","add","addSub","oldValue","queue","pending","flushSchedulerQueue","flushQueue","q","run","timerFunc","callbacks","waiting","flushCallbacks","cbs","Promise","fn","resolve","then","MutationObserver","textNode","document","createElement","characterData","textContent","setImmediate","setTimeout","nextTick","initState","opts","$options","initData","computed","initComputed","watch","initWatch","handler","createWatcher","$watch","proxy","_data","watchers","_computedWatchers","userDef","defineComputed","setter","createComputedGatter","evalute","initStateMixin","Vue","$nextTick","ncname","qnameCapture","startTagOpen","RegExp","endTag","attribute","startTagClose","parseHTML","html","ELEMENT_TYPE","TEXT_TYPE","currentParent","root","createASTElement","tag","attrs","type","children","parent","advance","n","substring","start","node","end","char","text","replace","parseStartTag","match","tagName","attr","name","textEnd","indexOf","startTagMatch","endTagMatch","defaultTagRE","genProps","str","obj","split","JSON","stringify","genChildren","map","child","gen","join","codegen","test","tokens","lastIndex","exec","index","trim","ast","code","complieToFunction","template","render","Function","isReservedTag","includes","createElementVNode","vnode","Ctor","components","createComponentVNode","_base","extend","hook","init","instance","componentInstance","componentOptions","$mount","createTextVNode","isSameVnode","vnode1","vnode2","createComponent","createElm","$el","el","patchProps","appendChild","createTextNode","oldProps","props","style","newStyle","removeAttribute","styleName","setAttribute","patch","oldVNode","isRealElement","nodeType","elm","parentElm","parentNode","newElm","insertBefore","nextSibiling","removeChild","patchVnode","replaceChild","oldChildren","newChildren","updateChild","mountChildren","unmountChild","innerHTML","oldStartIndex","newStartIndex","oldEndIndex","newEndIndex","oldStartVnode","newStartVnode","oldEndVnode","newEndVnode","makeIndexByKey","moveIndex","moveVnode","childEl","anchor","initLifeCycle","_update","preVnode","_vnode","_render","_c","arguments","_v","_s","mountComponent","updateComponent","callHook","handlers","strats","LIFECYCLE","p","c","concat","parentVal","childVal","res","mergeOptions","mergeField","hasOwnProperty","initMixin","_init","constructor","console","log","querySelector","outerHTML","initGlobalAPI","mixin","Sub","component","definition"],"mappings":"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"}
--------------------------------------------------------------------------------