vue 2.6.13 → 2.7.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/README.md +17 -295
  2. package/compiler-sfc/index.d.ts +1 -0
  3. package/compiler-sfc/index.js +1 -0
  4. package/compiler-sfc/index.mjs +1 -0
  5. package/compiler-sfc/package.json +5 -0
  6. package/dist/vue.common.dev.js +11481 -11946
  7. package/dist/vue.common.prod.js +8 -3
  8. package/dist/vue.esm.browser.js +11321 -12011
  9. package/dist/vue.esm.browser.min.js +8 -3
  10. package/dist/vue.esm.js +11476 -11984
  11. package/dist/vue.js +11484 -11949
  12. package/dist/vue.min.js +8 -3
  13. package/dist/vue.runtime.common.dev.js +8427 -8421
  14. package/dist/vue.runtime.common.prod.js +8 -3
  15. package/dist/vue.runtime.esm.js +8436 -8454
  16. package/dist/vue.runtime.js +8430 -8424
  17. package/dist/vue.runtime.min.js +8 -3
  18. package/package.json +88 -111
  19. package/packages/compiler-sfc/dist/compiler-sfc.js +7 -0
  20. package/packages/compiler-sfc/node_modules/.bin/parser +17 -0
  21. package/packages/compiler-sfc/node_modules/.bin/sass +17 -0
  22. package/packages/compiler-sfc/package.json +30 -0
  23. package/src/compiler/{codeframe.js → codeframe.ts} +9 -7
  24. package/src/compiler/codegen/{events.js → events.ts} +21 -41
  25. package/src/compiler/codegen/{index.js → index.ts} +146 -136
  26. package/src/compiler/{create-compiler.js → create-compiler.ts} +26 -18
  27. package/src/compiler/directives/bind.ts +9 -0
  28. package/src/compiler/directives/{index.js → index.ts} +0 -2
  29. package/src/compiler/directives/{model.js → model.ts} +15 -18
  30. package/src/compiler/directives/{on.js → on.ts} +3 -4
  31. package/src/compiler/{error-detector.js → error-detector.ts} +61 -31
  32. package/src/compiler/{helpers.js → helpers.ts} +73 -61
  33. package/src/compiler/{index.js → index.ts} +2 -3
  34. package/src/compiler/{optimizer.js → optimizer.ts} +30 -23
  35. package/src/compiler/parser/{entity-decoder.js → entity-decoder.ts} +1 -3
  36. package/src/compiler/parser/{filter-parser.js → filter-parser.ts} +43 -24
  37. package/src/compiler/parser/{html-parser.js → html-parser.ts} +50 -29
  38. package/src/compiler/parser/{index.js → index.ts} +190 -172
  39. package/src/compiler/parser/{text-parser.js → text-parser.ts} +8 -9
  40. package/src/compiler/{to-function.js → to-function.ts} +27 -22
  41. package/src/core/components/{index.js → index.ts} +0 -0
  42. package/src/core/components/{keep-alive.js → keep-alive.ts} +42 -30
  43. package/src/core/{config.js → config.ts} +28 -30
  44. package/src/core/global-api/{assets.js → assets.ts} +8 -7
  45. package/src/core/global-api/{extend.js → extend.ts} +10 -13
  46. package/src/core/global-api/{index.js → index.ts} +4 -5
  47. package/src/core/global-api/{mixin.js → mixin.ts} +2 -3
  48. package/src/core/global-api/use.ts +23 -0
  49. package/src/core/{index.js → index.ts} +1 -1
  50. package/src/core/instance/{events.js → events.ts} +41 -24
  51. package/src/core/instance/{index.js → index.ts} +9 -5
  52. package/src/core/instance/{init.js → init.ts} +26 -15
  53. package/src/core/instance/inject.ts +72 -0
  54. package/src/core/instance/{lifecycle.js → lifecycle.ts} +86 -44
  55. package/src/core/instance/{proxy.js → proxy.ts} +29 -24
  56. package/src/core/instance/render-helpers/{bind-dynamic-keys.js → bind-dynamic-keys.ts} +6 -5
  57. package/src/core/instance/render-helpers/{bind-object-listeners.js → bind-object-listeners.ts} +4 -8
  58. package/src/core/instance/render-helpers/{bind-object-props.js → bind-object-props.ts} +12 -17
  59. package/src/core/instance/render-helpers/{check-keycodes.js → check-keycodes.ts} +5 -7
  60. package/src/core/instance/render-helpers/{index.js → index.ts} +1 -3
  61. package/src/core/instance/render-helpers/{render-list.js → render-list.ts} +12 -13
  62. package/src/core/instance/render-helpers/{render-slot.js → render-slot.ts} +10 -11
  63. package/src/core/instance/render-helpers/{render-static.js → render-static.ts} +7 -10
  64. package/src/core/instance/render-helpers/{resolve-filter.js → resolve-filter.ts} +1 -3
  65. package/src/core/instance/render-helpers/{resolve-scoped-slots.js → resolve-scoped-slots.ts} +11 -8
  66. package/src/core/instance/render-helpers/{resolve-slots.js → resolve-slots.ts} +12 -11
  67. package/src/core/instance/{render.js → render.ts} +66 -29
  68. package/src/core/instance/{state.js → state.ts} +100 -83
  69. package/src/core/observer/{array.js → array.ts} +11 -2
  70. package/src/core/observer/{dep.js → dep.ts} +37 -15
  71. package/src/core/observer/{index.js → index.ts} +137 -71
  72. package/src/core/observer/{scheduler.js → scheduler.ts} +42 -43
  73. package/src/core/observer/{traverse.js → traverse.ts} +10 -7
  74. package/src/core/observer/{watcher.js → watcher.ts} +88 -60
  75. package/src/core/util/{debug.js → debug.ts} +38 -34
  76. package/src/core/util/{env.js → env.ts} +27 -30
  77. package/src/core/util/{error.js → error.ts} +12 -14
  78. package/src/core/util/{index.js → index.ts} +0 -2
  79. package/src/core/util/{lang.js → lang.ts} +6 -7
  80. package/src/core/util/{next-tick.js → next-tick.ts} +16 -10
  81. package/src/core/util/{options.js → options.ts} +119 -114
  82. package/src/core/util/{perf.js → perf.ts} +5 -1
  83. package/src/core/util/{props.js → props.ts} +54 -50
  84. package/src/core/vdom/{create-component.js → create-component.ts} +51 -50
  85. package/src/core/vdom/{create-element.js → create-element.ts} +49 -43
  86. package/src/core/vdom/{create-functional-component.js → create-functional-component.ts} +52 -27
  87. package/src/core/vdom/helpers/{extract-props.js → extract-props.ts} +18 -18
  88. package/src/core/vdom/helpers/{get-first-component-child.js → get-first-component-child.ts} +6 -5
  89. package/src/core/vdom/helpers/{index.js → index.ts} +0 -2
  90. package/src/core/vdom/helpers/is-async-placeholder.ts +6 -0
  91. package/src/core/vdom/helpers/{merge-hook.js → merge-hook.ts} +7 -5
  92. package/src/core/vdom/helpers/{normalize-children.js → normalize-children.ts} +26 -16
  93. package/src/core/vdom/helpers/{normalize-scoped-slots.js → normalize-scoped-slots.ts} +23 -17
  94. package/src/core/vdom/helpers/{resolve-async-component.js → resolve-async-component.ts} +29 -37
  95. package/src/core/vdom/helpers/update-listeners.ts +101 -0
  96. package/src/core/vdom/modules/{directives.js → directives.ts} +20 -14
  97. package/src/core/vdom/modules/index.ts +4 -0
  98. package/src/core/vdom/modules/template-ref.ts +96 -0
  99. package/src/core/vdom/{patch.js → patch.ts} +239 -138
  100. package/src/core/vdom/{vnode.js → vnode.ts} +36 -31
  101. package/src/global.d.ts +15 -0
  102. package/src/platforms/web/compiler/directives/html.ts +8 -0
  103. package/src/platforms/web/compiler/directives/{index.js → index.ts} +0 -0
  104. package/src/platforms/web/compiler/directives/{model.js → model.ts} +47 -41
  105. package/src/platforms/web/compiler/directives/{text.js → text.ts} +2 -3
  106. package/src/platforms/web/compiler/{index.js → index.ts} +0 -2
  107. package/src/platforms/web/compiler/modules/{class.js → class.ts} +10 -15
  108. package/src/platforms/web/compiler/modules/{index.js → index.ts} +1 -5
  109. package/src/platforms/web/compiler/modules/{model.js → model.ts} +6 -11
  110. package/src/platforms/web/compiler/modules/{style.js → style.ts} +9 -14
  111. package/src/platforms/web/compiler/{options.js → options.ts} +1 -2
  112. package/src/platforms/web/compiler/{util.js → util.ts} +5 -7
  113. package/src/platforms/web/entry-compiler-sfc.ts +1 -0
  114. package/src/platforms/web/{entry-compiler.js → entry-compiler.ts} +1 -3
  115. package/src/platforms/web/{entry-runtime.js → entry-runtime-esm.ts} +2 -2
  116. package/src/platforms/web/entry-runtime-with-compiler-esm.ts +5 -0
  117. package/src/platforms/web/entry-runtime-with-compiler.ts +10 -0
  118. package/src/platforms/web/entry-runtime.ts +7 -0
  119. package/src/platforms/web/runtime/{class-util.js → class-util.ts} +2 -4
  120. package/src/platforms/web/runtime/components/{index.js → index.ts} +0 -0
  121. package/src/platforms/web/runtime/components/{transition-group.js → transition-group.ts} +59 -46
  122. package/src/platforms/web/runtime/components/{transition.js → transition.ts} +43 -36
  123. package/src/platforms/web/runtime/directives/{index.js → index.ts} +0 -0
  124. package/src/platforms/web/runtime/directives/{model.js → model.ts} +22 -21
  125. package/src/platforms/web/runtime/directives/{show.js → show.ts} +11 -10
  126. package/src/platforms/web/runtime/{index.js → index.ts} +9 -10
  127. package/src/platforms/web/runtime/modules/{attrs.js → attrs.ts} +12 -16
  128. package/src/platforms/web/runtime/modules/{class.js → class.ts} +7 -18
  129. package/src/platforms/web/runtime/modules/{dom-props.js → dom-props.ts} +24 -17
  130. package/src/platforms/web/runtime/modules/{events.js → events.ts} +22 -15
  131. package/src/platforms/web/runtime/modules/{index.js → index.ts} +1 -8
  132. package/src/platforms/web/runtime/modules/{style.js → style.ts} +24 -13
  133. package/src/platforms/web/runtime/modules/{transition.js → transition.ts} +61 -63
  134. package/src/platforms/web/runtime/node-ops.ts +66 -0
  135. package/src/platforms/web/runtime/{patch.js → patch.ts} +0 -2
  136. package/src/platforms/web/runtime/{transition-util.js → transition-util.ts} +63 -38
  137. package/src/platforms/web/{entry-runtime-with-compiler.js → runtime-with-compiler.ts} +28 -19
  138. package/src/platforms/web/util/{attrs.js → attrs.ts} +18 -14
  139. package/src/platforms/web/util/{class.js → class.ts} +23 -21
  140. package/src/platforms/web/util/{compat.js → compat.ts} +4 -4
  141. package/src/platforms/web/util/{element.js → element.ts} +21 -22
  142. package/src/platforms/web/util/{index.js → index.ts} +2 -6
  143. package/src/platforms/web/util/{style.js → style.ts} +12 -12
  144. package/src/sfc/{parser.js → parser.ts} +18 -15
  145. package/src/shared/{constants.js → constants.ts} +2 -6
  146. package/src/shared/{util.js → util.ts} +78 -55
  147. package/src/types/compiler.ts +224 -0
  148. package/src/types/component.ts +209 -0
  149. package/src/types/global-api.ts +37 -0
  150. package/src/types/modules.d.ts +15 -0
  151. package/src/types/options.ts +120 -0
  152. package/src/types/ssr.ts +27 -0
  153. package/src/types/utils.ts +3 -0
  154. package/src/types/vnode.ts +127 -0
  155. package/src/v3/apiInject.ts +66 -0
  156. package/src/v3/apiLifecycle.ts +53 -0
  157. package/src/v3/apiSetup.ts +161 -0
  158. package/src/v3/apiWatch.ts +355 -0
  159. package/src/v3/currentInstance.ts +23 -0
  160. package/src/v3/debug.ts +21 -0
  161. package/src/v3/h.ts +18 -0
  162. package/src/v3/index.ts +77 -0
  163. package/src/v3/reactivity/computed.ts +100 -0
  164. package/src/v3/reactivity/effect.ts +20 -0
  165. package/src/v3/reactivity/effectScope.ts +134 -0
  166. package/src/v3/reactivity/operations.ts +14 -0
  167. package/src/v3/reactivity/reactive.ts +123 -0
  168. package/src/v3/reactivity/readonly.ts +121 -0
  169. package/src/v3/reactivity/ref.ts +249 -0
  170. package/types/index.d.ts +10 -13
  171. package/types/options.d.ts +265 -132
  172. package/types/plugin.d.ts +4 -4
  173. package/types/umd.d.ts +47 -27
  174. package/types/v3-generated.d.ts +389 -0
  175. package/types/v3.d.ts +16 -0
  176. package/types/vnode.d.ts +70 -57
  177. package/types/vue.d.ts +292 -88
  178. package/dist/README.md +0 -122
  179. package/src/compiler/directives/bind.js +0 -11
  180. package/src/core/global-api/use.js +0 -23
  181. package/src/core/instance/inject.js +0 -73
  182. package/src/core/vdom/helpers/is-async-placeholder.js +0 -5
  183. package/src/core/vdom/helpers/update-listeners.js +0 -95
  184. package/src/core/vdom/modules/index.js +0 -7
  185. package/src/core/vdom/modules/ref.js +0 -45
  186. package/src/platforms/web/compiler/directives/html.js +0 -9
  187. package/src/platforms/web/entry-server-basic-renderer.js +0 -13
  188. package/src/platforms/web/entry-server-renderer.js +0 -27
  189. package/src/platforms/web/runtime/node-ops.js +0 -59
  190. package/src/platforms/web/server/compiler.js +0 -11
  191. package/src/platforms/web/server/directives/index.js +0 -7
  192. package/src/platforms/web/server/directives/model.js +0 -44
  193. package/src/platforms/web/server/directives/show.js +0 -12
  194. package/src/platforms/web/server/modules/attrs.js +0 -67
  195. package/src/platforms/web/server/modules/class.js +0 -11
  196. package/src/platforms/web/server/modules/dom-props.js +0 -50
  197. package/src/platforms/web/server/modules/index.js +0 -11
  198. package/src/platforms/web/server/modules/style.js +0 -41
  199. package/src/platforms/web/server/util.js +0 -101
  200. package/src/platforms/weex/compiler/directives/index.js +0 -5
  201. package/src/platforms/weex/compiler/directives/model.js +0 -33
  202. package/src/platforms/weex/compiler/index.js +0 -52
  203. package/src/platforms/weex/compiler/modules/append.js +0 -27
  204. package/src/platforms/weex/compiler/modules/class.js +0 -74
  205. package/src/platforms/weex/compiler/modules/index.js +0 -13
  206. package/src/platforms/weex/compiler/modules/props.js +0 -37
  207. package/src/platforms/weex/compiler/modules/recycle-list/component-root.js +0 -13
  208. package/src/platforms/weex/compiler/modules/recycle-list/component.js +0 -16
  209. package/src/platforms/weex/compiler/modules/recycle-list/index.js +0 -60
  210. package/src/platforms/weex/compiler/modules/recycle-list/recycle-list.js +0 -50
  211. package/src/platforms/weex/compiler/modules/recycle-list/text.js +0 -23
  212. package/src/platforms/weex/compiler/modules/recycle-list/v-bind.js +0 -21
  213. package/src/platforms/weex/compiler/modules/recycle-list/v-for.js +0 -33
  214. package/src/platforms/weex/compiler/modules/recycle-list/v-if.js +0 -63
  215. package/src/platforms/weex/compiler/modules/recycle-list/v-on.js +0 -25
  216. package/src/platforms/weex/compiler/modules/recycle-list/v-once.js +0 -19
  217. package/src/platforms/weex/compiler/modules/style.js +0 -87
  218. package/src/platforms/weex/entry-compiler.js +0 -2
  219. package/src/platforms/weex/entry-framework.js +0 -187
  220. package/src/platforms/weex/entry-runtime-factory.js +0 -6
  221. package/src/platforms/weex/runtime/components/index.js +0 -9
  222. package/src/platforms/weex/runtime/components/richtext.js +0 -82
  223. package/src/platforms/weex/runtime/components/transition-group.js +0 -148
  224. package/src/platforms/weex/runtime/components/transition.js +0 -9
  225. package/src/platforms/weex/runtime/directives/index.js +0 -2
  226. package/src/platforms/weex/runtime/index.js +0 -42
  227. package/src/platforms/weex/runtime/modules/attrs.js +0 -44
  228. package/src/platforms/weex/runtime/modules/class.js +0 -76
  229. package/src/platforms/weex/runtime/modules/events.js +0 -54
  230. package/src/platforms/weex/runtime/modules/index.js +0 -13
  231. package/src/platforms/weex/runtime/modules/style.js +0 -84
  232. package/src/platforms/weex/runtime/modules/transition.js +0 -270
  233. package/src/platforms/weex/runtime/node-ops.js +0 -91
  234. package/src/platforms/weex/runtime/patch.js +0 -16
  235. package/src/platforms/weex/runtime/recycle-list/render-component-template.js +0 -34
  236. package/src/platforms/weex/runtime/recycle-list/virtual-component.js +0 -136
  237. package/src/platforms/weex/runtime/text-node.js +0 -9
  238. package/src/platforms/weex/util/element.js +0 -52
  239. package/src/platforms/weex/util/index.js +0 -40
  240. package/src/platforms/weex/util/parser.js +0 -60
  241. package/src/server/bundle-renderer/create-bundle-renderer.js +0 -151
  242. package/src/server/bundle-renderer/create-bundle-runner.js +0 -150
  243. package/src/server/bundle-renderer/source-map-support.js +0 -45
  244. package/src/server/create-basic-renderer.js +0 -37
  245. package/src/server/create-renderer.js +0 -152
  246. package/src/server/optimizing-compiler/codegen.js +0 -264
  247. package/src/server/optimizing-compiler/index.js +0 -20
  248. package/src/server/optimizing-compiler/modules.js +0 -124
  249. package/src/server/optimizing-compiler/optimizer.js +0 -141
  250. package/src/server/optimizing-compiler/runtime-helpers.js +0 -150
  251. package/src/server/render-context.js +0 -130
  252. package/src/server/render-stream.js +0 -95
  253. package/src/server/render.js +0 -437
  254. package/src/server/template-renderer/create-async-file-mapper.js +0 -57
  255. package/src/server/template-renderer/index.js +0 -277
  256. package/src/server/template-renderer/parse-template.js +0 -42
  257. package/src/server/template-renderer/template-stream.js +0 -82
  258. package/src/server/util.js +0 -18
  259. package/src/server/webpack-plugin/client.js +0 -65
  260. package/src/server/webpack-plugin/server.js +0 -66
  261. package/src/server/webpack-plugin/util.js +0 -34
  262. package/src/server/write.js +0 -50
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ function compile() { }
6
+
7
+ exports.compile = compile;
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/evan/Vue/vue/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="$NODE_PATH:/Users/evan/Vue/vue/node_modules/.pnpm/node_modules"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../../../../node_modules/.pnpm/@babel+parser@7.18.4/node_modules/@babel/parser/bin/babel-parser.js" "$@"
15
+ else
16
+ exec node "$basedir/../../../../node_modules/.pnpm/@babel+parser@7.18.4/node_modules/@babel/parser/bin/babel-parser.js" "$@"
17
+ fi
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/evan/Vue/vue/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="$NODE_PATH:/Users/evan/Vue/vue/node_modules/.pnpm/node_modules"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../../../../node_modules/.pnpm/sass@1.52.1/node_modules/sass/sass.js" "$@"
15
+ else
16
+ exec node "$basedir/../../../../node_modules/.pnpm/sass@1.52.1/node_modules/sass/sass.js" "$@"
17
+ fi
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "@vue/compiler-sfc",
3
+ "version": "2.7.0-alpha.2",
4
+ "description": "compiler-sfc for Vue 2",
5
+ "main": "dist/compiler-sfc.js",
6
+ "types": "dist/compiler-sfc.d.ts",
7
+ "files": [
8
+ "dist"
9
+ ],
10
+ "dependencies": {
11
+ "@babel/parser": "^7.16.4",
12
+ "source-map": "^0.6.1",
13
+ "postcss": "^8.1.10"
14
+ },
15
+ "devDependencies": {
16
+ "@types/estree": "^0.0.48",
17
+ "@babel/types": "^7.16.0",
18
+ "@types/lru-cache": "^5.1.0",
19
+ "estree-walker": "^2.0.2",
20
+ "magic-string": "^0.25.7",
21
+ "pug": "^3.0.1",
22
+ "sass": "^1.26.9",
23
+ "@vue/consolidate": "^0.17.3",
24
+ "hash-sum": "^2.0.0",
25
+ "lru-cache": "^5.1.1",
26
+ "merge-source-map": "^1.1.0",
27
+ "postcss-modules": "^4.0.0",
28
+ "postcss-selector-parser": "^6.0.4"
29
+ }
30
+ }
@@ -1,21 +1,21 @@
1
- /* @flow */
2
-
3
1
  const range = 2
