terminal<\/span><\/div>', 'g')) || []).length, 1, output);
+ assert.equal((output.match(/terminal<\/span><\/div>/g) || []).length, 1, output);
});
it('cells with bold styling', async () => {
await writeP(terminal, ' ' + sgr('1') + 'terminal' + sgr('22') + ' ');
const output = serializeAddon.serializeAsHTML();
- assert.equal((output.match(new RegExp('terminal<\/span>', 'g')) || []).length, 1, output);
+ assert.equal((output.match(/terminal<\/span>/g) || []).length, 1, output);
});
it('cells with italic styling', async () => {
await writeP(terminal, ' ' + sgr('3') + 'terminal' + sgr('23') + ' ');
const output = serializeAddon.serializeAsHTML();
- assert.equal((output.match(new RegExp('terminal<\/span>', 'g')) || []).length, 1, output);
+ assert.equal((output.match(/terminal<\/span>/g) || []).length, 1, output);
});
it('cells with inverse styling', async () => {
await writeP(terminal, ' ' + sgr('7') + 'terminal' + sgr('27') + ' ');
const output = serializeAddon.serializeAsHTML();
- assert.equal((output.match(new RegExp('terminal<\/span>', 'g')) || []).length, 1, output);
+ assert.equal((output.match(/terminal<\/span>/g) || []).length, 1, output);
});
it('cells with underline styling', async () => {
await writeP(terminal, ' ' + sgr('4') + 'terminal' + sgr('24') + ' ');
const output = serializeAddon.serializeAsHTML();
- assert.equal((output.match(new RegExp('terminal<\/span>', 'g')) || []).length, 1, output);
+ assert.equal((output.match(/terminal<\/span>/g) || []).length, 1, output);
});
it('cells with invisible styling', async () => {
await writeP(terminal, ' ' + sgr('8') + 'terminal' + sgr('28') + ' ');
const output = serializeAddon.serializeAsHTML();
- assert.equal((output.match(new RegExp('terminal<\/span>', 'g')) || []).length, 1, output);
+ assert.equal((output.match(/terminal<\/span>/g) || []).length, 1, output);
});
it('cells with dim styling', async () => {
await writeP(terminal, ' ' + sgr('2') + 'terminal' + sgr('22') + ' ');
const output = serializeAddon.serializeAsHTML();
- assert.equal((output.match(new RegExp('terminal<\/span>', 'g')) || []).length, 1, output);
+ assert.equal((output.match(/terminal<\/span>/g) || []).length, 1, output);
});
it('cells with strikethrough styling', async () => {
await writeP(terminal, ' ' + sgr('9') + 'terminal' + sgr('29') + ' ');
const output = serializeAddon.serializeAsHTML();
- assert.equal((output.match(new RegExp('terminal<\/span>', 'g')) || []).length, 1, output);
+ assert.equal((output.match(/terminal<\/span>/g) || []).length, 1, output);
});
it('cells with combined styling', async () => {
await writeP(terminal, sgr('1') + ' ' + sgr('9') + 'termi' + sgr('22') + 'nal' + sgr('29') + ' ');
const output = serializeAddon.serializeAsHTML();
- assert.equal((output.match(new RegExp(' <\/span>', 'g')) || []).length, 1, output);
- assert.equal((output.match(new RegExp('termi<\/span>', 'g')) || []).length, 1, output);
- assert.equal((output.match(new RegExp('nal<\/span>', 'g')) || []).length, 1, output);
+ assert.equal((output.match(/ <\/span>/g) || []).length, 1, output);
+ assert.equal((output.match(/termi<\/span>/g) || []).length, 1, output);
+ assert.equal((output.match(/nal<\/span>/g) || []).length, 1, output);
});
it('cells with color styling', async () => {
await writeP(terminal, ' ' + sgr('38;5;46') + 'terminal' + sgr('39') + ' ');
const output = serializeAddon.serializeAsHTML();
- assert.equal((output.match(new RegExp('terminal<\/span>', 'g')) || []).length, 1, output);
+ assert.equal((output.match(/terminal<\/span>/g) || []).length, 1, output);
});
it('cells with background styling', async () => {
await writeP(terminal, ' ' + sgr('48;5;46') + 'terminal' + sgr('49') + ' ');
const output = serializeAddon.serializeAsHTML();
- assert.equal((output.match(new RegExp('terminal<\/span>', 'g')) || []).length, 1, output);
+ assert.equal((output.match(/terminal<\/span>/g) || []).length, 1, output);
});
it('empty terminal with default options', async () => {
const output = serializeAddon.serializeAsHTML();
- assert.equal((output.match(new RegExp('color: #000000; background-color: #ffffff; font-family: courier-new, courier, monospace; font-size: 15px;', 'g')) || []).length, 1, output);
+ assert.equal((output.match(/color: #000000; background-color: #ffffff; font-family: courier-new, courier, monospace; font-size: 15px;/g) || []).length, 1, output);
});
it('empty terminal with custom options', async () => {
@@ -193,13 +193,13 @@ describe('xterm-addon-serialize html', () => {
const output = serializeAddon.serializeAsHTML({
includeGlobalBackground: true
});
- assert.equal((output.match(new RegExp('color: #ff00ff; background-color: #00ff00; font-family: verdana; font-size: 20px;', 'g')) || []).length, 1, output);
+ assert.equal((output.match(/color: #ff00ff; background-color: #00ff00; font-family: verdana; font-size: 20px;/g) || []).length, 1, output);
});
it('empty terminal with background included', async () => {
const output = serializeAddon.serializeAsHTML({
includeGlobalBackground: true
});
- assert.equal((output.match(new RegExp('color: #ffffff; background-color: #000000; font-family: courier-new, courier, monospace; font-size: 15px;', 'g')) || []).length, 1, output);
+ assert.equal((output.match(/color: #ffffff; background-color: #000000; font-family: courier-new, courier, monospace; font-size: 15px;/g) || []).length, 1, output);
});
});
diff --git a/addons/xterm-addon-serialize/src/SerializeAddon.ts b/addons/xterm-addon-serialize/src/SerializeAddon.ts
index 25a42e65..8d6f8b36 100644
--- a/addons/xterm-addon-serialize/src/SerializeAddon.ts
+++ b/addons/xterm-addon-serialize/src/SerializeAddon.ts
@@ -544,7 +544,7 @@ export class HTMLSerializeHandler extends BaseSerializeHandler {
return target;
}
- targetLength = targetLength - target.length;
+ targetLength -= target.length;
if (targetLength > padString.length) {
padString += padString.repeat(targetLength / padString.length);
}
diff --git a/addons/xterm-addon-serialize/test/SerializeAddon.api.ts b/addons/xterm-addon-serialize/test/SerializeAddon.api.ts
index 334016e6..5c4ae437 100644
--- a/addons/xterm-addon-serialize/test/SerializeAddon.api.ts
+++ b/addons/xterm-addon-serialize/test/SerializeAddon.api.ts
@@ -14,7 +14,7 @@ let page: Page;
const width = 800;
const height = 600;
-const writeRawSync = (page: any, str: string): Promise => writeSync(page, '\' +' + JSON.stringify(str) + '+ \'');
+const writeRawSync = (page: any, str: string): Promise => writeSync(page, `' +` + JSON.stringify(str) + `+ '`);
const testNormalScreenEqual = async (page: any, str: string): Promise => {
await writeRawSync(page, str);
diff --git a/src/browser/ColorManager.ts b/src/browser/ColorManager.ts
index b4b57c67..e7ac10ba 100644
--- a/src/browser/ColorManager.ts
+++ b/src/browser/ColorManager.ts
@@ -185,7 +185,7 @@ export class ColorManager implements IColorManager {
foreground: this.colors.foreground,
background: this.colors.background,
cursor: this.colors.cursor,
- ansi: [...this.colors.ansi]
+ ansi: this.colors.ansi.slice()
};
}
diff --git a/src/browser/renderer/atlas/CharAtlasUtils.ts b/src/browser/renderer/atlas/CharAtlasUtils.ts
index be92727a..696c6c12 100644
--- a/src/browser/renderer/atlas/CharAtlasUtils.ts
+++ b/src/browser/renderer/atlas/CharAtlasUtils.ts
@@ -16,7 +16,7 @@ export function generateConfig(scaledCharWidth: number, scaledCharHeight: number
cursor: undefined,
cursorAccent: undefined,
selection: undefined,
- ansi: [...colors.ansi]
+ ansi: colors.ansi.slice()
};
return {
devicePixelRatio: window.devicePixelRatio,
diff --git a/src/common/input/XParseColor.ts b/src/common/input/XParseColor.ts
index 8c023a38..fd23ec4b 100644
--- a/src/common/input/XParseColor.ts
+++ b/src/common/input/XParseColor.ts
@@ -5,7 +5,7 @@
// 'rgb:' rule - matching: r/g/b | rr/gg/bb | rrr/ggg/bbb | rrrr/gggg/bbbb (hex digits)
-const RGB_REX = /^([\da-f]{1})\/([\da-f]{1})\/([\da-f]{1})$|^([\da-f]{2})\/([\da-f]{2})\/([\da-f]{2})$|^([\da-f]{3})\/([\da-f]{3})\/([\da-f]{3})$|^([\da-f]{4})\/([\da-f]{4})\/([\da-f]{4})$/;
+const RGB_REX = /^([\da-f])\/([\da-f])\/([\da-f])$|^([\da-f]{2})\/([\da-f]{2})\/([\da-f]{2})$|^([\da-f]{3})\/([\da-f]{3})\/([\da-f]{3})$|^([\da-f]{4})\/([\da-f]{4})\/([\da-f]{4})$/;
// '#...' rule - matching any hex digits
const HASH_REX = /^[\da-f]+$/;