9a60eb637a056b3a50a73cfb9d98df585635e9bcedc253668377577df50ca22156b83a3e840f514c28952622fae527095f4558e5036418f3da67f0db998811 722 B

12345678910111213141516171819202122232425
  1. /* @flow */
  2. const inlineStatementRE = /^\s*([A-Za-z_$0-9\['\."\]]+)*\s*\(\s*(([A-Za-z_$0-9\['\."\]]+)?(\s*,\s*([A-Za-z_$0-9\['\."\]]+))*)\s*\)$/
  3. function parseHandlerParams (handler: ASTElementHandler) {
  4. const res = inlineStatementRE.exec(handler.value)
  5. if (res && res[2]) {
  6. handler.params = res[2].split(/\s*,\s*/)
  7. }
  8. }
  9. export function postTransformVOn (el: ASTElement) {
  10. const events: ASTElementHandlers | void = el.events
  11. if (!events) {
  12. return
  13. }
  14. for (const name in events) {
  15. const handler: ASTElementHandler | Array<ASTElementHandler> = events[name]
  16. if (Array.isArray(handler)) {
  17. handler.map(fn => parseHandlerParams(fn))
  18. } else {
  19. parseHandlerParams(handler)
  20. }
  21. }
  22. }