mirror of
https://github.com/status-im/react-native.git
synced 2025-01-09 17:15:54 +00:00
f99468de65
Summary:This rev adds support for production sourcemaps on RAM. When we inject a module into JSC we use the original `sourceURL` and specify the `startingLineNumber` of the module relative to a "regular" bundle. By doing so, when an error is thrown, JSC will include the provided `sourceURL` as the filename and will use the indicated `startingLineNumber` to figure out on which line the error actually occurred. To make things a bit simpler and avoid having to deal with columns, we tweak the generated bundle so that each module starts on a new line. Since we cannot assure that each module's code will be on a single line as the minifier might break it on multiple (UglifyJS does so due to a bug on old versions of Chrome), we include on the index the line number that should be used when invoking `JSEvaluateScript`. Since the module length was not being used we replaced the placeholder we have there for the line number. Reviewed By: javache Differential Revision: D2997520 fb-gh-sync-id: 3243a489cbb5b48a963f4ccdd98ba63b30f53f3f shipit-source-id: 3243a489cbb5b48a963f4ccdd98ba63b30f53f3f
25 lines
729 B
JavaScript
25 lines
729 B
JavaScript
/**
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*/
|
|
'use strict';
|
|
|
|
const Promise = require('promise');
|
|
const writeFile = require('../writeFile');
|
|
|
|
function writeSourcemap(fileName, contents, log) {
|
|
if (!fileName) {
|
|
return Promise.resolve();
|
|
}
|
|
log('Writing sourcemap output to:', fileName);
|
|
const writeMap = writeFile(fileName, contents, null);
|
|
writeMap.then(() => log('Done writing sourcemap output'));
|
|
return writeMap;
|
|
}
|
|
|
|
module.exports = writeSourcemap;
|