4
2
 
5
- export function generateCodeFrame (
3
+ export function generateCodeFrame(
6
4
  source: string,
7
5
  start: number = 0,
8
6
  end: number = source.length
9
7
  ): string {
10
8
  const lines = source.split(/\r?\n/)
11
9
  let count = 0
12
- const res = []
10
+ const res: string[] = []
13
11
  for (let i = 0; i < lines.length; i++) {
14
12
  count += lines[i].length + 1
15
13
  if (count >= start) {
16
14
  for (let j = i - range; j <= i + range || end > count; j++) {
17
15
  if (j < 0 || j >= lines.length) continue
18
- res.push(`${j + 1}${repeat(` `, 3 - String(j + 1).length)}| ${lines[j]}`)
16
+ res.push(
17
+ `${j + 1}${repeat(` `, 3 - String(j + 1).length)}| ${lines[j]}`
18
+ )
19
19
  const lineLength = lines[j].length
20
20
  if (j === i) {
21
21
  // push underline
@@ -36,10 +36,12 @@ export function generateCodeFrame (
36
36
  return res.join('\n')
37
37
  }
38
38
 
39
- function repeat (str, n) {
39
+ function repeat(str: string, n: number) {
40
40
  let result = ''
41
41
  if (n > 0) {
42
- while (true) { // eslint-disable-line
42
+ // eslint-disable-next-line no-constant-condition
43
+ while (true) {
44
+ // eslint-disable-line
43
45
  if (n & 1) result += str
44
46
  n >>>= 1
45
47
  if (n <= 0) break
@@ -1,8 +1,9 @@
1
- /* @flow */
1
+ import { ASTElementHandler, ASTElementHandlers } from 'types/compiler'
2
2
 
3
3
  const fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/
4
4
  const fnInvokeRE = /\([^)]*?\);*$/
5
- const simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/
5
+ const simplePathRE =
6
+ /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/
6
7
 
7
8
  // KeyboardEvent.keyCode aliases
8
9
  const keyCodes: { [key: string]: number | Array<number> } = {
@@ -14,7 +15,7 @@ const keyCodes: { [key: string]: number | Array<number> } = {
14
15
  left: 37,
15
16
  right: 39,
16
17
  down: 40,
17
- 'delete': [8, 46]
18
+ delete: [8, 46]
18
19
  }
19
20
 
20
21
  // KeyboardEvent.key aliases
@@ -31,7 +32,7 @@ const keyNames: { [key: string]: string | Array<string> } = {
31
32
  right: ['Right', 'ArrowRight'],
32
33
  down: ['Down', 'ArrowDown'],
33
34
  // #9112: IE11 uses `Del` for Delete key name.
34
- 'delete': ['Backspace', 'Delete', 'Del']
35
+ delete: ['Backspace', 'Delete', 'Del']
35
36
  }
36
37
 
37
38
  // #4868: modifiers that prevent the execution of the listener
@@ -52,7 +53,7 @@ const modifierCode: { [key: string]: string } = {
52
53
  right: genGuard(`'button' in $event && $event.button !== 2`)
53
54
  }
54
55
 
55
- export function genHandlers (
56
+ export function genHandlers(
56
57
  events: ASTElementHandlers,
57
58
  isNative: boolean
58
59
  ): string {
@@ -61,6 +62,7 @@ export function genHandlers (
61
62
  let dynamicHandlers = ``
62
63
  for (const name in events) {
63
64
  const handlerCode = genHandler(events[name])
65
+ //@ts-expect-error
64
66
  if (events[name] && events[name].dynamic) {
65
67
  dynamicHandlers += `${name},${handlerCode},`
66
68
  } else {
@@ -75,25 +77,9 @@ export function genHandlers (
75
77
  }
76
78
  }
77
79
 
78
- // Generate handler code with binding params on Weex
79
- /* istanbul ignore next */
80
- function genWeexHandler (params: Array<any>, handlerCode: string) {
81
- let innerHandlerCode = handlerCode
82
- const exps = params.filter(exp => simplePathRE.test(exp) && exp !== '$event')
83
- const bindings = exps.map(exp => ({ '@binding': exp }))
84
- const args = exps.map((exp, i) => {
85
- const key = `$_${i + 1}`
86
- innerHandlerCode = innerHandlerCode.replace(exp, key)
87
- return key
88
- })
89
- args.push('$event')
90
- return '{\n' +
91
- `handler:function(${args.join(',')}){${innerHandlerCode}},\n` +
92
- `params:${JSON.stringify(bindings)}\n` +
93
- '}'
94
- }
95
-
96
- function genHandler (handler: ASTElementHandler | Array<ASTElementHandler>): string {
80
+ function genHandler(
81
+ handler: ASTElementHandler | Array<ASTElementHandler>
82
+ ): string {
97
83
  if (!handler) {
98
84
  return 'function(){}'
99
85
  }
@@ -104,23 +90,21 @@ function genHandler (handler: ASTElementHandler | Array<ASTElementHandler>): str
104
90
 
105
91
  const isMethodPath = simplePathRE.test(handler.value)
106
92
  const isFunctionExpression = fnExpRE.test(handler.value)
107
- const isFunctionInvocation = simplePathRE.test(handler.value.replace(fnInvokeRE, ''))
93
+ const isFunctionInvocation = simplePathRE.test(
94
+ handler.value.replace(fnInvokeRE, '')
95
+ )
108
96
 
109
97
  if (!handler.modifiers) {
110
98
  if (isMethodPath || isFunctionExpression) {
111
99
  return handler.value
112
100
  }
113
- /* istanbul ignore if */
114
- if (__WEEX__ && handler.params) {
115
- return genWeexHandler(handler.params, handler.value)
116
- }
117
101
  return `function($event){${
118
102
  isFunctionInvocation ? `return ${handler.value}` : handler.value
119
103
  }}` // inline statement
120
104
  } else {
121
105
  let code = ''
122
106
  let genModifierCode = ''
123
- const keys = []
107
+ const keys: string[] = []
124
108
  for (const key in handler.modifiers) {
125
109
  if (modifierCode[key]) {
126
110
  genModifierCode += modifierCode[key]
@@ -129,7 +113,7 @@ function genHandler (handler: ASTElementHandler | Array<ASTElementHandler>): str
129
113
  keys.push(key)
130
114
  }
131
115
  } else if (key === 'exact') {
132
- const modifiers: ASTModifiers = (handler.modifiers: any)
116
+ const modifiers = handler.modifiers
133
117
  genModifierCode += genGuard(
134
118
  ['ctrl', 'shift', 'alt', 'meta']
135
119
  .filter(keyModifier => !modifiers[keyModifier])
@@ -150,19 +134,15 @@ function genHandler (handler: ASTElementHandler | Array<ASTElementHandler>): str
150
134
  const handlerCode = isMethodPath
151
135
  ? `return ${handler.value}.apply(null, arguments)`
152
136
  : isFunctionExpression
153
- ? `return (${handler.value}).apply(null, arguments)`
154
- : isFunctionInvocation
155
- ? `return ${handler.value}`
156
- : handler.value
157
- /* istanbul ignore if */
158
- if (__WEEX__ && handler.params) {
159
- return genWeexHandler(handler.params, code + handlerCode)
160
- }
137
+ ? `return (${handler.value}).apply(null, arguments)`
138
+ : isFunctionInvocation
139
+ ? `return ${handler.value}`
140
+ : handler.value
161
141
  return `function($event){${code}${handlerCode}}`
162
142
  }
163
143
  }
164
144
 
165
- function genKeyFilter (keys: Array<string>): string {
145
+ function genKeyFilter(keys: Array<string>): string {
166
146
  return (
167
147
  // make sure the key filters only apply to KeyboardEvents
168
148
  // #9441: can't use 'keyCode' in $event because Chrome autofill fires fake
@@ -172,7 +152,7 @@ function genKeyFilter (keys: Array<string>): string {
172
152
  )
173
153
  }
174
154
 
175
- function genFilterCode (key: string): string {
155
+ function genFilterCode(key: string): string {
176
156
  const keyVal = parseInt(key, 10)
177
157
  if (keyVal) {
178
158
  return `$event.keyCode!==${keyVal}`