Skip to content

Releases: sebastienros/jint

v4.7.1

03 Apr 11:12
7b41ac0

Choose a tag to compare

What's Changed

  • Bump the all-dependencies group with 3 updates by @dependabot[bot] in #2372
  • Add ExceptionThrown event to DebugHandler by @lahma in #2375
  • Update Acornima to 1.3.2 by @lahma in #2374
  • Suppress skipped test noise in CI logs by @lahma in #2377
  • Default source to "" in PrepareScript/PrepareModule by @lahma in #2379

Full Changelog: v4.7.0...v4.7.1

v4.7.0

26 Mar 16:57
0a402dd

Choose a tag to compare

What's Changed

  • Bump the all-dependencies group with 3 updates by @dependabot[bot] in #2351
  • Fix for-await-of inside async generators permanently suspending by @Copilot in #2353
  • Fix DST offset applied incorrectly near daylight saving transitions by @lahma in #2357
  • Fix HTML comments in dynamic Function() and for-in initializer evaluation by @lahma in #2358
  • Always enable modules in Jint.Repl for dynamic import by @ivankra in #2356
  • Fix async test reporting and resolve async test262 failures by @lahma in #2359
  • Fix var/lexical name hoisting for destructuring patterns by @lahma in #2360
  • Validate negative test error types in test262 harness by @lahma in #2361
  • Fix async test harness priority, await in computed properties, and forbidden extensions by @lahma in #2363
  • Implement AgentCanSuspend check for Atomics.wait by @lahma in #2364
  • Fix compat-table failures: Array.at, AnnexB if-decl, Proxy observable gets by @lahma in #2365
  • Implement AsyncIterator Helpers by @lahma in #2366
  • Align JavaScript runtime error messages with V8/Node.js by @lahma in #2367
  • Implement TC39 Stage 3 decorators and auto-accessors (preliminary) by @lahma in #2368
  • Fix wasteful allocations and minor perf improvements by @lahma in #2369
  • Add public IsCallable() and IsConstructor() extension methods by @lahma in #2371

Full Changelog: v4.6.4...v4.7.0

v4.6.4

22 Mar 19:38
c63dcc7

Choose a tag to compare

What's Changed

  • Bump the all-dependencies group with 7 updates by @dependabot[bot] in #2327
  • Fix Date.toString() showing StandardName instead of DaylightName during DST by @Copilot in #2329
  • Make a PreparedScriptBenchmark class closer to the original by @Taritsyn in #2325
  • Fix toLocaleString timeZoneName returning full name instead of abbreviation by @Copilot in #2330
  • Update Regex terminology in README by @codeman4033 in #2333
  • Fix typo in README for RegExp to Regex by @codeman4033 in #2334
  • Fix mixed-type addition chain incorrectly treated as pure string concatenation by @Copilot in #2337
  • fix: prevent StackOverflow, IndexOutOfRange, and InvalidCast crashes on malformed JavaScript by @Copilot in #2340
  • Support running test262 using Jint.Repl by @ivankra in #2326
  • Update test262 suite to latest commit and fix 3 new failures by @Copilot in #2341
  • Implement non-ISO calendar support for Temporal (Chinese, Dangi, Hebrew, Persian) by @lahma in #2342
  • Replace embedded resource text files with inline data for Intl CLDR data by @lahma in #2343
  • Enable Intl.Era-monthcode and implement 7 new calendar systems (+2,498 test262 passes) by @lahma in #2344
  • Optimize interpreter hot paths for arithmetic, comparisons, and control flow by @lahma in #2345
  • Eliminate lazy initialization overhead from interpreter hot paths (~8% faster) by @lahma in #2346
  • Fix Temporal calendar handling and enable 2,782 more test262 passes by @lahma in #2347
  • Optimize Intl and Temporal hot paths with caching and algorithmic fixes by @lahma in #2348
  • Fix BigInt exponentiation bypassing execution constraints by @lahma in #2350

New Contributors

Full Changelog: v4.6.3...v4.6.4

v4.6.3

11 Mar 20:38
8e44385

Choose a tag to compare

What's Changed

  • Update Acornima to 1.3.0 and enable RegExp modifiers by @Copilot in #2322
  • Bump Meziantou.Analyzer and 5 others by @dependabot[bot] in #2323
  • Fix prepared script performance regression from shared identifier cache thrashing by @lahma in #2324

Full Changelog: v4.6.2...v4.6.3

