Skip to content

feat: add es2026 as a valid target and lib - #64096

Open
Oleksandr Tarasiuk (a-tarasyuk) wants to merge 23 commits into
microsoft:mainfrom
a-tarasyuk:feat/63704
Open

Oleksandr Tarasiuk (a-tarasyuk) wants to merge 23 commits into
microsoft:mainfrom
a-tarasyuk:feat/63704

Conversation

@a-tarasyuk

Copy link
Copy Markdown
Contributor

Fixes #63704

@typescript-automation typescript-automation Bot added the For Milestone Bug PRs that fix a bug with a specific milestone label Aug 30, 2026
@a-tarasyuk
Oleksandr Tarasiuk (a-tarasyuk) marked this pull request as ready for review August 31, 2026 21:27
Copilot AI balanced review requested due to automatic review settings August 31, 2026 21:27

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds ES2026 compiler-target and standard-library support, including the APIs requested by #63704.

Changes:

  • Registers es2026 as a target, default standard target, and library.
  • Adds ES2026 API declarations and preserves esnext.* aliases.
  • Adds conformance tests and refreshes generated baselines.

Reviewed changes

Copilot reviewed 136 out of 540 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/typescript/src/enums/scriptTarget*.ts Exposes ES2026 publicly.
packages/typescript/test/{async,sync}/api.test.ts Updates target diagnostics.
tsc/internal/core/{compileroptions,scripttarget_stringer_generated}.go Defines and formats the target.
tsc/internal/tsoptions/enummaps.go Registers target, libraries, and compatibility aliases.
tsc/internal/transformers/estransforms/definitions.go Selects the ES2026 transform pipeline.
tsc/internal/checker/utilities.go Adds ES2026 library suggestions.
tsc/internal/bundled/libs/lib.es2026*.d.ts Defines the ES2026 library and APIs.
tsc/internal/bundled/libs/lib.esnext.d.ts Makes ESNext inherit ES2026.
tsc/internal/bundled/{embed_generated,libs_generated}.go Embeds and registers new libraries.
tsc/internal/compiler/program_test.go Updates expected ESNext library ordering.
tsc/testdata/fixtures/compiler/*.ts Synchronizes compiler fixtures.
tsc/testdata/tests/cases/conformance/es2026/*.ts Tests ES2026 APIs and diagnostics.
tsc/testdata/baselines/reference/** Refreshes generated compiler, build, watch, API, and conformance baselines.

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

@jakebailey
Jake Bailey (jakebailey) requested a balanced review from Copilot September 4, 2026 17:54
Comment thread tsc/internal/bundled/libs/lib.es2026.error.d.ts Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The public target and library surface spans hundreds of generated baselines and warrants final human validation against the ES2026 specification.

Review details
  • Files reviewed: 136/540 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

Comment thread tsc/internal/bundled/libs/lib.es2026.full.d.ts
* Indicates whether the provided value is an object returned by `JSON.rawJSON()`.
* @param value The value to test.
*/
isRawJSON(value: unknown): value is RawJSON;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A bit funky that this is just an interface but I think that's just how it is?

@a-tarasyuk Oleksandr Tarasiuk (a-tarasyuk) Sep 4, 2026 •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://tc39.es/ecma262/2026/multipage/structured-data.html#sec-json.israwjson
https://tc39.es/ecma262/2026/multipage/structured-data.html#sec-json.rawjson

Maybe I’m missing something, but it seems like JSON.rawJSON() returns a regular object, and there’s no RawJSON constructor or global.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, it's just one of those "it has an internal slot" things nobody can observe... Like who's to say I can't assign basically anything to RawJSON if it has rawJSON: string. But we can't do anything about it

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I did wonder if it should be a class with a private field though. You can't forge this type.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’ve added a private field through a class.

declare class RawJSONBase {
    private constructor();
    private RawJSON_typekey: RawJSONBase;
}

