diff --git a/autotests/folding/test.ts.fold b/autotests/folding/test.ts.fold index baffd64..39667b1 100644 --- a/autotests/folding/test.ts.fold +++ b/autotests/folding/test.ts.fold @@ -1,181 +1,189 @@ /// // TypeScript Test class Student { fullName: string; constructor(public firstName: string, public middleInitial: string, public lastName: string) { this.fullName = firstName + " " + middleInitial + " " + lastName; } } interface Person { firstName: string; lastName: string; } function greeter(person : Person) { return "Hello, " + person.firstName + " " + person.lastName; } let user = new Student("Jane", "M.", "User"); document.body.innerHTML = greeter(user); JSON.stringify() console.log("Hello world"); import http = require("http"); import path = require("path"); import URL = url.URL; import { Readable, Writable } from "stream"; import { isBuffer, isString, isObject } from "util"; const port = 8__88___8; const baseUrl = new URL(`http://localhost:${port}/`); const rootDir = path.dirname(__dirname); const defaultBrowser = os.platform() === "win32" ? "edge" : "chrome"; let browser: "edge" | "chrome" | "none" = defaultBrowser; let grep: string | undefined; interface FileBasedTestConfiguration { [setting: string]: string; } function swapCase(s: string): string { return s.replace(/\w/g, (ch) => { const up = ch.toUpperCase(); return ch === up ? ch.toLowerCase() : up; }); } for (var i in pieces) { switch (true) { case /^\"?Accession\"?/.test(pieces[i]): numeration[0] = i; break; } } const enum ResponseCode { Success = 200, BadRequest = 400 } // Substitutions export function isInOpenInterval(start: number, end: number) { return tersible(a => a > start && a < end, () => `(${start}...${end})`) } const bar = `${x} ${y}`; // readonly function f1(mt: [number, number], rt: readonly [number, number]) { } function f2(ma: string[], ra: readonly string[], mt: [string, string], rt: readonly [string, string]) { } type ReadWrite = { -readonly [P in keyof T] : T[P] }; // const assertion let obj = { x: 10, y: [20, 30], z: { a: { b: 42 } } } as const; let r2 = { x: 20, y: 10 } as const; let r2 = {...p} as const; let p1 = { x: 10, y: 20 as const }; let p2 = { 10 as const, 'foo' as const }; // Definite assignment operator class Cl { one?: string; two!: string; } let x! = 1; // Function with multiple arguments const children = [].map>>(element => { if (!this.identityProvider) { return element; } return element; }); // Numerics var a = 0xA; var b = 0b1; var c = 0o7; var d = 1.1E+3; var e = 1.E+3; var f = .1E+3; var g = 1E+3; var h = 1.1; var i = 1.; var j = .1; var k = 1; var l = 1__.e+3_22 | .2____e2 | 0o1_23 | 11__. ; // Bigint const binBig = 0b101n; const octBig = 0o567n; const hexBig = 0xC0Bn; const decBig = 123n; // Types let a: null = null; let b: number = 123; let c: number = 123.456; let d: string = `Geeks`; let e: undefined = undefined; let f: boolean = true; let g: number = 0b111001; // Binary let h: number = 0o436; // Octal let i: number = 0xadf0d; // Hexa-Decimal const query = query<[number], number>(` SELECT * FROM statistics WHERE unit_id = $1`) function runQuery() { const query = createQuery<[number[]], Table>(` some SQL here `) return database.execute(query) } aa: string ? string string // Don't highlight aa: string assa | string string ; string aa: { string string } // Don't highlight aa: [ string string ] aa: ( string string ) // Don't highlight aa: string interface a { aa: /* comment */ string, bb: /* comment */ number, cc: // comment void, dd: any, } null, <{[key]: () => any}> null null, <{[key]: () =>{a: number}}> null // Correctly highlighting regular expressions dt = ((dt[0] * 1e9 + dt[1]) / 1e6).toFixed(3).replace(/\.?0+$/, '') + 'ms'; (a[0] / 2) / (2) // Type guards function isNumber(x: any): x is number { return typeof x === "number"; } + +// Conditional expressions (highlight keywords before ":") +class C { + w = () => + this.a() ? true : this.b() ? false : true; + z = () => + this.b() ? hello : k; +} diff --git a/autotests/html/test.ts.html b/autotests/html/test.ts.html index 75aaf5a..d39567c 100644 --- a/autotests/html/test.ts.html +++ b/autotests/html/test.ts.html @@ -1,188 +1,196 @@ test.ts
 /// <reference types="node" />
 
 // TypeScript Test
 
 class Student {
     fullName: string;
     constructor(public firstName: string, public middleInitial: string, public lastName: string) {
         this.fullName = firstName + " " + middleInitial + " " + lastName;
     }
 }
 
 interface Person {
     firstName: string;
     lastName: string;
 }
 
 function greeter(person : Person) {
     return "Hello, " + person.firstName + " " + person.lastName;
 }
 
 let user = new Student("Jane", "M.", "User");
 
 document.body.innerHTML = greeter(user);
 JSON.stringify()
 console.log("Hello world");
 
 import http = require("http");
 import path = require("path");
 import URL = url.URL;
 import { Readable, Writable } from "stream";
 import { isBuffer, isString, isObject } from "util";
 
 const port = 8__88___8;
 const baseUrl = new URL(`http://localhost:${port}/`);
 const rootDir = path.dirname(__dirname);
 
 const defaultBrowser = os.platform() === "win32" ? "edge" : "chrome";
 let browser: "edge" | "chrome" | "none" = defaultBrowser;
 let grep: string | undefined;
 
 interface FileBasedTestConfiguration {
     [setting: string]: string;
 }
 
 function swapCase(s: string): string {
     return s.replace(/\w/g, (ch) => {
         const up = ch.toUpperCase();
         return ch === up ? ch.toLowerCase() : up;
     });
 }
 
 for (var i in pieces) {
     switch (true) {
         case /^\"?Accession\"?/.test(pieces[i]):
             numeration[0] = i;
             break;
     }
 }
 
 const enum ResponseCode {
     Success = 200,
     BadRequest = 400
 }
 
 // Substitutions
 export function isInOpenInterval(start: number, end: number) {
     return tersible(a => a > start && a < end, () => `(${start}...${end})`)
 }
 const bar = `${x} ${y}`; 
 
 // readonly
 function f1(mt: [number, number], rt: readonly [number, number]) {
 }
 
 function f2(ma: string[], ra: readonly string[], mt: [string, string], rt: readonly [string, string]) {
 }
 
 type ReadWrite<T> = { -readonly [P in keyof T] : T[P] };
 
 // const assertion
 let obj = { x: 10, y: [20, 30], z: { a: { b: 42 } } } as const;
 let r2 = { x: 20, y: 10 } as const;
 let r2 = {...p} as const;
 let p1 = { x: 10, y: 20 as const };
 let p2 = { 10 as const, 'foo' as const };
 
 // Definite assignment operator
 class Cl {
-    one?: string;
+    one?: string;
     two!: string;
 }
 let x! = 1; 
 
 // Function with multiple arguments
 const children = [].map<Set<Map<number, string>>>(element => {
     if (!this.identityProvider) {
         return element;
     }
     return element;
 }); 
 
 // Numerics
 var a = 0xA;
 var b = 0b1;
 var c = 0o7;
 var d = 1.1E+3;
 var e = 1.E+3;
 var f = .1E+3;
 var g = 1E+3;
 var h = 1.1;
 var i = 1.;
 var j = .1;
 var k =  1;
 var l = 1__.e+3_22 | .2____e2 | 0o1_23 | 11__. ;
 
 // Bigint
 const binBig = 0b101n;
 const octBig = 0o567n;
 const hexBig = 0xC0Bn;
 const decBig = 123n;
 
 // Types
 let a: null = null;
 let b: number = 123;
 let c: number = 123.456;
 let d: string = `Geeks`;
 let e: undefined = undefined;
 let f: boolean = true;
 let g: number = 0b111001; // Binary
 let h: number = 0o436; // Octal
 let i: number = 0xadf0d; // Hexa-Decimal 
 
 const query = query<[number], number>(`
         SELECT *
         FROM statistics
         WHERE unit_id = $1`)
 
 function runQuery() {
     const query = createQuery<[number[]], Table<Columns>>(`
         some SQL here
     `)
     return database.execute(query)
 }
 
 aa: <sdf/> string ?<ssd/> string 
  string // Don't highlight
 aa: string assa |
    string 
    string ;
    string
 
 aa: { string
     string } // Don't highlight
     
 aa: [ string
       string ]
 aa: ( string 
       string ) // Don't highlight
 aa: string <string>
 interface a {
     aa: /* comment
         */ string,
     bb: /* comment */
         number,
     cc: // comment
         void,
     dd:
         any,
 }
 
 null, <{[key]: () => any}> null
 null, <{[key]: () =>{a: number}}> null
 
 // Correctly highlighting regular expressions
 dt = ((dt[0] * 1e9 + dt[1]) / 1e6).toFixed(3).replace(/\.?0+$/, '') + 'ms';
 (a[0] / 2) / (2)
 
 // Type guards
 function isNumber(x: any): x is number {
     return typeof x === "number";
 }
