Release Notes 5.0.x¶
5.0.6¶
Upgraded Node.js to
v24.14.1(2026-03-24)Upgraded V8 to
v14.7.173.18(2026-04-07)Upgraded Visual Studio 2026 to v18.4.3
Added
builtInModuleResolutionflag toNodeRuntimeOptionsto switch between Javet's module resolver and Node.js's built-in module resolver for staticimportstatementsFixed
join()inJavetProxyPluginArrayandJavetProxyPluginListto default to","separator when called with no arguments, matching the JavaScript spec (previously defaulted to"")Fixed
with()inJavetProxyPluginArrayandJavetProxyPluginListto support negative indices (e.g.arr.with(-1, value)replaces the last element), matching the JavaScript specFixed
copyWithin()inJavetProxyPluginArrayandJavetProxyPluginListto distinguish between an omittedendparameter (copies to the end of the array) and an explicitendof0(copies nothing)Fixed
keys()inJavetProxyPluginArrayandJavetProxyPluginListto return an Array Iterator (V8VirtualIterator) instead of a plain array, consistent withentries()andvalues()Fixed
reduceRight()inJavetProxyPluginArrayandJavetProxyPluginListto register the callback context with the correct name"reduceRight"instead of"reduce"Added
toLocaleString()toJavetProxyPluginArrayandJavetProxyPluginList, delegating to the nativeArray.prototype.toLocaleStringwith support for optional locale and options argumentsAdded
return()andthrow()methods toV8VirtualIteratorimplementing the optional iterator protocol methods for early termination and error signalingAdded
Symbol.toStringTagsupport toV8VirtualIteratorreturning"Iterator"Fixed
fill()inJavetProxyPluginArrayandJavetProxyPluginListto distinguish between an omittedendparameter (fills to the end) and an explicitendof0(fills nothing)Fixed
splice()inJavetProxyPluginListto remove all elements fromstartto the end whendeleteCountis omitted (e.g.list.splice(0)removes everything), matching the JavaScript spec (previously removed nothing)Fixed
toSpliced()inJavetProxyPluginArrayandJavetProxyPluginListto remove all elements fromstartto the end whendeleteCountis omitted, matching the JavaScript specAdded ES2025 Set methods to
JavetProxyPluginSet:difference(),intersection(),union(),symmetricDifference(),isSubsetOf(),isSupersetOf(),isDisjointFrom()Fixed
entries()inJavetProxyPluginSetto capture the snapshot at call time instead of at property access time, consistent withvalues()Added
toString(radix)polyfill toJavetProxyPluginDefaultforBigInteger,Long(viaBigInt.prototype.toString),Byte,Double,Float,Integer,Short(viaNumber.prototype.toString)Added
toString()polyfill toJavetProxyPluginDefaultforBoolean(viaBoolean.prototype.toString) andCharacter(viavalueOf)Added
Symbol.toPrimitiveregistration toJavetProxyPluginDefaultforBoolean,Byte,Character,Double,Float,Integer,Long,Short,StringFixed
Symbol.toPrimitiveinBaseJavetProxyPluginto handleByteandCharacterfor all hint types (number, default, boolean), preventing incorrect string concatenation in arithmetic expressions
5.0.5¶
Upgraded Node.js to
v24.14.0(2026-02-24)Upgraded V8 to
v14.6.202.8(2026-02-26)Added snapshot support for Node.js mode via
createSnapshot()andsetSnapshotBlob()onNodeRuntimeOptionsAdded
getSnapshotBlob()andsetSnapshotBlob()toJavetEngineConfigso that engine pools can be initialized with a pre-existing V8 snapshotFixed V8 inspector not delivering promise-based responses until the next request by pumping microtasks after dispatching protocol messages
Fixed V8 inspector breakpoints not being hit by enabling protocol message dispatch inside the pause message loop
Fixed V8 inspector not notifying
contextDestroyed/contextCreatedon context reset, preventing stale context referencesFixed V8 inspector pause flag (
runningMessageLoop) to usestd::atomic<bool>for correct cross-thread visibility on ARM/AndroidAdded "break on start" support via
V8Runtime.createV8Inspector(name, waitForDebugger)andV8Inspector.waitForDebugger()using V8'skWaitingForDebuggersession stateAdded multiple inspector sessions support via
V8Runtime.createV8Inspector()allowing multiple DevTools clients to connect to the same runtime simultaneously, with per-session message routing, independentV8Inspectorlifecycle (IJavetClosable), andclose()for graceful session disconnectChanged
V8Inspectorto implementIJavetClosableinstead ofAutoCloseableMigrated V8 inspector from deprecated
v8Inspector->connect()tov8Inspector->connectShared()returningshared_ptrfor safer concurrent session accessRemoved cached
V8Runtime.getV8Inspector()in favor of always creating new sessions viaV8Runtime.createV8Inspector(name)Added console API message forwarding via
IV8InspectorListener.consoleAPIMessage()so thatconsole.log(),console.warn(),console.error(), etc. are delivered to Java listeners without requiringRuntime.enableAdded V8 idle notifications (
idleStarted()/idleFinished()) tied to explicitlock()/unlock()so the CPU profiler can accurately distinguish idle time from active executionAdded
V8InspectorClient::resourceNameToUrl()override so DevTools shows clickable source URLs instead of raw resource namesAdded
IV8InspectorListener.installAdditionalCommandLineAPI(IV8ValueObject commandLineAPI)callback that receives the command-line API scope object, allowing listeners to install custom properties (e.g.$myHelper) available duringRuntime.evaluatewithincludeCommandLineAPI: trueAdded graceful inspector session shutdown via
V8InspectorSession::stop()before destruction to disable debugger pausing and prevent callbacks during teardownSet
originandauxDataonV8ContextInfoso DevTools shows the inspector name as the security origin and identifies the context as default ({"isDefault":true})Added direct session-level API methods on
V8Inspector:schedulePauseOnNextStatement()/cancelPauseOnNextStatement()for programmatic pause,breakProgram()for immediate break,setSkipAllPauses()to temporarily disable all breakpoints, andevaluate()for direct expression evaluation returning a JavetV8Valuewithout CDP JSON overhead
5.0.4¶
Upgraded Node.js to
v24.13.0(2026-01-13)Upgraded V8 to
v14.5.201.5(2026-01-23)
5.0.3¶
Upgraded Node.js to
v24.12.0(2025-12-10)Upgraded V8 to
v14.4.258.16(2025-12-19)Upgraded Visual Studio 2022 to v17.14.23
Supported Temporal in V8 mode
Added
isHarmonyTemporal(),setHarmonyTemporal()toNodeFlagsAdded
isEfficiencyModeEnabled(),isBatterySaverModeEnabled(),isMemorySaverModeEnabled()toV8RuntimeAdded
getPriority(),setPriority()toV8Runtime
5.0.2¶
Upgraded Node.js to
v24.11.1(2025-11-11)Upgraded V8 to
v14.3.127.14(2025-11-14)Upgraded Android NDK to
r29Added
batchPush()toIV8ValueArrayFixed bug in
JavetObjectConverterwhen converting a large Java array or listAdded
getGetPriorities(),getSetPriorities()toClassDescriptorAdded
cancelTerminateExecution(),isExecutionTerminating()toV8Runtime
5.0.1¶
Upgraded Node.js to
v24.10.0(2025-10-08)Upgraded V8 to
v14.2.231.5(2025-10-08)Tweaked build scripts for better performance for V8 mode
5.0.0¶
Upgraded Node.js to
v24.8.0(2025-09-10)Upgraded V8 to
v14.1.146.11(2025-09-22)Upgraded Visual Studio 2022 to v17.14.15
Upgraded Android NDK to
r27dSwitched from MSVC to Clang on Windows for Node.js mode
Switched from GCC to Clang on Linux for V8 mode
Fixed an extra latency in holding a lock in V8GuardDaemon
Renamed
isExperimentalPermission()toisPermission()inNodeFlagsRenamed
setExperimentalPermission()tosetPermission()inNodeFlagsRemoved temporal
Known issue:
getNearHeapLimitCallback(),setNearHeapLimitCallback()break in Node.js mode