| 85 | } |
| 86 | |
| 87 | function compareStackTrace(sourceMap, source, expected) { |
| 88 | // Check once with a separate source map |
| 89 | fs.writeFileSync('.generated.js.map', String(sourceMap)); |
| 90 | fs.writeFileSync('.generated.js', 'exports.test = function() {' + |
| 91 | source.join('\n') + '};//@ sourceMappingURL=.generated.js.map'); |
| 92 | try { |
| 93 | delete require.cache[require.resolve('./.generated')]; |
| 94 | require('./.generated').test(); |
| 95 | } catch (e) { |
| 96 | compareLines(e.stack.split(/\r\n|\n/), expected); |
| 97 | } |
| 98 | fs.unlinkSync('.generated.js'); |
| 99 | fs.unlinkSync('.generated.js.map'); |
| 100 | |
| 101 | // Check again with an inline source map (in a data URL) |
| 102 | fs.writeFileSync('.generated.js', 'exports.test = function() {' + |
| 103 | source.join('\n') + '};//@ sourceMappingURL=data:application/json;base64,' + |
| 104 | bufferFrom(sourceMap.toString()).toString('base64')); |
| 105 | try { |
| 106 | delete require.cache[require.resolve('./.generated')]; |
| 107 | require('./.generated').test(); |
| 108 | } catch (e) { |
| 109 | compareLines(e.stack.split(/\r\n|\n/), expected); |
| 110 | } |
| 111 | fs.unlinkSync('.generated.js'); |
| 112 | } |
| 113 | |
| 114 | function compareStdout(done, sourceMap, source, expected) { |
| 115 | fs.writeFileSync('.original.js', 'this is the original code'); |