Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | 83x 83x 83x 83x 83x 200x 200x 200x 2x 2x 198x 8x 200x 3x 2x 1x 1x 1x 1x 200x 150x 5x 150x 1x 200x 2x 2x 198x 83x 6x 5x 4x 1x 1x 1x | import { DirectiveTransform } from '../transform' import { createObjectProperty, createSimpleExpression, ExpressionNode, NodeTypes } from '../ast' import { createCompilerError, ErrorCodes } from '../errors' import { camelize } from '@vue/shared' import { CAMELIZE } from '../runtimeHelpers' // v-bind without arg is handled directly in ./transformElements.ts due to it affecting // codegen for the entire props object. This transform here is only for v-bind // *with* args. export const transformBind: DirectiveTransform = (dir, _node, context) => { const { exp, modifiers, loc } = dir const arg = dir.arg! if (arg.type !== NodeTypes.SIMPLE_EXPRESSION) { arg.children.unshift(`(`) arg.children.push(`) || ""`) } else if (!arg.isStatic) { arg.content = `${arg.content} || ""` } // .sync is replaced by v-model:arg if (modifiers.includes('camel')) { if (arg.type === NodeTypes.SIMPLE_EXPRESSION) { if (arg.isStatic) { arg.content = camelize(arg.content) } else { arg.content = `${context.helperString(CAMELIZE)}(${arg.content})` } } else { arg.children.unshift(`${context.helperString(CAMELIZE)}(`) arg.children.push(`)`) } } if (!context.inSSR) { if (modifiers.includes('prop')) { injectPrefix(arg, '.') } if (modifiers.includes('attr')) { injectPrefix(arg, '^') } } if ( !exp || (exp.type === NodeTypes.SIMPLE_EXPRESSION && !exp.content.trim()) ) { context.onError(createCompilerError(ErrorCodes.X_V_BIND_NO_EXPRESSION, loc)) return { props: [createObjectProperty(arg, createSimpleExpression('', true, loc))] } } return { props: [createObjectProperty(arg, exp)] } } const injectPrefix = (arg: ExpressionNode, prefix: string) => { if (arg.type === NodeTypes.SIMPLE_EXPRESSION) { if (arg.isStatic) { arg.content = prefix + arg.content } else { arg.content = `\`${prefix}\${${arg.content}}\`` } } else { arg.children.unshift(`'${prefix}' + (`) arg.children.push(`)`) } } |