From bf3ea73cb2ef8a356f9d9c71f0eabbcb4c89d266 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 6 Jul 2017 22:12:24 +0200 Subject: [PATCH] Avoid `(sliced string)` (#30180) --- .../services/textfile/electron-browser/modelBuilder.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/services/textfile/electron-browser/modelBuilder.ts b/src/vs/workbench/services/textfile/electron-browser/modelBuilder.ts index 77417f82d44..e73c6a547eb 100644 --- a/src/vs/workbench/services/textfile/electron-browser/modelBuilder.ts +++ b/src/vs/workbench/services/textfile/electron-browser/modelBuilder.ts @@ -11,6 +11,8 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { CharCode } from 'vs/base/common/charCode'; import { IRawTextSource } from 'vs/editor/common/model/textSource'; +const AVOID_SLICED_STRINGS = true; + export interface ModelBuilderResult { readonly hash: string; readonly value: IRawTextSource; @@ -40,7 +42,12 @@ class ModelLineBasedBuilder { } for (let i = 0, len = lines.length; i < len; i++) { - this.lines[this.currLineIndex++] = lines[i]; + let line = lines[i]; + if (AVOID_SLICED_STRINGS) { + // See https://bugs.chromium.org/p/v8/issues/detail?id=2869 + line = Buffer.from(line).toString(); + } + this.lines[this.currLineIndex++] = line; } this.hash.update(lines.join('\n') + '\n'); }