+
+// Conditional expressions (highlight keywords before ":")
+class C {
+    w = () =>
+        this.a() ? true : this.b() ? false : true;
+    z = () =>
+        this.b() ? hello : k; 
+}
 
diff --git a/autotests/input/test.ts b/autotests/input/test.ts index 8fd0dbe..d92e5f5 100644 --- a/autotests/input/test.ts +++ b/autotests/input/test.ts @@ -1,181 +1,189 @@ /// // TypeScript Test class Student { fullName: string; constructor(public firstName: string, public middleInitial: string, public lastName: string) { this.fullName = firstName + " " + middleInitial + " " + lastName; } } interface Person { firstName: string; lastName: string; } function greeter(person : Person) { return "Hello, " + person.firstName + " " + person.lastName; } let user = new Student("Jane", "M.", "User"); document.body.innerHTML = greeter(user); JSON.stringify() console.log("Hello world"); import http = require("http"); import path = require("path"); import URL = url.URL; import { Readable, Writable } from "stream"; import { isBuffer, isString, isObject } from "util"; const port = 8__88___8; const baseUrl = new URL(`http://localhost:${port}/`); const rootDir = path.dirname(__dirname); const defaultBrowser = os.platform() === "win32" ? "edge" : "chrome"; let browser: "edge" | "chrome" | "none" = defaultBrowser; let grep: string | undefined; interface FileBasedTestConfiguration { [setting: string]: string; } function swapCase(s: string): string { return s.replace(/\w/g, (ch) => { const up = ch.toUpperCase(); return ch === up ? ch.toLowerCase() : up; }); } for (var i in pieces) { switch (true) { case /^\"?Accession\"?/.test(pieces[i]): numeration[0] = i; break; } } const enum ResponseCode { Success = 200, BadRequest = 400 } // Substitutions export function isInOpenInterval(start: number, end: number) { return tersible(a => a > start && a < end, () => `(${start}...${end})`) } const bar = `${x} ${y}`; // readonly function f1(mt: [number, number], rt: readonly [number, number]) { } function f2(ma: string[], ra: readonly string[], mt: [string, string], rt: readonly [string, string]) { } type ReadWrite = { -readonly [P in keyof T] : T[P] }; // const assertion let obj = { x: 10, y: [20, 30], z: { a: { b: 42 } } } as const; let r2 = { x: 20, y: 10 } as const; let r2 = {...p} as const; let p1 = { x: 10, y: 20 as const }; let p2 = { 10 as const, 'foo' as const }; // Definite assignment operator class Cl { one?: string; two!: string; } let x! = 1; // Function with multiple arguments const children = [].map>>(element => { if (!this.identityProvider) { return element; } return element; }); // Numerics var a = 0xA; var b = 0b1; var c = 0o7; var d = 1.1E+3; var e = 1.E+3; var f = .1E+3; var g = 1E+3; var h = 1.1; var i = 1.; var j = .1; var k = 1; var l = 1__.e+3_22 | .2____e2 | 0o1_23 | 11__. ; // Bigint const binBig = 0b101n; const octBig = 0o567n; const hexBig = 0xC0Bn; const decBig = 123n; // Types let a: null = null; let b: number = 123; let c: number = 123.456; let d: string = `Geeks`; let e: undefined = undefined; let f: boolean = true; let g: number = 0b111001; // Binary let h: number = 0o436; // Octal let i: number = 0xadf0d; // Hexa-Decimal const query = query<[number], number>(` SELECT * FROM statistics WHERE unit_id = $1`) function runQuery() { const query = createQuery<[number[]], Table>(` some SQL here `) return database.execute(query) } aa: string ? string string // Don't highlight aa: string assa | string string ; string aa: { string string } // Don't highlight aa: [ string string ] aa: ( string string ) // Don't highlight aa: string interface a { aa: /* comment */ string, bb: /* comment */ number, cc: // comment void, dd: any, } null, <{[key]: () => any}> null null, <{[key]: () =>{a: number}}> null // Correctly highlighting regular expressions dt = ((dt[0] * 1e9 + dt[1]) / 1e6).toFixed(3).replace(/\.?0+$/, '') + 'ms'; (a[0] / 2) / (2) // Type guards function isNumber(x: any): x is number { return typeof x === "number"; } + +// Conditional expressions (highlight keywords before ":") +class C { + w = () => + this.a() ? true : this.b() ? false : true; + z = () => + this.b() ? hello : k; +} diff --git a/autotests/reference/test.ts.ref b/autotests/reference/test.ts.ref index c5ac425..4901cd4 100644 --- a/autotests/reference/test.ts.ref +++ b/autotests/reference/test.ts.ref @@ -1,181 +1,189 @@ /// types="node" />

