Properly compute SymbolFlags.Optional for intersected properties (#50958)

* `in` proves property presence only if property can't be undefined

* Accept new baselines

* Add tests

* Accept new baselines

* Properly compute SymbolFlags.Optional for intersected properties

* Accept new baselines

* Check optionality only for property-like declarations

* Add more tests
This commit is contained in:
Anders Hejlsberg authored and GitHub committed 2022-09-29 15:18:21 -07:00
1 parent d1586de043
commit ecf50e81a7
11 files changed
+1014 -52

No files matched your search

+11 -8
View File
@@ -12566,7 +12566,7 @@ namespace ts {
let indexTypes: Type[] | undefined;
const isUnion = containingType.flags & TypeFlags.Union;
// Flags we want to propagate to the result if they exist in all source symbols
let optionalFlag = isUnion ? SymbolFlags.None : SymbolFlags.Optional;
let optionalFlag: SymbolFlags | undefined;
let syntheticFlag = CheckFlags.SyntheticMethod;
let checkFlags = isUnion ? 0 : CheckFlags.Readonly;
let mergedInstantiations = false;
@@ -12576,11 +12576,14 @@ namespace ts {
const prop = getPropertyOfType(type, name, skipObjectFunctionPropertyAugment);
const modifiers = prop ? getDeclarationModifierFlagsFromSymbol(prop) : 0;
if (prop) {
if (isUnion) {
optionalFlag |= (prop.flags & SymbolFlags.Optional);
}
else {
optionalFlag &= prop.flags;
if (prop.flags & SymbolFlags.ClassMember) {
optionalFlag ??= isUnion ? SymbolFlags.None : SymbolFlags.Optional;
if (isUnion) {
optionalFlag |= (prop.flags & SymbolFlags.Optional);
}
else {
optionalFlag &= prop.flags;
}
}
if (!singleProp) {
singleProp = prop;
@@ -12699,7 +12702,7 @@ namespace ts {
propTypes.push(type);
}
addRange(propTypes, indexTypes);
const result = createSymbol(SymbolFlags.Property | optionalFlag, name, syntheticFlag | checkFlags);
const result = createSymbol(SymbolFlags.Property | (optionalFlag ?? 0), name, syntheticFlag | checkFlags);
result.containingType = containingType;
if (!hasNonUniformValueDeclaration && firstValueDeclaration) {
result.valueDeclaration = firstValueDeclaration;
@@ -20455,7 +20458,7 @@ namespace ts {
return Ternary.False;
}
// When checking for comparability, be more lenient with optional properties.
if (!skipOptional && sourceProp.flags & SymbolFlags.Optional && !(targetProp.flags & SymbolFlags.Optional)) {
if (!skipOptional && sourceProp.flags & SymbolFlags.Optional && targetProp.flags & SymbolFlags.ClassMember && !(targetProp.flags & SymbolFlags.Optional)) {
// TypeScript 1.0 spec (April 2014): 3.8.3
// S is a subtype of a type T, and T is a supertype of S if ...
// S' and T are object types and, for each member M in T..
@@ -21,14 +21,13 @@ tests/cases/compiler/inKeywordTypeguard.ts(74,32): error TS2339: Property 'a' do
tests/cases/compiler/inKeywordTypeguard.ts(82,39): error TS2339: Property 'b' does not exist on type 'A'.
tests/cases/compiler/inKeywordTypeguard.ts(84,39): error TS2339: Property 'a' does not exist on type 'B'.
tests/cases/compiler/inKeywordTypeguard.ts(94,26): error TS2339: Property 'a' does not exist on type 'never'.
tests/cases/compiler/inKeywordTypeguard.ts(150,16): error TS2339: Property 'ontouchstart' does not exist on type 'never'.
tests/cases/compiler/inKeywordTypeguard.ts(155,16): error TS2322: Type 'unknown' is not assignable to type 'object'.
tests/cases/compiler/inKeywordTypeguard.ts(158,21): error TS2322: Type 'unknown' is not assignable to type 'object'.
tests/cases/compiler/inKeywordTypeguard.ts(183,16): error TS2322: Type 'T' is not assignable to type 'object'.
tests/cases/compiler/inKeywordTypeguard.ts(186,21): error TS2322: Type 'T' is not assignable to type 'object'.
==== tests/cases/compiler/inKeywordTypeguard.ts (22 errors) ====
==== tests/cases/compiler/inKeywordTypeguard.ts (21 errors) ====
class A { a: string; }
class B { b: string; }
@@ -219,8 +218,6 @@ tests/cases/compiler/inKeywordTypeguard.ts(186,21): error TS2322: Type 'T' is no
window.ontouchstart
} else {
window.ontouchstart
~~~~~~~~~~~~
!!! error TS2339: Property 'ontouchstart' does not exist on type 'never'.
}
}
@@ -353,6 +350,64 @@ tests/cases/compiler/inKeywordTypeguard.ts(186,21): error TS2322: Type 'T' is no
}
}
function f10(x: { a: unknown }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f11(x: { a: any }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f12(x: { a: string }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f13(x: { a?: string }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f14(x: { a: string | undefined }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f15(x: { a?: string | undefined }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f16(x: typeof globalThis, y: Window & typeof globalThis) {
x = y;
}
// Repro from #50639
function foo<A>(value: A) {
@@ -360,4 +415,9 @@ tests/cases/compiler/inKeywordTypeguard.ts(186,21): error TS2322: Type 'T' is no
value; // A & object & Record<"prop", unknown>
}
}
// Repro from #50954
const checkIsTouchDevice = () =>
"ontouchstart" in window || "msMaxTouchPoints" in window.navigator;
@@ -271,6 +271,64 @@ function f9(x: object) {
}
}
function f10(x: { a: unknown }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f11(x: { a: any }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f12(x: { a: string }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f13(x: { a?: string }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f14(x: { a: string | undefined }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f15(x: { a?: string | undefined }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f16(x: typeof globalThis, y: Window & typeof globalThis) {
x = y;
}
// Repro from #50639
function foo<A>(value: A) {
@@ -278,6 +336,11 @@ function foo<A>(value: A) {
value; // A & object & Record<"prop", unknown>
}
}
// Repro from #50954
const checkIsTouchDevice = () =>
"ontouchstart" in window || "msMaxTouchPoints" in window.navigator;
//// [inKeywordTypeguard.js]
@@ -533,9 +596,62 @@ function f9(x) {
x[sym];
}
}
function f10(x) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f11(x) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f12(x) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f13(x) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f14(x) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f15(x) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f16(x, y) {
x = y;
}
// Repro from #50639
function foo(value) {
if (typeof value === "object" && value !== null && "prop" in value) {
value; // A & object & Record<"prop", unknown>
}
}
// Repro from #50954
const checkIsTouchDevice = () => "ontouchstart" in window || "msMaxTouchPoints" in window.navigator;
@@ -371,7 +371,9 @@ function negativeIntersectionTest() {
} else {
window.ontouchstart
>window.ontouchstart : Symbol(ontouchstart, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))
>window : Symbol(window, Decl(lib.dom.d.ts, --, --))
>ontouchstart : Symbol(ontouchstart, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))
}
}
@@ -707,21 +709,147 @@ function f9(x: object) {
}
}
// Repro from #50639
function f10(x: { a: unknown }) {
>f10 : Symbol(f10, Decl(inKeywordTypeguard.ts, 270, 1))
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 272, 13))
>a : Symbol(a, Decl(inKeywordTypeguard.ts, 272, 17))
function foo<A>(value: A) {
>foo : Symbol(foo, Decl(inKeywordTypeguard.ts, 270, 1))
>A : Symbol(A, Decl(inKeywordTypeguard.ts, 274, 13))
>value : Symbol(value, Decl(inKeywordTypeguard.ts, 274, 16))
>A : Symbol(A, Decl(inKeywordTypeguard.ts, 274, 13))
if ("a" in x) {
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 272, 13))
if (typeof value === "object" && value !== null && "prop" in value) {
>value : Symbol(value, Decl(inKeywordTypeguard.ts, 274, 16))
>value : Symbol(value, Decl(inKeywordTypeguard.ts, 274, 16))
>value : Symbol(value, Decl(inKeywordTypeguard.ts, 274, 16))
value; // A & object & Record<"prop", unknown>
>value : Symbol(value, Decl(inKeywordTypeguard.ts, 274, 16))
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 272, 13))
}
else {
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 272, 13))
}
}
function f11(x: { a: any }) {
>f11 : Symbol(f11, Decl(inKeywordTypeguard.ts, 279, 1))
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 281, 13))
>a : Symbol(a, Decl(inKeywordTypeguard.ts, 281, 17))
if ("a" in x) {
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 281, 13))
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 281, 13))
}
else {
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 281, 13))
}
}
function f12(x: { a: string }) {
>f12 : Symbol(f12, Decl(inKeywordTypeguard.ts, 288, 1))
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 290, 13))
>a : Symbol(a, Decl(inKeywordTypeguard.ts, 290, 17))
if ("a" in x) {
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 290, 13))
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 290, 13))
}
else {
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 290, 13))
}
}
function f13(x: { a?: string }) {
>f13 : Symbol(f13, Decl(inKeywordTypeguard.ts, 297, 1))
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 299, 13))
>a : Symbol(a, Decl(inKeywordTypeguard.ts, 299, 17))
if ("a" in x) {
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 299, 13))
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 299, 13))
}
else {
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 299, 13))
}
}
function f14(x: { a: string | undefined }) {
>f14 : Symbol(f14, Decl(inKeywordTypeguard.ts, 306, 1))
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 308, 13))
>a : Symbol(a, Decl(inKeywordTypeguard.ts, 308, 17))
if ("a" in x) {
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 308, 13))
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 308, 13))
}
else {
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 308, 13))
}
}
function f15(x: { a?: string | undefined }) {
>f15 : Symbol(f15, Decl(inKeywordTypeguard.ts, 315, 1))
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 317, 13))
>a : Symbol(a, Decl(inKeywordTypeguard.ts, 317, 17))
if ("a" in x) {
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 317, 13))
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 317, 13))
}
else {
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 317, 13))
}
}
function f16(x: typeof globalThis, y: Window & typeof globalThis) {
>f16 : Symbol(f16, Decl(inKeywordTypeguard.ts, 324, 1))
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 326, 13))
>globalThis : Symbol(globalThis)
>y : Symbol(y, Decl(inKeywordTypeguard.ts, 326, 34))
>Window : Symbol(Window, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))
>globalThis : Symbol(globalThis)
x = y;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 326, 13))
>y : Symbol(y, Decl(inKeywordTypeguard.ts, 326, 34))
}
// Repro from #50639
function foo<A>(value: A) {
>foo : Symbol(foo, Decl(inKeywordTypeguard.ts, 328, 1))
>A : Symbol(A, Decl(inKeywordTypeguard.ts, 332, 13))
>value : Symbol(value, Decl(inKeywordTypeguard.ts, 332, 16))
>A : Symbol(A, Decl(inKeywordTypeguard.ts, 332, 13))
if (typeof value === "object" && value !== null && "prop" in value) {
>value : Symbol(value, Decl(inKeywordTypeguard.ts, 332, 16))
>value : Symbol(value, Decl(inKeywordTypeguard.ts, 332, 16))
>value : Symbol(value, Decl(inKeywordTypeguard.ts, 332, 16))
value; // A & object & Record<"prop", unknown>
>value : Symbol(value, Decl(inKeywordTypeguard.ts, 332, 16))
}
}
// Repro from #50954
const checkIsTouchDevice = () =>
>checkIsTouchDevice : Symbol(checkIsTouchDevice, Decl(inKeywordTypeguard.ts, 340, 5))
"ontouchstart" in window || "msMaxTouchPoints" in window.navigator;
>window : Symbol(window, Decl(lib.dom.d.ts, --, --))
>window.navigator : Symbol(navigator, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))
>window : Symbol(window, Decl(lib.dom.d.ts, --, --))
>navigator : Symbol(navigator, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))
@@ -446,9 +446,9 @@ function negativeIntersectionTest() {
} else {
window.ontouchstart
>window.ontouchstart : any
>window : never
>ontouchstart : any
>window.ontouchstart : ((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any)
>window : Window & typeof globalThis
>ontouchstart : ((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any)
}
}
@@ -887,6 +887,133 @@ function f9(x: object) {
}
}
function f10(x: { a: unknown }) {
>f10 : (x: { a: unknown;}) => void
>x : { a: unknown; }
>a : unknown
if ("a" in x) {
>"a" in x : boolean
>"a" : "a"
>x : { a: unknown; }
x;
>x : { a: unknown; }
}
else {
x;
>x : never
}
}
function f11(x: { a: any }) {
>f11 : (x: { a: any;}) => void
>x : { a: any; }
>a : any
if ("a" in x) {
>"a" in x : boolean
>"a" : "a"
>x : { a: any; }
x;
>x : { a: any; }
}
else {
x;
>x : never
}
}
function f12(x: { a: string }) {
>f12 : (x: { a: string;}) => void
>x : { a: string; }
>a : string
if ("a" in x) {
>"a" in x : boolean
>"a" : "a"
>x : { a: string; }
x;
>x : { a: string; }
}
else {
x;
>x : never
}
}
function f13(x: { a?: string }) {
>f13 : (x: { a?: string;}) => void
>x : { a?: string; }
>a : string
if ("a" in x) {
>"a" in x : boolean
>"a" : "a"
>x : { a?: string; }
x;
>x : { a?: string; }
}
else {
x;
>x : { a?: string; }
}
}
function f14(x: { a: string | undefined }) {
>f14 : (x: { a: string | undefined;}) => void
>x : { a: string | undefined; }
>a : string
if ("a" in x) {
>"a" in x : boolean
>"a" : "a"
>x : { a: string; }
x;
>x : { a: string; }
}
else {
x;
>x : never
}
}
function f15(x: { a?: string | undefined }) {
>f15 : (x: { a?: string | undefined;}) => void
>x : { a?: string | undefined; }
>a : string
if ("a" in x) {
>"a" in x : boolean
>"a" : "a"
>x : { a?: string; }
x;
>x : { a?: string; }
}
else {
x;
>x : { a?: string; }
}
}
function f16(x: typeof globalThis, y: Window & typeof globalThis) {
>f16 : (x: typeof globalThis, y: Window & typeof globalThis) => void
>x : typeof globalThis
>globalThis : typeof globalThis
>y : Window & typeof globalThis
>globalThis : typeof globalThis
x = y;
>x = y : Window & typeof globalThis
>x : typeof globalThis
>y : Window & typeof globalThis
}
// Repro from #50639
function foo<A>(value: A) {
@@ -912,3 +1039,20 @@ function foo<A>(value: A) {
}
}
// Repro from #50954
const checkIsTouchDevice = () =>
>checkIsTouchDevice : () => boolean
>() => "ontouchstart" in window || "msMaxTouchPoints" in window.navigator : () => boolean
"ontouchstart" in window || "msMaxTouchPoints" in window.navigator;
>"ontouchstart" in window || "msMaxTouchPoints" in window.navigator : boolean
>"ontouchstart" in window : boolean
>"ontouchstart" : "ontouchstart"
>window : Window & typeof globalThis
>"msMaxTouchPoints" in window.navigator : boolean
>"msMaxTouchPoints" : "msMaxTouchPoints"
>window.navigator : Navigator
>window : Window & typeof globalThis
>navigator : Navigator
@@ -28,14 +28,13 @@ tests/cases/compiler/inKeywordTypeguard.ts(82,39): error TS2339: Property 'b' do
tests/cases/compiler/inKeywordTypeguard.ts(84,39): error TS2339: Property 'a' does not exist on type 'B'.
tests/cases/compiler/inKeywordTypeguard.ts(90,5): error TS2564: Property 'a' has no initializer and is not definitely assigned in the constructor.
tests/cases/compiler/inKeywordTypeguard.ts(94,26): error TS2339: Property 'a' does not exist on type 'never'.
tests/cases/compiler/inKeywordTypeguard.ts(150,16): error TS2339: Property 'ontouchstart' does not exist on type 'never'.
tests/cases/compiler/inKeywordTypeguard.ts(155,16): error TS18046: 'x' is of type 'unknown'.
tests/cases/compiler/inKeywordTypeguard.ts(158,21): error TS2638: Type '{}' may represent a primitive value, which is not permitted as the right operand of the 'in' operator.
tests/cases/compiler/inKeywordTypeguard.ts(183,16): error TS2322: Type 'T' is not assignable to type 'object'.
tests/cases/compiler/inKeywordTypeguard.ts(186,21): error TS2638: Type 'NonNullable<T>' may represent a primitive value, which is not permitted as the right operand of the 'in' operator.
==== tests/cases/compiler/inKeywordTypeguard.ts (29 errors) ====
==== tests/cases/compiler/inKeywordTypeguard.ts (28 errors) ====
class A { a: string; }
~
!!! error TS2564: Property 'a' has no initializer and is not definitely assigned in the constructor.
@@ -240,8 +239,6 @@ tests/cases/compiler/inKeywordTypeguard.ts(186,21): error TS2638: Type 'NonNulla
window.ontouchstart
} else {
window.ontouchstart
~~~~~~~~~~~~
!!! error TS2339: Property 'ontouchstart' does not exist on type 'never'.
}
}
@@ -373,6 +370,64 @@ tests/cases/compiler/inKeywordTypeguard.ts(186,21): error TS2638: Type 'NonNulla
}
}
function f10(x: { a: unknown }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f11(x: { a: any }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f12(x: { a: string }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f13(x: { a?: string }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f14(x: { a: string | undefined }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f15(x: { a?: string | undefined }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f16(x: typeof globalThis, y: Window & typeof globalThis) {
x = y;
}
// Repro from #50639
function foo<A>(value: A) {
@@ -380,4 +435,9 @@ tests/cases/compiler/inKeywordTypeguard.ts(186,21): error TS2638: Type 'NonNulla
value; // A & object & Record<"prop", unknown>
}
}
// Repro from #50954
const checkIsTouchDevice = () =>
"ontouchstart" in window || "msMaxTouchPoints" in window.navigator;
@@ -271,6 +271,64 @@ function f9(x: object) {
}
}
function f10(x: { a: unknown }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f11(x: { a: any }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f12(x: { a: string }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f13(x: { a?: string }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f14(x: { a: string | undefined }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f15(x: { a?: string | undefined }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f16(x: typeof globalThis, y: Window & typeof globalThis) {
x = y;
}
// Repro from #50639
function foo<A>(value: A) {
@@ -278,6 +336,11 @@ function foo<A>(value: A) {
value; // A & object & Record<"prop", unknown>
}
}
// Repro from #50954
const checkIsTouchDevice = () =>
"ontouchstart" in window || "msMaxTouchPoints" in window.navigator;
//// [inKeywordTypeguard.js]
@@ -534,9 +597,62 @@ function f9(x) {
x[sym];
}
}
function f10(x) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f11(x) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f12(x) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f13(x) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f14(x) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f15(x) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f16(x, y) {
x = y;
}
// Repro from #50639
function foo(value) {
if (typeof value === "object" && value !== null && "prop" in value) {
value; // A & object & Record<"prop", unknown>
}
}
// Repro from #50954
const checkIsTouchDevice = () => "ontouchstart" in window || "msMaxTouchPoints" in window.navigator;
@@ -371,7 +371,9 @@ function negativeIntersectionTest() {
} else {
window.ontouchstart
>window.ontouchstart : Symbol(ontouchstart, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))
>window : Symbol(window, Decl(lib.dom.d.ts, --, --))
>ontouchstart : Symbol(ontouchstart, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))
}
}
@@ -707,21 +709,147 @@ function f9(x: object) {
}
}
// Repro from #50639
function f10(x: { a: unknown }) {
>f10 : Symbol(f10, Decl(inKeywordTypeguard.ts, 270, 1))
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 272, 13))
>a : Symbol(a, Decl(inKeywordTypeguard.ts, 272, 17))
function foo<A>(value: A) {
>foo : Symbol(foo, Decl(inKeywordTypeguard.ts, 270, 1))
>A : Symbol(A, Decl(inKeywordTypeguard.ts, 274, 13))
>value : Symbol(value, Decl(inKeywordTypeguard.ts, 274, 16))
>A : Symbol(A, Decl(inKeywordTypeguard.ts, 274, 13))
if ("a" in x) {
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 272, 13))
if (typeof value === "object" && value !== null && "prop" in value) {
>value : Symbol(value, Decl(inKeywordTypeguard.ts, 274, 16))
>value : Symbol(value, Decl(inKeywordTypeguard.ts, 274, 16))
>value : Symbol(value, Decl(inKeywordTypeguard.ts, 274, 16))
value; // A & object & Record<"prop", unknown>
>value : Symbol(value, Decl(inKeywordTypeguard.ts, 274, 16))
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 272, 13))
}
else {
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 272, 13))
}
}
function f11(x: { a: any }) {
>f11 : Symbol(f11, Decl(inKeywordTypeguard.ts, 279, 1))
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 281, 13))
>a : Symbol(a, Decl(inKeywordTypeguard.ts, 281, 17))
if ("a" in x) {
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 281, 13))
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 281, 13))
}
else {
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 281, 13))
}
}
function f12(x: { a: string }) {
>f12 : Symbol(f12, Decl(inKeywordTypeguard.ts, 288, 1))
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 290, 13))
>a : Symbol(a, Decl(inKeywordTypeguard.ts, 290, 17))
if ("a" in x) {
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 290, 13))
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 290, 13))
}
else {
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 290, 13))
}
}
function f13(x: { a?: string }) {
>f13 : Symbol(f13, Decl(inKeywordTypeguard.ts, 297, 1))
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 299, 13))
>a : Symbol(a, Decl(inKeywordTypeguard.ts, 299, 17))
if ("a" in x) {
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 299, 13))
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 299, 13))
}
else {
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 299, 13))
}
}
function f14(x: { a: string | undefined }) {
>f14 : Symbol(f14, Decl(inKeywordTypeguard.ts, 306, 1))
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 308, 13))
>a : Symbol(a, Decl(inKeywordTypeguard.ts, 308, 17))
if ("a" in x) {
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 308, 13))
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 308, 13))
}
else {
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 308, 13))
}
}
function f15(x: { a?: string | undefined }) {
>f15 : Symbol(f15, Decl(inKeywordTypeguard.ts, 315, 1))
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 317, 13))
>a : Symbol(a, Decl(inKeywordTypeguard.ts, 317, 17))
if ("a" in x) {
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 317, 13))
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 317, 13))
}
else {
x;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 317, 13))
}
}
function f16(x: typeof globalThis, y: Window & typeof globalThis) {
>f16 : Symbol(f16, Decl(inKeywordTypeguard.ts, 324, 1))
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 326, 13))
>globalThis : Symbol(globalThis)
>y : Symbol(y, Decl(inKeywordTypeguard.ts, 326, 34))
>Window : Symbol(Window, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))
>globalThis : Symbol(globalThis)
x = y;
>x : Symbol(x, Decl(inKeywordTypeguard.ts, 326, 13))
>y : Symbol(y, Decl(inKeywordTypeguard.ts, 326, 34))
}
// Repro from #50639
function foo<A>(value: A) {
>foo : Symbol(foo, Decl(inKeywordTypeguard.ts, 328, 1))
>A : Symbol(A, Decl(inKeywordTypeguard.ts, 332, 13))
>value : Symbol(value, Decl(inKeywordTypeguard.ts, 332, 16))
>A : Symbol(A, Decl(inKeywordTypeguard.ts, 332, 13))
if (typeof value === "object" && value !== null && "prop" in value) {
>value : Symbol(value, Decl(inKeywordTypeguard.ts, 332, 16))
>value : Symbol(value, Decl(inKeywordTypeguard.ts, 332, 16))
>value : Symbol(value, Decl(inKeywordTypeguard.ts, 332, 16))
value; // A & object & Record<"prop", unknown>
>value : Symbol(value, Decl(inKeywordTypeguard.ts, 332, 16))
}
}
// Repro from #50954
const checkIsTouchDevice = () =>
>checkIsTouchDevice : Symbol(checkIsTouchDevice, Decl(inKeywordTypeguard.ts, 340, 5))
"ontouchstart" in window || "msMaxTouchPoints" in window.navigator;
>window : Symbol(window, Decl(lib.dom.d.ts, --, --))
>window.navigator : Symbol(navigator, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))
>window : Symbol(window, Decl(lib.dom.d.ts, --, --))
>navigator : Symbol(navigator, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))
@@ -446,9 +446,9 @@ function negativeIntersectionTest() {
} else {
window.ontouchstart
>window.ontouchstart : any
>window : never
>ontouchstart : any
>window.ontouchstart : (((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any)) | null | undefined
>window : Window & typeof globalThis
>ontouchstart : (((this: GlobalEventHandlers, ev: TouchEvent) => any) & ((this: Window, ev: TouchEvent) => any)) | null | undefined
}
}
@@ -887,6 +887,133 @@ function f9(x: object) {
}
}
function f10(x: { a: unknown }) {
>f10 : (x: { a: unknown;}) => void
>x : { a: unknown; }
>a : unknown
if ("a" in x) {
>"a" in x : boolean
>"a" : "a"
>x : { a: unknown; }
x;
>x : { a: unknown; }
}
else {
x;
>x : never
}
}
function f11(x: { a: any }) {
>f11 : (x: { a: any;}) => void
>x : { a: any; }
>a : any
if ("a" in x) {
>"a" in x : boolean
>"a" : "a"
>x : { a: any; }
x;
>x : { a: any; }
}
else {
x;
>x : never
}
}
function f12(x: { a: string }) {
>f12 : (x: { a: string;}) => void
>x : { a: string; }
>a : string
if ("a" in x) {
>"a" in x : boolean
>"a" : "a"
>x : { a: string; }
x;
>x : { a: string; }
}
else {
x;
>x : never
}
}
function f13(x: { a?: string }) {
>f13 : (x: { a?: string;}) => void
>x : { a?: string | undefined; }
>a : string | undefined
if ("a" in x) {
>"a" in x : boolean
>"a" : "a"
>x : { a?: string | undefined; }
x;
>x : { a?: string | undefined; }
}
else {
x;
>x : { a?: string | undefined; }
}
}
function f14(x: { a: string | undefined }) {
>f14 : (x: { a: string | undefined;}) => void
>x : { a: string | undefined; }
>a : string | undefined
if ("a" in x) {
>"a" in x : boolean
>"a" : "a"
>x : { a: string | undefined; }
x;
>x : { a: string | undefined; }
}
else {
x;
>x : never
}
}
function f15(x: { a?: string | undefined }) {
>f15 : (x: { a?: string | undefined;}) => void
>x : { a?: string | undefined; }
>a : string | undefined
if ("a" in x) {
>"a" in x : boolean
>"a" : "a"
>x : { a?: string | undefined; }
x;
>x : { a?: string | undefined; }
}
else {
x;
>x : { a?: string | undefined; }
}
}
function f16(x: typeof globalThis, y: Window & typeof globalThis) {
>f16 : (x: typeof globalThis, y: Window & typeof globalThis) => void
>x : typeof globalThis
>globalThis : typeof globalThis
>y : Window & typeof globalThis
>globalThis : typeof globalThis
x = y;
>x = y : Window & typeof globalThis
>x : typeof globalThis
>y : Window & typeof globalThis
}
// Repro from #50639
function foo<A>(value: A) {
@@ -912,3 +1039,20 @@ function foo<A>(value: A) {
}
}
// Repro from #50954
const checkIsTouchDevice = () =>
>checkIsTouchDevice : () => boolean
>() => "ontouchstart" in window || "msMaxTouchPoints" in window.navigator : () => boolean
"ontouchstart" in window || "msMaxTouchPoints" in window.navigator;
>"ontouchstart" in window || "msMaxTouchPoints" in window.navigator : boolean
>"ontouchstart" in window : boolean
>"ontouchstart" : "ontouchstart"
>window : Window & typeof globalThis
>"msMaxTouchPoints" in window.navigator : boolean
>"msMaxTouchPoints" : "msMaxTouchPoints"
>window.navigator : Navigator
>window : Window & typeof globalThis
>navigator : Navigator
@@ -97,17 +97,17 @@ const out2 = foo(xhr);
>xhr : XMLHttpRequest
out2.responseXML
>out2.responseXML : { readonly URL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; alinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly all: { readonly length: any; item: any; namedItem: any; }; readonly anchors: { item: any; namedItem: any; readonly length: any; }; readonly applets: { namedItem: any; readonly length: any; item: any; }; bgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; body: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODLine truncated
>out2.responseXML : { readonly URL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; alinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly all: { readonly length: any; item: any; namedItem: any; }; readonly anchors: { item: any; namedItem: any; readonly length: any; }; readonly applets: { namedItem: any; readonly length: any; item: any; }; bgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; body: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODLine truncated
>out2 : { onreadystatechange: unknown; readonly readyState: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly response: unknown; readonly responseText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; responseType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseURL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseXML: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE:Line truncated
>responseXML : { readonly URL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; alinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly all: { readonly length: any; item: any; namedItem: any; }; readonly anchors: { item: any; namedItem: any; readonly length: any; }; readonly applets: { namedItem: any; readonly length: any; item: any; }; bgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; body: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: anLine truncated
>responseXML : { readonly URL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; alinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly all: { readonly length: any; item: any; namedItem: any; }; readonly anchors: { item: any; namedItem: any; readonly length: any; }; readonly applets: { namedItem: any; readonly length: any; item: any; }; bgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; body: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: anLine truncated
out2.responseXML.activeElement.className.length
>out2.responseXML.activeElement.className.length : { toString: unknown; toFixed: unknown; toExponential: unknown; toPrecision: unknown; valueOf: unknown; toLocaleString: unknown; }
>out2.responseXML.activeElement.className : { toString: unknown; charAt: unknown; charCodeAt: unknown; concat: unknown; indexOf: unknown; lastIndexOf: unknown; localeCompare: unknown; match: unknown; replace: unknown; search: unknown; slice: unknown; split: unknown; substring: unknown; toLowerCase: unknown; toLocaleLowerCase: unknown; toUpperCase: unknown; toLocaleUpperCase: unknown; trim: unknown; readonly length: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; substr: unknown; valueOf: unknown; codePointAt: unknown; includes: unknown; endsWith: unknown; normalize: unknown; repeat: unknown; startsWith: unknown; anchor: unknown; big: unknown; blink: unknown; bold: unknown; fixed: unknown; fontcolor: unknown; fontsize: unknown; italics: unknown; link: unknown; small: unknown; strike: unknown; sub: unknown; sup: unknown; [Symbol.iterator]: unknown; }
>out2.responseXML.activeElement : { readonly attributes: { readonly length: any; getNamedItem: any; getNamedItemNS: any; item: any; removeNamedItem: any; removeNamedItemNS: any; setNamedItem: any; setNamedItemNS: any; }; readonly classList: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; className: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly clientHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; id: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly localName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly namespaceURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; outerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange:Line truncated
>out2.responseXML : { readonly URL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; alinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly all: { readonly length: any; item: any; namedItem: any; }; readonly anchors: { item: any; namedItem: any; readonly length: any; }; readonly applets: { namedItem: any; readonly length: any; item: any; }; bgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; body: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODLine truncated
>out2.responseXML : { readonly URL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; alinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly all: { readonly length: any; item: any; namedItem: any; }; readonly anchors: { item: any; namedItem: any; readonly length: any; }; readonly applets: { namedItem: any; readonly length: any; item: any; }; bgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; body: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODLine truncated
>out2 : { onreadystatechange: unknown; readonly readyState: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly response: unknown; readonly responseText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; responseType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseURL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseXML: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE:Line truncated
>responseXML : { readonly URL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; alinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly all: { readonly length: any; item: any; namedItem: any; }; readonly anchors: { item: any; namedItem: any; readonly length: any; }; readonly applets: { namedItem: any; readonly length: any; item: any; }; bgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; body: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: anLine truncated
>responseXML : { readonly URL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; alinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly all: { readonly length: any; item: any; namedItem: any; }; readonly anchors: { item: any; namedItem: any; readonly length: any; }; readonly applets: { namedItem: any; readonly length: any; item: any; }; bgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; body: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; inert: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: anLine truncated
>activeElement : { readonly attributes: { readonly length: any; getNamedItem: any; getNamedItemNS: any; item: any; removeNamedItem: any; removeNamedItemNS: any; setNamedItem: any; setNamedItemNS: any; }; readonly classList: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; className: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly clientHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; id: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly localName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly namespaceURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; outerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitLine truncated
>className : { toString: unknown; charAt: unknown; charCodeAt: unknown; concat: unknown; indexOf: unknown; lastIndexOf: unknown; localeCompare: unknown; match: unknown; replace: unknown; search: unknown; slice: unknown; split: unknown; substring: unknown; toLowerCase: unknown; toLocaleLowerCase: unknown; toUpperCase: unknown; toLocaleUpperCase: unknown; trim: unknown; readonly length: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; substr: unknown; valueOf: unknown; codePointAt: unknown; includes: unknown; endsWith: unknown; normalize: unknown; repeat: unknown; startsWith: unknown; anchor: unknown; big: unknown; blink: unknown; bold: unknown; fixed: unknown; fontcolor: unknown; fontsize: unknown; italics: unknown; link: unknown; small: unknown; strike: unknown; sub: unknown; sup: unknown; [Symbol.iterator]: unknown; }
>length : { toString: unknown; toFixed: unknown; toExponential: unknown; toPrecision: unknown; valueOf: unknown; toLocaleString: unknown; }
@@ -273,6 +273,64 @@ function f9(x: object) {
}
}
function f10(x: { a: unknown }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f11(x: { a: any }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f12(x: { a: string }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f13(x: { a?: string }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f14(x: { a: string | undefined }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f15(x: { a?: string | undefined }) {
if ("a" in x) {
x;
}
else {
x;
}
}
function f16(x: typeof globalThis, y: Window & typeof globalThis) {
x = y;
}
// Repro from #50639
function foo<A>(value: A) {
@@ -280,3 +338,8 @@ function foo<A>(value: A) {
value; // A & object & Record<"prop", unknown>
}
}
// Repro from #50954
const checkIsTouchDevice = () =>
"ontouchstart" in window || "msMaxTouchPoints" in window.navigator;