return res
}
- test('function mode', async () => {
+ test('function mode', () => {
const { code, map } = compile(source, {
sourceMap: true,
filename: `foo.vue`
expect(map!.sources).toEqual([`foo.vue`])
expect(map!.sourcesContent).toEqual([source])
- const consumer = await new SourceMapConsumer(map as RawSourceMap)
+ const consumer = new SourceMapConsumer(map as RawSourceMap)
expect(
consumer.originalPositionFor(getPositionInCode(code, `id`))
).toMatchObject(getPositionInCode(source, `value + index`))
})
- test('function mode w/ prefixIdentifiers: true', async () => {
+ test('function mode w/ prefixIdentifiers: true', () => {
const { code, map } = compile(source, {
sourceMap: true,
filename: `foo.vue`,
expect(map!.sources).toEqual([`foo.vue`])
expect(map!.sourcesContent).toEqual([source])
- const consumer = await new SourceMapConsumer(map as RawSourceMap)
+ const consumer = new SourceMapConsumer(map as RawSourceMap)
expect(
consumer.originalPositionFor(getPositionInCode(code, `id`))
).toMatchObject(getPositionInCode(source, `value + index`))
})
- test('module mode', async () => {
+ test('module mode', () => {
const { code, map } = compile(source, {
mode: 'module',
sourceMap: true,
expect(map!.sources).toEqual([`foo.vue`])
expect(map!.sourcesContent).toEqual([source])
- const consumer = await new SourceMapConsumer(map as RawSourceMap)
+ const consumer = new SourceMapConsumer(map as RawSourceMap)
expect(
consumer.originalPositionFor(getPositionInCode(code, `id`))
"dependencies": {
"acorn": "^7.1.0",
"estree-walker": "^0.8.1",
- "source-map": "^0.7.3"
+ "source-map": "^0.6.1"
}
}
CallExpression,
ArrayExpression,
ObjectExpression,
- SourceLocation,
Position,
InterpolationNode,
CompoundExpressionNode,
FunctionExpression,
SequenceExpression,
ConditionalExpression,
- CacheExpression
+ CacheExpression,
+ locStub
} from './ast'
import { SourceMapGenerator, RawSourceMap } from 'source-map'
import {
indentLevel: number
map?: SourceMapGenerator
helper(key: symbol): string
- push(code: string, node?: CodegenNode, openOnly?: boolean): void
- resetMapping(loc: SourceLocation): void
+ push(code: string, node?: CodegenNode): void
indent(): void
deindent(withoutNewLine?: boolean): void
newline(): void
const name = helperNameMap[key]
return prefixIdentifiers ? name : `_${name}`
},
- push(code, node, openOnly) {
+ push(code, node) {
context.code += code
if (!__BROWSER__ && context.map) {
if (node) {
addMapping(node.loc.start, name)
}
advancePositionWithMutation(context, code)
- if (node && !openOnly) {
+ if (node && node.loc !== locStub) {
addMapping(node.loc.end)
}
}
},
- resetMapping(loc: SourceLocation) {
- if (!__BROWSER__ && context.map) {
- addMapping(loc.start)
- }
- },
indent() {
newline(++context.indentLevel)
},
return {
ast,
code: context.code,
- map: context.map ? context.map.toJSON() : undefined
+ // SourceMapGenerator does have toJSON() method but it's not in the types
+ map: context.map ? (context.map as any).toJSON() : undefined
}
}
const callee = isString(node.callee)
? node.callee
: context.helper(node.callee)
- context.push(callee + `(`, node, true)
+ context.push(callee + `(`, node)
genNodeList(node.arguments, context)
context.push(`)`)
}
function genObjectExpression(node: ObjectExpression, context: CodegenContext) {
- const { push, indent, deindent, newline, resetMapping } = context
+ const { push, indent, deindent, newline } = context
const { properties } = node
if (!properties.length) {
push(`{}`, node)
push(multilines ? `{` : `{ `)
multilines && indent()
for (let i = 0; i < properties.length; i++) {
- const { key, value, loc } = properties[i]
- resetMapping(loc) // reset source mapping for every property.
+ const { key, value } = properties[i]
// key
genExpressionAsPropertyKey(key, context)
push(`: `)
exports[`source map 1`] = `
Object {
- "mappings": ";;;;UAAA,aACE;IAAK,gCAAMA,WAAM",
+ "mappings": ";;;;UAAA,aACE,YAA8B;IAAzB,YAAmB,oBAAbA,WAAM",
"names": Array [
"render",
],
"merge-source-map": "^1.1.0",
"postcss": "^7.0.21",
"postcss-selector-parser": "^6.0.2",
- "source-map": "^0.7.3"
+ "source-map": "^0.6.1"
},
"devDependencies": {
"@types/consolidate": "^0.14.0",
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-source-map@^0.7.3:
- version "0.7.3"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
- integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
-
sourcemap-codec@^1.4.4:
version "1.4.6"
resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz#e30a74f0402bad09807640d39e971090a08ce1e9"