Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion tsc/internal/bundled/libs/lib.dom.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1671,7 +1671,7 @@ interface MultiCacheQueryOptions extends CacheQueryOptions {

interface MutationObserverInit {
/** Set to a list of attribute local names (without namespace) if not all attribute mutations need to be observed and attributes is true or omitted. */
attributeFilter?: string[];
attributeFilter?: string[] | Iterable<string>;
/** Set to true if attributes is true or omitted and target's attribute value before the mutation needs to be recorded. */
attributeOldValue?: boolean;
/** Set to true if mutations to target's attributes are to be observed. Can be omitted if attributeOldValue or attributeFilter is specified. */
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
//// [tests/cases/compiler/mutationObserverInitAttributeFilterIterable.ts] ////

//// [mutationObserverInitAttributeFilterIterable.ts]
const names = new Set<string>();

const options1: MutationObserverInit = { attributeFilter: names.keys() };
const options2: MutationObserverInit = { attributeFilter: ["foo", "bar"] };
const options3: MutationObserverInit = { attributeFilter: names };


//// [mutationObserverInitAttributeFilterIterable.js]
"use strict";
const names = new Set();
const options1 = { attributeFilter: names.keys() };
const options2 = { attributeFilter: ["foo", "bar"] };
const options3 = { attributeFilter: names };
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
//// [tests/cases/compiler/mutationObserverInitAttributeFilterIterable.ts] ////

=== mutationObserverInitAttributeFilterIterable.ts ===
const names = new Set<string>();
>names : Symbol(names, Decl(mutationObserverInitAttributeFilterIterable.ts, 0, 5))
>Set : Symbol(Set, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2025.collection.d.ts, --, --))

const options1: MutationObserverInit = { attributeFilter: names.keys() };
>options1 : Symbol(options1, Decl(mutationObserverInitAttributeFilterIterable.ts, 2, 5))
>MutationObserverInit : Symbol(MutationObserverInit, Decl(lib.dom.d.ts, --, --))
>attributeFilter : Symbol(attributeFilter, Decl(mutationObserverInitAttributeFilterIterable.ts, 2, 40))
>names.keys : Symbol(Set.keys, Decl(lib.es2015.iterable.d.ts, --, --))
>names : Symbol(names, Decl(mutationObserverInitAttributeFilterIterable.ts, 0, 5))
>keys : Symbol(Set.keys, Decl(lib.es2015.iterable.d.ts, --, --))

const options2: MutationObserverInit = { attributeFilter: ["foo", "bar"] };
>options2 : Symbol(options2, Decl(mutationObserverInitAttributeFilterIterable.ts, 3, 5))
>MutationObserverInit : Symbol(MutationObserverInit, Decl(lib.dom.d.ts, --, --))
>attributeFilter : Symbol(attributeFilter, Decl(mutationObserverInitAttributeFilterIterable.ts, 3, 40))

const options3: MutationObserverInit = { attributeFilter: names };
>options3 : Symbol(options3, Decl(mutationObserverInitAttributeFilterIterable.ts, 4, 5))
>MutationObserverInit : Symbol(MutationObserverInit, Decl(lib.dom.d.ts, --, --))
>attributeFilter : Symbol(attributeFilter, Decl(mutationObserverInitAttributeFilterIterable.ts, 4, 40))
>names : Symbol(names, Decl(mutationObserverInitAttributeFilterIterable.ts, 0, 5))

Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
//// [tests/cases/compiler/mutationObserverInitAttributeFilterIterable.ts] ////

=== mutationObserverInitAttributeFilterIterable.ts ===
const names = new Set<string>();
>names : Set<string>
>new Set<string>() : Set<string>
>Set : SetConstructor

const options1: MutationObserverInit = { attributeFilter: names.keys() };
>options1 : MutationObserverInit
>{ attributeFilter: names.keys() } : { attributeFilter: SetIterator<string>; }
>attributeFilter : SetIterator<string>
>names.keys() : SetIterator<string>
>names.keys : () => SetIterator<string>
>names : Set<string>
>keys : () => SetIterator<string>

const options2: MutationObserverInit = { attributeFilter: ["foo", "bar"] };
>options2 : MutationObserverInit
>{ attributeFilter: ["foo", "bar"] } : { attributeFilter: string[]; }
>attributeFilter : string[]
>["foo", "bar"] : string[]
>"foo" : "foo"
>"bar" : "bar"

const options3: MutationObserverInit = { attributeFilter: names };
>options3 : MutationObserverInit
>{ attributeFilter: names } : { attributeFilter: Set<string>; }
>attributeFilter : Set<string>
>names : Set<string>

Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// @target: esnext
// @lib: dom,esnext

const names = new Set<string>();

const options1: MutationObserverInit = { attributeFilter: names.keys() };
const options2: MutationObserverInit = { attributeFilter: ["foo", "bar"] };
const options3: MutationObserverInit = { attributeFilter: names };