interface RawJSON extends RawJSONBase {
    readonly rawJSON: string;
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting, I had no idea this existed; the scripthost types are pretty legacy. Probably we should have deleted them....

I'm not sure what's right here, one I think needs a class to get nominality like this, but, we typically do not do this as it makes it impossible to extend lib later.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've switched back to using the interface. Both approaches have pros and cons, but I think the interface is a better fit here.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

one I think needs a class to get nominality like this, but, we typically do not do this as it makes it impossible to extend lib later.

We do this with Iterator in lib.es2025.iterator.d.ts.

// NOTE: This is specified as what is essentially an unreachable module. All actual global declarations can be found
//       in the `declare global` section, below. This is necessary as there is currently no way to declare an `abstract`
//       member without declaring a `class`, but declaring `class Iterator<T>` globally would conflict with TypeScript's
//       general purpose `Iterator<T>` interface.
export {};

// Abstract type that allows us to mark `next` as `abstract`
declare abstract class Iterator<T, TResult = undefined, TNext = unknown> { // eslint-disable-line @typescript-eslint/no-unsafe-declaration-merging
    abstract next(value?: TNext): IteratorResult<T, TResult>;
}

// ...

declare global {
    // Global `IteratorConstructor` interface that can be augmented by polyfills
    interface IteratorConstructor extends IteratorObjectConstructor {
        /**
         * Creates a native iterator from an iterator or iterable object.
         * Returns its input if the input already inherits from the built-in Iterator class.
         * @param value An iterator or iterable object to convert a native iterator.
         */
        from<T>(value: Iterator<T, unknown, undefined> | Iterable<T, unknown, undefined>): IteratorObject<T, undefined, unknown>;
    }

    var Iterator: IteratorConstructor;
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I would slightly prefer to do the same here since we have precedent.

export {}

declare class RawJSONInstance {
    #isRawJson: unknown;
    readonly rawJSON: string;
}

declare global {
    /**
     * A frozen object containing JSON text for a primitive value, created by `JSON.rawJSON()`.
     */
    interface RawJSON extends RawJSONInstance {
    }

    interface JSON {
        /**
         * Creates a frozen object containing JSON text for a primitive value.
         * @param text Valid JSON text representing a string, number, boolean, or null value.
         * @throws {SyntaxError} If `text` is not valid JSON text for a primitive value.
         */
        rawJSON(text: string): RawJSON;

        /**
         * Indicates whether the provided value is an object returned by `JSON.rawJSON()`.
         * @param value The value to test.
         */
        isRawJSON(value: unknown): value is RawJSON;
    }
}

let x: RawJSON = JSON.rawJSON("true");

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread tsc/internal/bundled/libs/lib.es2026.typedarrays.d.ts
Comment thread tsc/testdata/fixtures/compiler/commandLineParser.ts

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The jsonRawJSON2 source and checked-in baselines disagree, causing baseline tests to fail.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 146/553 changed files
  • Comments generated: 1
  • Review effort level: Balanced

Comment thread tsc/testdata/tests/cases/conformance/es2026/jsonRawJSON2.ts
* Indicates whether the provided value is an object returned by `JSON.rawJSON()`.
* @param value The value to test.
*/
isRawJSON(value: unknown): value is RawJSON;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I would slightly prefer to do the same here since we have precedent.

export {}

declare class RawJSONInstance {
    #isRawJson: unknown;
    readonly rawJSON: string;
}

declare global {
    /**
     * A frozen object containing JSON text for a primitive value, created by `JSON.rawJSON()`.
     */
    interface RawJSON extends RawJSONInstance {
    }

    interface JSON {
        /**
         * Creates a frozen object containing JSON text for a primitive value.
         * @param text Valid JSON text representing a string, number, boolean, or null value.
         * @throws {SyntaxError} If `text` is not valid JSON text for a primitive value.
         */
        rawJSON(text: string): RawJSON;

        /**
         * Indicates whether the provided value is an object returned by `JSON.rawJSON()`.
         * @param value The value to test.
         */
        isRawJSON(value: unknown): value is RawJSON;
    }
}

let x: RawJSON = JSON.rawJSON("true");

@DanielRosenwasser

Copy link
Copy Markdown
Member

TypeScript Bot (@typescript-bot) test it

@typescript-automation

typescript-automation Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Starting jobs; this comment will be updated as builds start and complete.

Command Status Results
test top400 ✅ Started ✅ Results
user test this ✅ Started 👀 Results
run dt ✅ Started ✅ Results
perf test this faster ✅ Started 👀 Results

@typescript-automation

Copy link
Copy Markdown

Daniel Rosenwasser (@DanielRosenwasser)
The results of the perf run you requested are in!

Here they are:

tsc

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
Compiler-Unions - native
Errors 41 41 ~ ~ ~ p=1.000 n=12
Symbols 115,480 115,480 ~ ~ ~ p=1.000 n=12
Types 96,949 96,949 ~ ~ ~ p=1.000 n=12
Memory Used 148,823k (± 0.43%) 148,707k (± 0.49%) ~ 147,302k 150,876k p=0.755 n=12
Memory Allocs 2,271,701 (± 0.00%) 2,271,716 (± 0.01%) ~ 2,271,445 2,272,019 p=0.920 n=12
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Parse Time 0.040s (± 3.21%) 0.041s (± 4.51%) ~ 0.036s 0.045s p=0.424 n=12
Bind Time 0.013s (±10.32%) 0.013s (±13.51%) ~ 0.010s 0.018s p=0.877 n=12
Check Time 0.502s (± 0.61%) 0.505s (± 0.76%) ~ 0.497s 0.515s p=0.296 n=12
Emit Time 0.267s (± 1.68%) 0.272s (± 1.71%) ~ 0.262s 0.285s p=0.173 n=12
Total Time 0.828s (± 0.65%) 0.837s (± 0.76%) +0.009s (+ 1.07%) 0.822s 0.854s p=0.019 n=12
angular-1 - native
Errors 3 3 ~ ~ ~ p=1.000 n=12
Symbols 846,550 (± 0.08%) 847,446 (± 0.05%) +896 (+ 0.11%) 846,024 848,445 p=0.033 n=12
Types 250,004 (± 0.00%) 250,003 (± 0.00%) ~ 250,001 250,007 p=0.809 n=12
Memory Used 793,393k (± 0.05%) 793,642k (± 0.09%) ~ 792,420k 796,549k p=0.755 n=12
Memory Allocs 12,959,123 (± 0.03%) 12,960,454 (± 0.04%) ~ 12,954,022 12,972,672 p=0.755 n=12
Config Time 0.016s 0.016s ~ ~ ~ p=1.000 n=12
Parse Time 0.274s (± 2.05%) 0.276s (± 3.43%) ~ 0.242s 0.289s p=0.164 n=12
Bind Time 0.063s (± 9.48%) 0.064s (±13.66%) ~ 0.057s 0.103s p=0.775 n=12
Check Time 0s 0s ~ ~ ~ p=1.000 n=12
Emit Time 1.628s (± 1.31%) 1.621s (± 1.41%) ~ 1.576s 1.709s p=0.432 n=12
Total Time 1.997s (± 1.40%) 1.992s (± 1.24%) ~ 1.947s 2.091s p=0.943 n=12
mui-docs - native
Errors 11,401 (± 0.05%) 11,402 (± 0.03%) ~ 11,390 11,407 p=0.579 n=12
Symbols 4,402,219 4,402,219 ~ ~ ~ p=1.000 n=12
Types 1,489,173 1,489,173 ~ ~ ~ p=1.000 n=12
Memory Used 4,787,597k (± 0.03%) 4,786,855k (± 0.04%) ~ 4,781,840k 4,790,844k p=0.514 n=12
Memory Allocs 42,335,178 (± 0.05%) 42,321,239 (± 0.03%) ~ 42,292,350 42,374,132 p=0.266 n=12
Config Time 0.015s (± 2.10%) 0.015s (± 2.02%) ~ 0.015s 0.016s p=1.000 n=12
Parse Time 0.555s (± 2.61%) 0.555s (± 2.94%) ~ 0.497s 0.585s p=0.854 n=12
Bind Time 0.002s 0.002s ~ ~ ~ p=1.000 n=12
Check Time 15.408s (± 0.31%) 15.261s (± 0.52%) -0.147s (- 0.95%) 15.115s 15.503s p=0.006 n=12
Emit Time 0.438s (± 2.14%) 0.446s (± 2.78%) ~ 0.427s 0.470s p=0.615 n=12
Total Time 17.188s (± 0.32%) 17.033s (± 0.48%) -0.155s (- 0.90%) 16.881s 17.248s p=0.004 n=12
strada-build-src - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 1,394,252 1,394,252 ~ ~ ~ p=1.000 n=12
Types 443,566 443,566 ~ ~ ~ p=1.000 n=12
Memory Used 1,660,639k (± 0.36%) 1,665,643k (± 0.40%) ~ 1,654,488k 1,685,656k p=0.219 n=12
Memory Allocs 83,659,486 (± 0.02%) 83,610,986 (± 0.11%) ~ 83,183,665 83,718,525 p=0.514 n=12
Config Time 0.004s (±24.18%) 0.004s (±13.41%) ~ 0.003s 0.005s p=0.656 n=12
Parse Time 0.266s (± 2.76%) 0.269s (± 1.49%) ~ 0.261s 0.282s p=0.522 n=12
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Check Time 1.827s (± 0.40%) 1.847s (± 0.59%) +0.021s (+ 1.14%) 1.816s 1.881s p=0.004 n=12
Emit Time 0.294s (± 3.41%) 0.278s (± 2.21%) 🟩-0.017s (- 5.61%) 0.264s 0.301s p=0.005 n=12
Total Time 21.146s (± 0.62%) 21.182s (± 0.79%) ~ 20.907s 21.811s p=0.799 n=12
strada-compiler - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 337,531 337,531 ~ ~ ~ p=1.000 n=12
Types 198,885 198,885 ~ ~ ~ p=1.000 n=12
Memory Used 319,627k (± 0.02%) 319,651k (± 0.04%) ~ 319,330k 319,967k p=0.887 n=12
Memory Allocs 4,673,099 (± 0.01%) 4,673,050 (± 0.01%) ~ 4,671,792 4,674,156 p=0.932 n=12
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=12
Parse Time 0.113s (± 4.01%) 0.116s (± 3.15%) ~ 0.107s 0.126s p=0.353 n=12
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Check Time 1.069s (± 0.40%) 1.081s (± 0.38%) +0.011s (+ 1.08%) 1.072s 1.097s p=0.000 n=12
Emit Time 0.129s (±11.16%) 0.130s (±13.11%) ~ 0.094s 0.159s p=0.723 n=12
Total Time 1.364s (± 0.85%) 1.380s (± 0.79%) ~ 1.353s 1.409s p=0.057 n=12
ts-pre-modules - native
Errors 87 87 ~ ~ ~ p=1.000 n=12
Symbols 305,179 305,179 ~ ~ ~ p=1.000 n=12
Types 181,926 181,926 ~ ~ ~ p=1.000 n=12
Memory Used 277,185k (± 0.02%) 277,175k (± 0.03%) ~ 276,888k 277,304k p=0.944 n=12
Memory Allocs 1,642,232 (± 0.02%) 1,642,135 (± 0.02%) ~ 1,641,443 1,642,530 p=0.671 n=12
Config Time 0.000s (±217.90%) 0.000s (±113.79%) ~ 0.000s 0.001s p=0.590 n=12
Parse Time 0.094s (± 4.42%) 0.099s (± 4.31%) ~ 0.087s 0.111s p=0.122 n=12
Bind Time 0.039s (±11.11%) 0.034s (± 5.49%) ~ 0.028s 0.037s p=0.351 n=12
Check Time 0.844s (± 0.57%) 0.851s (± 0.68%) ~ 0.839s 0.863s p=0.075 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 0.990s (± 1.08%) 0.998s (± 0.64%) ~ 0.985s 1.013s p=0.155 n=12
vscode - native
Errors 371 371 ~ ~ ~ p=1.000 n=12
Symbols 9,665,223 9,665,223 ~ ~ ~ p=1.000 n=12
Types 3,259,959 3,259,959 ~ ~ ~ p=1.000 n=12
Memory Used 6,377,792k (± 0.01%) 6,378,611k (± 0.01%) ~ 6,376,321k 6,380,555k p=0.198 n=12
Memory Allocs 48,914,782 (± 0.02%) 48,911,032 (± 0.01%) ~ 48,898,660 48,934,582 p=0.887 n=12
Config Time 0.066s (± 0.47%) 0.066s (± 0.49%) ~ 0.065s 0.066s p=1.000 n=12
Parse Time 1.818s (± 2.84%) 1.816s (± 3.24%) ~ 1.681s 1.931s p=0.932 n=12
Bind Time 0.466s (±15.86%) 0.495s (±17.65%) ~ 0.399s 0.741s p=0.831 n=12
Check Time 12.606s (± 0.99%) 12.530s (± 1.14%) ~ 12.146s 12.737s p=0.340 n=12
Emit Time 4.007s (±10.96%) 4.191s (±12.14%) ~ 3.662s 5.622s p=0.767 n=12
Total Time 19.071s (± 1.86%) 19.207s (± 2.15%) ~ 18.710s 20.367s p=0.681 n=12
webpack - native
Errors 848 848 ~ ~ ~ p=1.000 n=12
Symbols 1,358,721 1,358,721 ~ ~ ~ p=1.000 n=12
Types 597,693 597,693 ~ ~ ~ p=1.000 n=12
Memory Used 954,136k (± 0.02%) 954,307k (± 0.01%) ~ 954,039k 954,534k p=0.062 n=12
Memory Allocs 6,222,452 (± 0.01%) 6,225,184 (± 0.03%) +2,732 (+ 0.04%) 6,222,272 6,231,164 p=0.000 n=12
Config Time 0.009s 0.009s ~ ~ ~ p=1.000 n=12
Parse Time 0.263s (± 2.23%) 0.262s (± 1.59%) ~ 0.242s 0.268s p=0.743 n=12
Bind Time 0.064s (±17.71%) 0.059s (±13.99%) ~ 0.052s 0.100s p=0.896 n=12
Check Time 2.237s (± 0.59%) 2.242s (± 0.78%) ~ 2.174s 2.277s p=0.989 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 2.606s (± 0.25%) 2.606s (± 0.53%) ~ 2.565s 2.642s p=0.579 n=12
xstate-main - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 1,045,695 1,037,734 -7,961 (- 0.76%) ~ ~ p=0.000 n=12
Types 383,049 378,534 -4,515 (- 1.18%) ~ ~ p=0.000 n=12
Memory Used 611,306k (± 0.01%) 607,653k (± 0.01%) -3,653k (- 0.60%) 607,454k 607,838k p=0.000 n=12
Memory Allocs 4,829,520 (± 0.03%) 4,801,246 (± 0.05%) -28,275 (- 0.59%) 4,797,064 4,811,695 p=0.000 n=12
Config Time 0.003s (±10.34%) 0.003s (±13.14%) ~ 0.002s 0.003s p=0.400 n=12
Parse Time 0.145s (± 4.32%) 0.147s (± 2.83%) ~ 0.138s 0.162s p=0.619 n=12
Bind Time 0.050s (±19.21%) 0.038s (±13.18%) 🟩-0.011s (-22.65%) 0.033s 0.053s p=0.008 n=12
Check Time 1.201s (± 0.86%) 1.093s (± 0.86%) 🟩-0.107s (- 8.93%) 1.078s 1.136s p=0.000 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 1.407s (± 0.65%) 1.292s (± 0.87%) 🟩-0.115s (- 8.17%) 1.267s 1.333s p=0.000 n=12
System info unknown
Hosts
  • native
Scenarios
  • Compiler-Unions - native
  • angular-1 - native
  • mui-docs - native
  • strada-build-src - native
  • strada-compiler - native
  • ts-pre-modules - native
  • vscode - native
  • webpack - native
  • xstate-main - native
Benchmark Name Iterations
Current pr 12
Baseline baseline 12

Developer Information:

Download Benchmarks

@typescript-automation

Copy link
Copy Markdown

Daniel Rosenwasser (@DanielRosenwasser) Here are the results of running the user tests with tsc comparing main and refs/pull/64096/merge:

There were infrastructure failures potentially unrelated to your change:

  • 1 instance of "Git clone failed"
  • 1 instance of "Package install failed"

Otherwise...

Something interesting changed - please have a look.

Details

lodash

/mnt/vss/work/1/s/ts_downloads//m/lodash/tsconfig.json

  • [MISSING] error TS2345: Argument of type '{ castArray: () => any[]; clone: (value: any) => any; cloneDeep: (value: any) => any; cloneDeepWith: (value: any, customizer?: Function | undefined) => any; cloneWith: (value: any, customizer?: Function | undefined) => any; ... 50 more ...; toString: (value: any) => string; }' is not assignable to parameter of type 'string'.
    • /mnt/vss/work/1/s/ts_downloads//m/lodash/node_modules/lodash/fp/lang.js(2,26)

@typescript-automation

Copy link
Copy Markdown

Daniel Rosenwasser (@DanielRosenwasser) Here are the results of running the top 400 repos with tsc comparing main and refs/pull/64096/merge:

Everything looks good!

@typescript-automation

Copy link
Copy Markdown

Hey Daniel Rosenwasser (@DanielRosenwasser), the results of running the DT tests are ready.

Everything looks the same!

You can check the log here.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

The target, libraries, API surface, and conformance coverage are coherent; only a non-blocking JSDoc typo remains.

Review effort: Balanced
Findings: None

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

The target registration, library declarations, API exposure, and corresponding baselines are consistent and adequately tested.

Review effort: Balanced
Findings: None

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

Target registration, library declarations, compatibility mappings, and conformance coverage are consistent.

Review effort: Balanced
Findings: None

@jakebailey Jake Bailey (jakebailey) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we typically add a slew of tests for lib files but, it's fine

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

For Milestone Bug PRs that fix a bug with a specific milestone

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add es2026 as valid target and lib

4 participants