// TypeScript Test

class Student {
fullName: string;
constructor(public firstName: string, public middleInitial: string, public lastName: string) {
this.fullName = firstName + " " + middleInitial + " " + lastName;
}
}

interface Person {
firstName: string;
lastName: string;
}

function greeter(person : Person) {
return "Hello, " + person.firstName + " " + person.lastName;
}

let user = new Student("Jane", "M.", "User");

document.body.innerHTML = greeter(user);
JSON.stringify()
console.log("Hello world");

import http = require("http");
import path = require("path");
import URL = url.URL;
import { Readable, Writable } from "stream";
import { isBuffer, isString, isObject } from "util";

const port = 8__88___8;
const baseUrl = new URL(${port});
const rootDir = path.dirname(__dirname);

const defaultBrowser = os.platform() === "win32" ? "edge" : "chrome";
let browser: "edge" | "chrome" | "none" = defaultBrowser;
let grep: string | undefined;

interface FileBasedTestConfiguration {
[setting: string]: string;
}

function swapCase(s: string): string {
return s.replace(/\w/g, (ch) => {
const up = ch.toUpperCase();
return ch === up ? ch.toLowerCase() : up;
});
}

for (var i in pieces) {
switch (true) {
case /^\"?Accession\"?/.test(pieces[i]):
numeration[0] = i;
break;
}
}