v4.6.2

06 Mar 20:53
eca544f

Choose a tag to compare

What's Changed

  • Update benchmark results by @lahma in #2000
  • Fix cached Promise result being reused across for…of loop iterations with await by @Copilot in #2304
  • docs: fix 2 typos in README.md by @Withered-Flower-0422 in #2307
  • Implement ECMAScript Annex B web compatibility features by @lahma in #2308
  • Fix destructuring spec compliance for IteratorClose, done tracking, and binding order by @lahma in #2309
  • Fix some test262 failures by @lahma in #2310
  • Fix empty Dictionary when passing JS object to CLR method accepting Dictionary<string, T> by @Copilot in #2312
  • Fix test262 failures after suite update by @lahma in #2313
  • Implement Promise.allKeyed() and Promise.allSettledKeyed() by @lahma in #2314
  • Implement import-bytes module support by @lahma in #2315
  • Fix module-graphs-does-not-hang and import abrupt return test262 failures by @lahma in #2316
  • Fix eval-code direct eval var arguments conflict detection by @lahma in #2317
  • Fix locale-specific date separators in DateTimeFormat by @lahma in #2319
  • Fix duplicate named capturing groups and clean up regex test262 exclusions by @lahma in #2320

New Contributors

Full Changelog: v4.6.1...v4.6.2

v4.6.1

01 Mar 17:57
832f822

Choose a tag to compare

What's Changed

  • Fix CLR toJSON method invocation in JSON.stringify by @Copilot in #2292
  • Add UnwrapIfPromiseAsync extension method for non-blocking promise resolution by @Copilot in #2298
  • Bump the all-dependencies group with 4 updates by @dependabot[bot] in #2294
  • Fix Object.freeze() support for CLR dictionary-backed ObjectWrapper by @Copilot in #2296
  • Fix InvalidCastException when a property getter is a bound function by @Copilot in #2301
  • Optimize Date operations and object resolution by @Copilot in #2288

Full Changelog: v4.6.0...v4.6.1

v4.6.0

15 Feb 19:18
69ba17b

Choose a tag to compare

This release brings Temporal and internationalization APIs available. There still might be some rough edges and specific non-English cultures might be missing specific formatting. There's a breaking change for custom IReferenceResolver in #2266 , undefined and null semantics changed to make engine work as required by the official specification.

Temporal and internationalization APIs are augmented with plugins to provide data from NodaTime and ICU4N, see https://github.com/sebastienros/jint/tree/main/Jint.Tests.Test262 for example implementations.

What's Changed

  • Preserve lexical block environment across async loop resumes by @Copilot in #2250
  • Add core Intl infrastructure by @lahma in #2253
  • Add CLDR data files and DefaultCldrProvider by @lahma in #2254
  • Add Intl global object and Intl.Locale by @lahma in #2255
  • Add Intl.Collator and update String.localeCompare by @lahma in #2256
  • Add Intl.PluralRules by @lahma in #2257
  • Add Intl.NumberFormat and update toLocaleString by @lahma in #2258
  • Add Intl.DateTimeFormat and update toLocaleString by @lahma in #2259
  • Complete Intl API with remaining formatters and tests by @lahma in #2260
  • Temporal API infrastructure by @lahma in #2262
  • Implement Temporal.Duration by @lahma in #2263
  • Regenerate test suite on settings file change by @lahma in #2265
  • Enable tests and fix issues by @lahma in #2266
  • Improve Internalization API performance by @lahma in #2267
  • Update test262 suite and fix issues by @lahma in #2271
  • Implement Temporal by @lahma in #2264
  • Improve Decode performance by @lahma in #2272
  • Fix some internalization API issues by @lahma in #2273
  • Add async .NET API for JavaScript async/await without blocking threads by @desty2k in #2274
  • Improve string concatenation performance by @lahma in #2275
  • Bump the all-dependencies group with 6 updates by @dependabot[bot] in #2276
  • Add decorator hook for CLR exception error objects by @Copilot in #2280
  • Enable Temporal related internalization API tests and fix issues by @lahma in #2277
  • Add constraint checks to array and typed array methods that bypass memory limits by @Copilot in #2282
  • Add SourceOffset to ScriptParsingOptions for embedded JS snippet error mapping by @Copilot in #2283
  • Add Copilot instructions by @lahma in #2286
  • Fix IReadOnlyDictionary being treated as array-like instead of dictionary by @lahma in #2287
  • Improve function call performance by @lahma in #2281

