diff --git a/front_end/formatter/ScriptFormatter.js b/front_end/formatter/ScriptFormatter.js index d1a15320a4..d6b0619cbb 100644 --- a/front_end/formatter/ScriptFormatter.js +++ b/front_end/formatter/ScriptFormatter.js @@ -91,13 +91,23 @@ export class ScriptFormatter { * @param {function(string, !FormatterSourceMapping)} callback */ constructor(mimeType, content, callback) { - content = content.replace(/\r\n?|[\n\u2028\u2029]/g, '\n').replace(/^\uFEFF/, ''); + this._mimeType = mimeType; + this._originalContent = content.replace(/\r\n?|[\n\u2028\u2029]/g, '\n').replace(/^\uFEFF/, ''); this._callback = callback; - this._originalContent = content; - formatterWorkerPool() - .format(mimeType, content, Common.Settings.Settings.instance().moduleSetting('textEditorIndent').get()) - .then(this._didFormatContent.bind(this)); + this._initialize(); + } + + async _initialize() { + const pool = formatterWorkerPool(); + const indent = Common.Settings.Settings.instance().moduleSetting('textEditorIndent').get(); + + const formatResult = await pool.format(this._mimeType, this._originalContent, indent); + if (!formatResult) { + this._callback(this._originalContent, new IdentityFormatterSourceMapping()); + } else { + this._didFormatContent(formatResult); + } } /**