const enum ResponseCode {
Success = 200,
BadRequest = 400
}

// Substitutions
export function isInOpenInterval(start: number, end: number) {
return tersible(a => a > start && a < end, () => ${start}${end})
}
const bar = ${x}${y};

// readonly
function f1(mt: [number, number], rt: readonly [number, number]) {
}

function f2(ma: string[], ra: readonly string[], mt: [string, string], rt: readonly [string, string]) {
}

type ReadWrite<T> = { -readonly [P in keyof T] : T[P] };

// const assertion
let obj = { x: 10, y: [20, 30], z: { a: { b: 42 } } } as const;
let r2 = { x: 20, y: 10 } as const;
let r2 = {...p} as const;
let p1 = { x: 10, y: 20 as const };
let p2 = { 10 as const, 'foo' as const };

// Definite assignment operator
class Cl {
- one?: string;
+ one?: string;
two!: string;
}
let x! = 1;

// Function with multiple arguments
const children = [].map<Set<Map<number, string>>>(element => {
if (!this.identityProvider) {
return element;
}
return element;
});

// Numerics
var a = 0xA;
var b = 0b1;
var c = 0o7;
var d = 1.1E+3;
var e = 1.E+3;
var f = .1E+3;
var g = 1E+3;
var h = 1.1;
var i = 1.;
var j = .1;
var k = 1;
var l = 1__.e+3_22 | .2____e2 | 0o1_23 | 11__. ;

// Bigint
const binBig = 0b101n;
const octBig = 0o567n;
const hexBig = 0xC0Bn;
const decBig = 123n;

// Types
let a: null = null;
let b: number = 123;
let c: number = 123.456;
let d: string = ;
let e: undefined = undefined;
let f: boolean = true;
let g: number = 0b111001; // Binary
let h: number = 0o436; // Octal
let i: number = 0xadf0d; // Hexa-Decimal

const query = query<[number], number>(


)

function runQuery() {
const query = createQuery<[number[]], Table<Columns>>(

)
return database.execute(query)
}

aa: <sdf/> string ?<ssd/> string
string // Don't highlight
aa: string assa |
string
string ;
string

aa: { string
string } // Don't highlight

aa: [ string
string ]
aa: ( string
string ) // Don't highlight
aa: string <string>
interface a {
aa: /* comment
*/ string,
bb: /* comment */
number,
cc: // comment
void,
dd:
any,
}

null, <{[key]: () => any}> null
null, <{[key]: () =>{a: number}}> null

// Correctly highlighting regular expressions
dt = ((dt[0] * 1e9 + dt[1]) / 1e6).toFixed(3).replace(/\.?0+$/, '') + 'ms';
(a[0] / 2) / (2)