New Contributors

  • @Copilot made their first contribution in #2250
  • @desty2k made their first contribution in #2274

Full Changelog: v4.5.0...v4.6.0

v4.5.0

07 Jan 19:40
c2cc835

Choose a tag to compare

This is a significant milestone as this release graduates generators functionality from experimental and contains proper suspension and resume logic for both generators and async/await logic. There are a lot of changes to internals so make sure you test thoroughly.

Task interop is still marked as experimental and requires enabling explicitly in Engine options, but it also has had improvements to make it work better in Engine's event loop.

For background work to complete without engine interaction (evaluation) you need to manually process the tasks (for example if you have a timeout pending after script has been run).

engine.Execute(script);
for (var i = 0; i < 100; ++i)
{
    engine.Advanced.ProcessTasks();
    await Task.Delay(100);
}

What's Changed

  • Allows the conversion of primses to tasks when pasing an async function as argument by @REscobar in #2197
  • Bump the all-dependencies group with 3 updates by @dependabot[bot] in #2198
  • Fix missing control characters in Json Parse Key by @H4ad in #2202
  • Use NET 10 SDK to build and test by @lahma in #2185
  • Upgrade packages by @lahma in #2212
  • Convert solution to slnx format by @lahma in #2213
  • Defer iterator next method check until actually iterating by @lahma in #2214
  • Add ArrayExpression and ObjectExpression to computed property key types by @lahma in #2215
  • Fix parameter TDZ and eval-var-scope handling by @lahma in #2216
  • ES6 Generators by @lahma in #824
  • Bump the all-dependencies group with 1 update by @dependabot[bot] in #2217
  • Refactor generator control flow from exceptions to flags by @lahma in #2218
  • Implement Iterator Helpers by @lahma in #2032
  • Implement Iterator Sequencing by @lahma in #2031
  • Update test262 test suite and fix issues by @lahma in #2219
  • Implement RegExp.escape() by @lahma in #2220
  • Implement Immutable ArrayBuffers by @lahma in #2222
  • Implement Joint Iteration by @lahma in #2221
  • Improve REPL for AI usage by @lahma in #2224
  • Implement JSON.parse source text access by @lahma in #2223
  • Rename IsGeneratorSuspended to IsSuspended by @lahma in #2226
  • ECMAScript-compliant async/await with proper suspension by @lahma in #2225
  • Filter TypeReference constructors using TypeResolver.MemberFilter by @lahma in #2227
  • Implement async-iteration by @lahma in #2228
  • Implement Array.fromAsync by @lahma in #2229
  • Add agent support to test262 testing by @lahma in #2231
  • Bump the all-dependencies group with 2 updates by @dependabot[bot] in #2232
  • Implement Atomics by @lahma in #2230
  • ValueTask and IAsyncEnumerable interop support by @lahma in #2233
  • Disable fail-fast in GitHub Actions workflow by @lahma in #2235
  • Add jsValue.UnwrapIfPromise(CancellationToken cancellationToken) by @lahma in #2234
  • Fix Test262Test setTimeout concurrency issue by @lahma in #2236
  • Type resolution should use runtime type when declared type has indexer by @lahma in #2237
  • JSE.GetBaseException() shouldn't return JavaScriptErrorWrapperException by @lahma in #2238
  • Enable decorator tests by @lahma in #2239
  • Fix Final_Sigma_U180E issue by @lahma in #2240
  • Improve TypeReference method parameter scoring by @lahma in #2241
  • Add test coverage for async functions by @lahma in #2242
  • Fall back to non-generic list wrapper on error by @lahma in #2244
  • Update VersionPrefix from 4.0.0 to 4.5.0 by @lahma in #2245
  • Cleanup suspend logic by @lahma in #2246

New Contributors

Full Changelog: v4.4.2...v4.5.0

v4.4.2

09 Nov 19:00
215d1cd

Choose a tag to compare

What's Changed

Full Changelog: v4.4.1...v4.4.2

v4.4.1

26 Jul 13:43
feeab47

Choose a tag to compare

What's Changed

  • Add Options.Constraints.PromiseTimeout To Control timeout for DisposeHint.Async and JintAwaitExpression by @rocklau in #2150
  • Fix iterating a clr list proxy and length property by @martinbu in #2151
  • Fix MethodAccessor property flags by @lahma in #2153

New Contributors

Full Changelog: v4.4.0...v4.4.1