From f68e7383e2dfe03b1581dfd9cf04fd2f591c92ec Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Tue, 6 Jun 2017 14:13:18 +0200 Subject: [PATCH] Do not use object.deepClone on the incoming editor options (#28093) --- src/vs/editor/common/config/commonEditorConfig.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/vs/editor/common/config/commonEditorConfig.ts b/src/vs/editor/common/config/commonEditorConfig.ts index 7c32373ad2f..310a51d8538 100644 --- a/src/vs/editor/common/config/commonEditorConfig.ts +++ b/src/vs/editor/common/config/commonEditorConfig.ts @@ -76,7 +76,12 @@ export abstract class CommonEditorConfiguration extends Disposable implements ed constructor(options: editorOptions.IEditorOptions) { super(); - this._rawOptions = objects.deepClone(options || {}); + // Do a "deep clone of sorts" on the incoming options + this._rawOptions = objects.mixin({}, options || {}); + this._rawOptions.scrollbar = objects.mixin({}, this._rawOptions.scrollbar || {}); + this._rawOptions.minimap = objects.mixin({}, this._rawOptions.minimap || {}); + this._rawOptions.find = objects.mixin({}, this._rawOptions.find || {}); + this._validatedOptions = editorOptions.EditorOptionsValidator.validate(this._rawOptions, EDITOR_DEFAULTS); this.editor = null; this._isDominatedByLongLines = false;