// Type guards
function isNumber(x: any): x is number {
return typeof x === "number";
}
+
+// Conditional expressions (highlight keywords before ":")
+class C {
+ w = () =>
+ this.a() ? true : this.b() ? false : true;
+ z = () =>
+ this.b() ? hello : k;
+}
diff --git a/data/syntax/typescript-react.xml b/data/syntax/typescript-react.xml index 02067b4..f74d2fd 100644 --- a/data/syntax/typescript-react.xml +++ b/data/syntax/typescript-react.xml @@ -1,481 +1,488 @@ ]> - + + + + + + diff --git a/data/syntax/typescript.xml b/data/syntax/typescript.xml index 1c6171d..d2d1df1 100644 --- a/data/syntax/typescript.xml +++ b/data/syntax/typescript.xml @@ -1,2058 +1,2089 @@ ]> controlflow##JavaScript goto keywords##JavaScript declare reserved##JavaScript type arguments readonly abstract constructor get set module##JavaScript primitives##JavaScript object namespace module keyof infer string number boolean symbol any void never unknown undefined null object Array ArrayBuffer Atomics Boolean DataView Date Float32Array Float64Array Function Generator GeneratorFunction Int8Array Int16Array Int32Array Intl Map Number Object Proxy Reflect RegExp Set SharedArrayBuffer SIMD String Symbol TypedArray Uint8Array Uint16Array Uint32Array Uint8ClampedArray WeakMap WeakSet Error EvalError InternalError RangeError ReferenceError SyntaxError TypeError URIError Math Promise JSON console process AnalyserNode ArrayBufferView Attr AudioBuffer AudioBufferSourceNode AudioContext AudioDestinationNode AudioListener AudioNode AudioParam BatteryManager BeforeUnloadEvent BiquadFilterNode Blob BufferSource ByteString CSS CSSConditionRule CSSCounterStyleRule CSSGroupingRule CSSMatrix CSSMediaRule CSSPageRule CSSPrimitiveValue CSSRule CSSRuleList CSSStyleDeclaration CSSStyleRule CSSStyleSheet CSSSupportsRule CSSValue CSSValueList CanvasGradient CanvasImageSource CanvasPattern CanvasRenderingContext2D ChannelMergerNode ChannelSplitterNode CharacterData ChromeWorker CloseEvent Comment CompositionEvent Console ConvolverNode Coordinates Credential CredentialsContainer Crypto CryptoKey CustomEvent DOMError DOMException DOMHighResTimeStamp DOMImplementation DOMString DOMStringList DOMStringMap DOMTimeStamp DOMTokenList DataTransfer DataTransferItem DataTransferItemList DedicatedWorkerGlobalScope DelayNode DeviceProximityEvent DirectoryEntry DirectoryEntrySync DirectoryReader DirectoryReaderSync Document DocumentFragment DocumentTouch DocumentType DragEvent DynamicsCompressorNode Element Entry EntrySync ErrorEvent Event EventListener EventSource EventTarget FederatedCredential FetchEvent File FileEntry FileEntrySync FileException FileList FileReader FileReaderSync FileSystem FileSystemSync FontFace FormData GainNode Gamepad GamepadButton GamepadEvent Geolocation GlobalEventHandlers HTMLAnchorElement HTMLAreaElement HTMLAudioElement HTMLBRElement HTMLBaseElement HTMLBodyElement HTMLButtonElement HTMLCanvasElement HTMLCollection HTMLContentElement HTMLDListElement HTMLDataElement HTMLDataListElement HTMLDialogElement HTMLDivElement HTMLDocument HTMLElement HTMLEmbedElement HTMLFieldSetElement HTMLFontElement HTMLFormControlsCollection HTMLFormElement HTMLHRElement HTMLHeadElement HTMLHeadingElement HTMLHtmlElement HTMLIFrameElement HTMLImageElement HTMLInputElement HTMLKeygenElement HTMLLIElement HTMLLabelElement HTMLLegendElement HTMLLinkElement HTMLMapElement HTMLMediaElement HTMLMetaElement HTMLMeterElement HTMLModElement HTMLOListElement HTMLObjectElement HTMLOptGroupElement HTMLOptionElement HTMLOptionsCollection HTMLOutputElement HTMLParagraphElement HTMLParamElement HTMLPreElement HTMLProgressElement HTMLQuoteElement HTMLScriptElement HTMLSelectElement HTMLShadowElement HTMLSourceElement HTMLSpanElement HTMLStyleElement HTMLTableCaptionElement HTMLTableCellElement HTMLTableColElement HTMLTableDataCellElement HTMLTableElement HTMLTableHeaderCellElement HTMLTableRowElement HTMLTableSectionElement HTMLTextAreaElement HTMLTimeElement HTMLTitleElement HTMLTrackElement HTMLUListElement HTMLUnknownElement HTMLVideoElement HashChangeEvent History IDBCursor IDBCursorWithValue IDBDatabase IDBEnvironment IDBFactory IDBIndex IDBKeyRange IDBMutableFile IDBObjectStore IDBOpenDBRequest IDBRequest IDBTransaction IDBVersionChangeEvent IIRFilterNode IdentityManager ImageBitmap ImageBitmapFactories ImageData Index InputDeviceCapabilities InputEvent InstallEvent InstallTrigger KeyboardEvent LinkStyle LocalFileSystem LocalFileSystemSync Location MIDIAccess MIDIConnectionEvent MIDIInput MIDIInputMap MIDIOutputMap MediaElementAudioSourceNode MediaError MediaKeyMessageEvent MediaKeySession MediaKeyStatusMap MediaKeySystemAccess MediaKeySystemConfiguration MediaKeys MediaRecorder MediaStream MediaStreamAudioDestinationNode MediaStreamAudioSourceNode MessageChannel MessageEvent MessagePort MouseEvent MutationObserver MutationRecord NamedNodeMap Navigator NavigatorConcurrentHardware NavigatorGeolocation NavigatorID NavigatorLanguage NavigatorOnLine Node NodeFilter NodeIterator NodeList NonDocumentTypeChildNode Notification OfflineAudioCompletionEvent OfflineAudioContext OscillatorNode PageTransitionEvent PannerNode ParentNode PasswordCredential Path2D PaymentAddress PaymentRequest PaymentResponse Performance PerformanceEntry PerformanceFrameTiming PerformanceMark PerformanceMeasure PerformanceNavigation PerformanceNavigationTiming PerformanceObserver PerformanceObserverEntryList PerformanceResourceTiming PerformanceTiming PeriodicSyncEvent PeriodicWave Plugin Point PointerEvent PopStateEvent PortCollection Position PositionError PositionOptions PresentationConnectionClosedEvent PresentationConnectionList PresentationReceiver ProcessingInstruction ProgressEvent PromiseRejectionEvent PushEvent PushRegistrationManager RTCCertificate RTCConfiguration RTCPeerConnection RTCSessionDescriptionCallback RTCStatsReport RadioNodeList RandomSource Range ReadableByteStream RenderingContext SVGAElement SVGAngle SVGAnimateColorElement SVGAnimateElement SVGAnimateMotionElement SVGAnimateTransformElement SVGAnimatedAngle SVGAnimatedBoolean SVGAnimatedEnumeration SVGAnimatedInteger SVGAnimatedLength SVGAnimatedLengthList SVGAnimatedNumber SVGAnimatedNumberList SVGAnimatedPoints SVGAnimatedPreserveAspectRatio SVGAnimatedRect SVGAnimatedString SVGAnimatedTransformList SVGAnimationElement SVGCircleElement SVGClipPathElement SVGCursorElement SVGDefsElement SVGDescElement SVGElement SVGEllipseElement SVGEvent SVGFilterElement SVGFontElement SVGFontFaceElement SVGFontFaceFormatElement SVGFontFaceNameElement SVGFontFaceSrcElement SVGFontFaceUriElement SVGForeignObjectElement SVGGElement SVGGlyphElement SVGGradientElement SVGHKernElement SVGImageElement SVGLength SVGLengthList SVGLineElement SVGLinearGradientElement SVGMPathElement SVGMaskElement SVGMatrix SVGMissingGlyphElement SVGNumber SVGNumberList SVGPathElement SVGPatternElement SVGPoint SVGPolygonElement SVGPolylineElement SVGPreserveAspectRatio SVGRadialGradientElement SVGRect SVGRectElement SVGSVGElement SVGScriptElement SVGSetElement SVGStopElement SVGStringList SVGStylable SVGStyleElement SVGSwitchElement SVGSymbolElement SVGTRefElement SVGTSpanElement SVGTests SVGTextElement SVGTextPositioningElement SVGTitleElement SVGTransform SVGTransformList SVGTransformable SVGUseElement SVGVKernElement SVGViewElement ServiceWorker ServiceWorkerContainer ServiceWorkerGlobalScope ServiceWorkerRegistration ServiceWorkerState ShadowRoot SharedWorker SharedWorkerGlobalScope SourceBufferList StereoPannerNode Storage StorageEvent StyleSheet StyleSheetList SubtleCrypto SyncEvent Text TextMetrics TimeEvent TimeRanges Touch TouchEvent TouchList Transferable TreeWalker UIEvent USVString VRDisplayCapabilities ValidityState WaveShaperNode WebGL WebGLActiveInfo WebGLBuffer WebGLContextEvent WebGLFramebuffer WebGLProgram WebGLRenderbuffer WebGLRenderingContext WebGLShader WebGLShaderPrecisionFormat WebGLTexture WebGLTimerQueryEXT WebGLTransformFeedback WebGLUniformLocation WebGLVertexArrayObject WebGLVertexArrayObjectOES WebSocket WebSockets WebVTT WheelEvent Window WindowBase64 WindowEventHandlers WindowTimers Worker WorkerGlobalScope WorkerLocation WorkerNavigator XMLHttpRequest XMLHttpRequestEventTarget XMLSerializer XPathExpression XPathResult XSLTProcessor Buffer EventEmitter Server Pipe Socket REPLServer ReadStream WriteStream Stream Inflate Deflate InflateRaw DeflateRaw GZip GUnzip Unzip Zip constructor length prototype __proto__ EPSILON MAX_SAFE_INTEGER MAX_VALUE MIN_SAFE_INTEGER MIN_VALUE NEGATIVE_INFINITY POSITIVE_INFINITY clearInterval clearTimeout decodeURI decodeURIComponent encodeURI encodeURIComponent escape eval isFinite isNaN parseFloat parseInt require setTimeout setInterval super unescape uneval abs acos acosh asin asinh atan atan2 atanh cbrt ceil clz32 cos cosh exp expm1 floor fround hypot imul log log10 log1p log2 max min pow random round sign sin sinh sqrt tan tanh trunc E LN10 LN2 LOG10E LOG2E PI SQRT1_2 SQRT2 assert clear count debug dir error group groupCollapsed groupEnd info log profile profileEnd table time timeEnd timeStamp trace warn parse stringify global GLOBAL root __dirname __filename arch argv config connected env execArgv execPath exitCode mainModule pid platform release stderr stdin stdout title version versions abort chdir cwd disconnect exit setegid seteuid getegid geteuid setgid setuid getgid getuid send setgroups getgroups initgroups kill memoryUsage nextTick umask uptime hrtime all catch finally race reject resolve then document event navigator performance screen window ATTRIBUTE_NODE CDATA_SECTION_NODE COMMENT_NODE DOCUMENT_FRAGMENT_NODE DOCUMENT_NODE DOCUMENT_TYPE_NODE DOMSTRING_SIZE_ERR ELEMENT_NODE ENTITY_NODE ENTITY_REFERENCE_NODE HIERARCHY_REQUEST_ERR INDEX_SIZE_ERR INUSE_ATTRIBUTE_ERR INVALID_CHARACTER_ERR NO_DATA_ALLOWED_ERR NO_MODIFICATION_ALLOWED_ERR NOT_FOUND_ERR NOT_SUPPORTED_ERR NOTATION_NODE PROCESSING_INSTRUCTION_NODE TEXT_NODE WRONG_DOCUMENT_ERR _content x y z abbr above accept acceptCharset accessKey action align aLink vLink aLinkcolor vLinkcolor all alt anchors appCodeName appCore applets appMinorVersion appName appVersion archive areas arguments attributes availHeight availLeft availTop availWidth axis background backgroundColor backgroundImage below bgColor body border borderBottomWidth borderColor borderLeftWidth borderRightWidth borderStyle borderTopWidth borderWidth bottom bufferDepth callee caller caption cellPadding cells cellSpacing ch characterSet charset checked childNodes chOff cite classes className clear clientInformation clip clipBoardData closed code codeBase codeType color colorDepth cols colSpan compact complete components content controllers cookie cookieEnabled cords cpuClass crypto current data dateTime declare defaultCharset defaultChecked defaultSelected defaultStatus defaultValue defaultView defer description dialogArguments dialogHeight dialogLeft dialogTop dialogWidth dir directories disabled display docmain doctype documentElement elements embeds enabledPlugin encoding enctype entities event expando external face fgColor filename firstChild fontFamily fontSize fontWeight form formName forms frame frameBorder frameElement frames hasFocus hash headers height history host hostname href hreflang hspace htmlFor httpEquiv id ids ignoreCase images implementation index innerHeight innerWidth input isMap label lang language lastChild lastIndex lastMatch lastModified lastParen layers layerX layerY left leftContext lineHeight link linkColor links listStyleType localName location locationbar longDesc lowsrc lowSrc marginBottom marginHeight marginLeft marginRight marginTop marginWidth maxLength media menubar method mimeTypes multiline multiple name nameProp namespaces namespaceURI next nextSibling nodeName nodeType nodeValue noHref noResize noShade notationName notations noWrap object offscreenBuffering onLine onreadystatechange opener opsProfile options oscpu outerHeight outerWidth ownerDocument paddingBottom paddingLeft paddingRight paddingTop pageX pageY pageXOffset pageYOffset parent parentLayer parentNode parentWindow pathname personalbar pixelDepth pkcs11 platform plugins port prefix previous previousDibling product productSub profile profileend prompt prompter protocol publicId readOnly readyState referrer rel responseText responseXML rev right rightContext rowIndex rows rowSpan rules scheme scope screenX screenY screenLeft screenTop scripts scrollbars scrolling sectionRowIndex security securityPolicy selected selectedIndex selection self shape siblingAbove siblingBelow size source specified standby start status statusbar statusText style styleSheets suffixes summary systemId systemLanguage tagName tags target tBodies text textAlign textDecoration textIndent textTransform tFoot tHead title toolbar top type undefined uniqueID updateInterval URL URLUnencoded useMap userAgent userLanguage userProfile vAlign value valueType vendor vendorSub version visibility vspace whiteSpace width XMLDocument XSLDocument zIndex acceptNode add addEventListener addTextTrack adoptNode after animate append appendChild appendData before blur canPlayType captureStream caretPositionFromPoint caretRangeFromPoint checkValidity clear click cloneContents cloneNode cloneRange close closest collapse compareBoundaryPoints compareDocumentPosition comparePoint contains convertPointFromNode convertQuadFromNode convertRectFromNode createAttribute createAttributeNS createCaption createCDATASection createComment createContextualFragment createDocument createDocumentFragment createDocumentType createElement createElementNS createEntityReference createEvent createExpression createHTMLDocument createNodeIterator createNSResolver createProcessingInstruction createRange createShadowRoot createTBody createTextNode createTFoot createTHead createTreeWalker delete deleteCaption deleteCell deleteContents deleteData deleteRow deleteTFoot deleteTHead detach disconnect dispatchEvent elementFromPoint elementsFromPoint enableStyleSheetsForSet entries evaluate execCommand exitFullscreen exitPointerLock expand extractContents fastSeek firstChild focus forEach get getAll getAnimations getAttribute getAttributeNames getAttributeNode getAttributeNodeNS getAttributeNS getBoundingClientRect getBoxQuads getClientRects getContext getDestinationInsertionPoints getElementById getElementsByClassName getElementsByName getElementsByTagName getElementsByTagNameNS getItem getNamedItem getSelection getStartDate getVideoPlaybackQuality has hasAttribute hasAttributeNS hasAttributes hasChildNodes hasFeature hasFocus importNode initEvent insertAdjacentElement insertAdjacentHTML insertAdjacentText insertBefore insertCell insertData insertNode insertRow intersectsNode isDefaultNamespace isEqualNode isPointInRange isSameNode item key keys lastChild load lookupNamespaceURI lookupPrefix matches move moveAttribute moveAttributeNode moveChild moveNamedItem namedItem nextNode nextSibling normalize observe open parentNode pause play postMessage prepend preventDefault previousNode previousSibling probablySupportsContext queryCommandEnabled queryCommandIndeterm queryCommandState queryCommandSupported queryCommandValue querySelector querySelectorAll registerContentHandler registerElement registerProtocolHandler releaseCapture releaseEvents remove removeAttribute removeAttributeNode removeAttributeNS removeChild removeEventListener removeItem replace replaceChild replaceData replaceWith reportValidity requestFullscreen requestPointerLock reset scroll scrollBy scrollIntoView scrollTo seekToNextFrame select selectNode selectNodeContents set setAttribute setAttributeNode setAttributeNodeNS setAttributeNS setCapture setCustomValidity setEnd setEndAfter setEndBefore setItem setNamedItem setRangeText setSelectionRange setSinkId setStart setStartAfter setStartBefore slice splitText stepDown stepUp stopImmediatePropagation stopPropagation submit substringData supports surroundContents takeRecords terminate toBlob toDataURL toggle toString values write writeln onRowsinserted onRowsdelete onRowenter onRowexit onResize onResizestart onResizeend onReset onReadystatechange onMouseout onMouseover onMousedown onMouseup onMousemove onBeforecut onBeforedeactivate onBeforeunload onBeforeupdate onBeforepaste onBeforeprint onBeforeeditfocus onBeforeactivate onBlur onScrolltop onSubmit onSelect onSelectstart onSelectionchange onHover onHelp onChange onContextmenu onControlselect onCut onCellchange onClock onClose onDeactivate onDatasetchanged onDatasetcomplete onDataavailable onDrop onDrag onDragstart onDragover onDragdrop onDragenter onDragend onDragleave onDblclick onUnload onPaste onPropertychange onError onErrorupdate onKeydown onKeyup onKeypress onFocus onLoad onActivate onAfterupdate onAfterprint onAbort shift showModelessDialog showModalDialog showHelp scroll scrollX scrollByPages scrollByLines scrollY scrollTo stop strike sizeToContent sidebar signText sort sup sub substr substring splice split send setMilliseconds setSeconds setMinutes setHours setMonth setYear setFullYear setDate setUTCMilliseconds setUTCSeconds setUTCMinutes setUTCHours setUTCMonth setUTCFullYear setUTCDate setTime setHotkeys setCursor setZOptions setActive setResizable setRequestHeader search slice savePreferences small home handleEvent navigate char charCodeAt charAt concat contextual confirm compile clear captureEvents call createStyleSheet createPopup createEventObject toGMTString toUTCString toString toSource toUpperCase toLowerCase toLocaleString test taint taintEnabled indexOf italics disableExternalCapture dump detachEvent unshift untaint unwatch updateCommands join javaEnabled pop push plugins.refresh paddings parse print prompt preference enableExternalCapture exec execScript valueOf UTC find file fileModifiedDate fileSize fileCreatedDate fileUpdatedDate fixed fontsize fontcolor forward fromCharCode watch link load lastIndexOf anchor attachEvent atob apply alert abort routeEvents resize resizeBy resizeTo recalc returnValue replace reverse reload releaseCapture releaseEvents go getMilliseconds getSeconds getMinutes getHours getMonth getDay getYear getFullYear getTime getDate getTimezoneOffset getUTCMilliseconds getUTCSeconds getUTCMinutes getUTCHours getUTCDay getUTCMonth getUTCFullYear getUTCDate getAttention getSelection getResponseHeader getAllResponseHeaders moveBy moveBelow moveTo moveToAbsolute moveAbove mergeAttributes match margins btoa big bold borderWidths blink back - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +