diff --git a/src/vs/editor/common/config/commonEditorConfig.ts b/src/vs/editor/common/config/commonEditorConfig.ts index 10fd23bd6d6c7930240b99e9058a8107f178f752..20647dd28bab01adefe3918b2dd3708c9e2042a9 100644 --- a/src/vs/editor/common/config/commonEditorConfig.ts +++ b/src/vs/editor/common/config/commonEditorConfig.ts @@ -16,17 +16,7 @@ import * as editorCommon from 'vs/editor/common/editorCommon'; import { EditorLayoutProvider } from 'vs/editor/common/viewLayout/editorLayoutProvider'; import { ScrollbarVisibility } from 'vs/base/common/scrollable'; import { FontInfo, BareFontInfo } from 'vs/editor/common/config/fontInfo'; - -// TODO@Alex: investigate if it is better to stick to 31 bits (see smi = SMall Integer) -// See https://thibaultlaurens.github.io/javascript/2013/04/29/how-the-v8-engine-works/#tagged-values -/** - * MAX_INT that fits in 32 bits - */ -const MAX_SAFE_INT = 0x7fffffff; -/** - * MIN_INT that fits in 32 bits - */ -const MIN_SAFE_INT = -0x80000000; +import { Constants } from 'vs/editor/common/core/uint'; export interface IEditorZoom { onDidChangeZoomLevel: Event; @@ -408,7 +398,7 @@ function toFloat(source: any, defaultValue: number): number { return r; } -function toInteger(source: any, minimum: number = MIN_SAFE_INT, maximum: number = MAX_SAFE_INT): number { +function toInteger(source: any, minimum: number = Constants.MIN_SAFE_SMALL_INTEGER, maximum: number = Constants.MAX_SAFE_SMALL_INTEGER): number { let r = parseInt(source, 10); if (isNaN(r)) { r = 0; diff --git a/src/vs/editor/common/core/uint.ts b/src/vs/editor/common/core/uint.ts index 9f42eb3a22fb6c479f23fd151af009286dd2fa12..b68709f2ce2bad8ca273ea8c16f2c4ce98aa6276 100644 --- a/src/vs/editor/common/core/uint.ts +++ b/src/vs/editor/common/core/uint.ts @@ -35,9 +35,18 @@ export const enum Constants { * MAX SMI (SMall Integer) as defined in v8. * one bit is lost for boxing/unboxing flag. * one bit is lost for sign flag. + * See https://thibaultlaurens.github.io/javascript/2013/04/29/how-the-v8-engine-works/#tagged-values */ MAX_SAFE_SMALL_INTEGER = 1 << 30, + /** + * MIN SMI (SMall Integer) as defined in v8. + * one bit is lost for boxing/unboxing flag. + * one bit is lost for sign flag. + * See https://thibaultlaurens.github.io/javascript/2013/04/29/how-the-v8-engine-works/#tagged-values + */ + MIN_SAFE_SMALL_INTEGER = -(1 << 30), + /** * Max unsigned integer that fits on 8 bits. */