diff --git a/test/fixtures/source-map/disk-index.map b/test/fixtures/source-map/disk-index.map new file mode 100644 index 00000000000000..f004518626b26e --- /dev/null +++ b/test/fixtures/source-map/disk-index.map @@ -0,0 +1,30 @@ +{ + "version": 3, + "sources": [ + "disk.js" + ], + "sections": [ + { "offset": {"line": 0, "column": 0 }, "map": + { + "version": 3, + "sources": [ + "section.js" + ], + "names": [ + "Foo", + "[object Object]", + "x", + "this", + "console", + "info", + "methodC", + "a", + "b", + "methodA" + ], + "mappings": "MAAMA,IACJC,YAAaC,EAAE,IACbC,KAAKD,EAAIA,EAAIA,EAAI,GACjB,GAAIC,KAAKD,EAAG,CACVE,QAAQC,KAAK,eACR,CACLD,QAAQC,KAAK,aAEfF,KAAKG,UAEPL,UACEG,QAAQC,KAAK,WAEfJ,UACEG,QAAQC,KAAK,aAEfJ,UACEG,QAAQC,KAAK,WAEfJ,UACEG,QAAQC,KAAK,cAIjB,MAAME,EAAI,IAAIP,IAAI,GAClB,MAAMQ,EAAI,IAAIR,IAAI,IAClBO,EAAEE", + "sourceRoot": "./" + } + } + ] +} diff --git a/test/parallel/test-source-map-api.js b/test/parallel/test-source-map-api.js index 03c892419be94c..39d523b3e1500b 100644 --- a/test/parallel/test-source-map-api.js +++ b/test/parallel/test-source-map-api.js @@ -126,6 +126,27 @@ const { readFileSync } = require('fs'); assert.strictEqual(Object.keys(result).length, 0); } +// SourceMap can be instantiated with Index Source Map V3 object as payload. +{ + const payload = JSON.parse(readFileSync( + require.resolve('../fixtures/source-map/disk-index.map'), 'utf8' + )); + const sourceMap = new SourceMap(payload); + const { + originalLine, + originalColumn, + originalSource + } = sourceMap.findEntry(0, 29); + assert.strictEqual(originalLine, 2); + assert.strictEqual(originalColumn, 4); + assert(originalSource.endsWith('section.js')); + // The stored payload should be a clone: + assert.strictEqual(payload.mappings, sourceMap.payload.mappings); + assert.notStrictEqual(payload, sourceMap.payload); + assert.strictEqual(payload.sources[0], sourceMap.payload.sources[0]); + assert.notStrictEqual(payload.sources, sourceMap.payload.sources); +} + // Test various known decodings to ensure decodeVLQ works correctly. { function makeMinimalMap(column) {