Skip to content

chore: release v0.0.10 - #9

Open
MagicalTux wants to merge 1 commit into
masterfrom
release-plz-2026-09-05T23-54-06Z
Open

MagicalTux wants to merge 1 commit into
masterfrom
release-plz-2026-09-05T23-54-06Z

Conversation

@MagicalTux

@MagicalTux MagicalTux commented Sep 5, 2026 •

Copy link
Copy Markdown
Member

🤖 New release

  • kataan: 0.0.9 -> 0.0.10 (⚠ API breaking changes)

⚠ kataan breaking changes

--- failure constructible_struct_adds_field: struct exhaustively constructible through public API adds field ---

Description:
A pub struct that could be exhaustively constructed with a literal using only public API has a new pub field, breaking existing exhaustive literals.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field FnProto.legacy in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:821
  field FnProto.class_ctor in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:824
  field FnProto.derived in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:827
  field FnProto.is_generator in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:830
  field FnProto.source_span in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:834
  field FnProto.source in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:837
  field Stats.weight in /tmp/.tmpQTLPaP/kataan/src/gc.rs:57

--- failure enum_missing: pub enum removed or renamed ---

Description:
A publicly-visible enum cannot be imported by its prior path. A `pub use` may have been removed, or the enum itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/enum_missing.ron

Failed in:
  enum kataan::nbeval::EvalError, previously in file /tmp/.tmpIc1085/kataan/src/nbeval.rs:29

--- failure enum_no_repr_variant_discriminant_changed: enum variant had its discriminant change value ---

Description:
The enum's variant had its discriminant value change. This breaks downstream code that used its value via a numeric cast like `as isize`.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html#assigning-discriminant-values
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/enum_no_repr_variant_discriminant_changed.ron

Failed in:
  variant Op::BitNot 14 -> 86 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:466
  variant Op::Neg 15 -> 87 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:468
  variant Op::Not 16 -> 88 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:470
  variant Op::Lt 17 -> 89 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:472
  variant Op::Move 18 -> 90 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:474
  variant Op::JumpIfFalse 19 -> 91 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:476
  variant Op::Jump 20 -> 92 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:478
  variant Op::AddValue 21 -> 93 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:480
  variant Op::StrictEq 22 -> 94 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:482
  variant Op::NewString 23 -> 95 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:484
  variant Op::NewArray 24 -> 97 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:489
  variant Op::NewArrayCtor 25 -> 98 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:493
  variant Op::GetElem 26 -> 99 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:495
  variant Op::SetElem 27 -> 100 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:497
  variant Op::GetKey 28 -> 101 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:500
  variant Op::SetKey 29 -> 102 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:502
  variant Op::ObjectSpread 30 -> 103 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:505
  variant Op::EnumKeys 31 -> 104 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:508
  variant Op::ArrayLen 32 -> 105 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:510
  variant Op::CollectionSize 33 -> 106 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:512
  variant Op::ArrayPush 34 -> 107 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:514
  variant Op::ArrayExtend 35 -> 108 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:516
  variant Op::IterValues 36 -> 109 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:523
  variant Op::ArraySliceFrom 37 -> 110 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:526
  variant Op::ObjectRest 38 -> 111 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:529
  variant Op::NewCollection 39 -> 112 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:536
  variant Op::NewRegExp 40 -> 113 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:542
  variant Op::NewObject 41 -> 114 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:550
  variant Op::SetProp 42 -> 115 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:552
  variant Op::SetHidden 43 -> 116 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:555
  variant Op::SetProto 44 -> 117 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:558
  variant Op::GetProp 45 -> 118 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:560
  variant Op::Call 46 -> 119 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:563
  variant Op::LoadFunc 47 -> 120 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:565
  variant Op::MakeClosure 48 -> 121 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:570
  variant Op::CallValue 49 -> 122 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:577
  variant Op::CallValueThis 50 -> 123 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:584
  variant Op::CallMethod 51 -> 124 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:592
  variant Op::CallCtor 52 -> 125 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:600
  variant Op::CallNative 53 -> 126 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:606
  variant Op::PushHandler 54 -> 127 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:613
  variant Op::PopHandler 55 -> 128 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:615
  variant Op::Throw 56 -> 129 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:618
  variant Op::Return 57 -> 130 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:620
  variant Op::TailCall 58 -> 131 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:627
  variant Op::TailCallValue 59 -> 132 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:632

--- failure enum_repr_variant_discriminant_changed: variant of an enum with explicit repr changed discriminant ---

Description:
An enum variant has changed its discriminant value. The enum has a defined primitive representation, so this breaks downstream code that used the discriminant value via an unsafe pointer cast.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html#pointer-casting
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/enum_repr_variant_discriminant_changed.ron

Failed in:
  variant Cell::Native 6 -> 7 in /tmp/.tmpQTLPaP/kataan/src/cell.rs:281
  variant Cell::HostFn 7 -> 8 in /tmp/.tmpQTLPaP/kataan/src/cell.rs:288
  variant Cell::BoundNative 8 -> 9 in /tmp/.tmpQTLPaP/kataan/src/cell.rs:291
  variant Cell::Promise 9 -> 10 in /tmp/.tmpQTLPaP/kataan/src/cell.rs:298
  variant Cell::Date 10 -> 11 in /tmp/.tmpQTLPaP/kataan/src/cell.rs:300
  variant Cell::TemporalData 11 -> 12 in /tmp/.tmpQTLPaP/kataan/src/cell.rs:308
  variant Cell::RegExp 12 -> 13 in /tmp/.tmpQTLPaP/kataan/src/cell.rs:311

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/enum_variant_added.ron

Failed in:
  variant Cell:VmFunction in /tmp/.tmpQTLPaP/kataan/src/cell.rs:269
  variant Cell:Env in /tmp/.tmpQTLPaP/kataan/src/cell.rs:278
  variant Op:LoadGlobal in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:104
  variant Op:TypeofGlobal in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:107
  variant Op:StoreGlobal in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:110
  variant Op:GlobalExists in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:120
  variant Op:MakeArguments in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:127
  variant Op:IterOpen in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:130
  variant Op:IterNext in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:135
  variant Op:IterRest in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:142
  variant Op:IterClose in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:151
  variant Op:HostDelete in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:154
  variant Op:DeleteGlobal in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:163
  variant Op:TemplateObject in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:167
  variant Op:ToStr in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:175
  variant Op:RequireObjectCoercible in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:178
  variant Op:CheckTdz in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:181
  variant Op:MakeClass in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:187
  variant Op:DefineMethod in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:190
  variant Op:DefineData in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:198
  variant Op:SuperCall in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:207
  variant Op:SuperGet in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:215
  variant Op:SuperSet in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:223
  variant Op:DerivedResult in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:232
  variant Op:SuperCtor in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:235
  variant Op:InitFields in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:238
  variant Op:NewPrivateName in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:241
  variant Op:PrivateGet in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:243
  variant Op:PrivateSet in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:246
  variant Op:PrivateIn in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:248
  variant Op:PrivateDefine in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:251
  variant Op:PrivateDefineAccessor in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:253
  variant Op:Yield in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:260
  variant Op:AsyncIterOpen in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:263
  variant Op:AsyncIterStep in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:270
  variant Op:AsyncIterClose in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:279
  variant Op:CheckObject in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:286
  variant Op:YieldDelegate in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:292
  variant Op:YieldResume in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:301
  variant Op:AsyncDelegateCall in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:306
  variant Op:ThrowTypeError in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:316
  variant Op:ThrowReferenceError in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:319
  variant Op:SuperSnapshot in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:324
  variant Op:Compare in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:327
  variant Op:ObjectRestDyn in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:330
  variant Op:AnnexBGlobal in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:338
  variant Op:AddDisposable in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:346
  variant Op:DisposeResources in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:349
  variant Op:AddAsyncDisposable in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:353
  variant Op:AsyncDisposeStep in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:358
  variant Op:MapArguments in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:361
  variant Op:DirectEval in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:364
  variant Op:Env in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:371
  variant Op:Await in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:380
  variant Op:GeneratorStart in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:383
  variant Op:InitGenerator in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:387
  variant Op:SetProtoIfObject in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:390
  variant Op:LoadNewTarget in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:393
  variant Op:NewBigInt in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:396
  variant Op:ToNumeric in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:399
  variant Op:Step in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:401
  variant Op:CallSpread in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:404
  variant Op:ConstructSpread in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:411
  variant Op:ToKey in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:414
  variant Op:SetPropStrict in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:417
  variant Op:SetKeyStrict in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:420
  variant Op:BindThis in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:424
  variant Op:CallKey in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:427
  variant Op:InitFnPrototype in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:436
  variant Op:InitGlobal in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:439
  variant Op:ImportMeta in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:441
  variant Op:DynImport in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:445
  variant Op:Construct in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:455
  variant Op:Relational in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:459
  variant Op:NewStringWtf8 in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:487
  variant Op:TailCallThis in /tmp/.tmpQTLPaP/kataan/src/nbvm.rs:635
  variant SnapCell:VmFunction in /tmp/.tmpQTLPaP/kataan/src/snapshot.rs:69

--- failure enum_variant_missing: pub enum variant removed or renamed ---

Description:
A publicly-visible enum has at least one variant that is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/enum_variant_missing.ron

Failed in:
  variant Cell::Function, previously in file /tmp/.tmpIc1085/kataan/src/cell.rs:266
  variant Cell::Class, previously in file /tmp/.tmpIc1085/kataan/src/cell.rs:326
  variant SnapCell::Function, previously in file /tmp/.tmpIc1085/kataan/src/snapshot.rs:70
  variant ExecError::NotDefined, previously in file /tmp/.tmpIc1085/kataan/src/nbexec/mod.rs:45
  variant ExecError::NotCallable, previously in file /tmp/.tmpIc1085/kataan/src/nbexec/mod.rs:47
  variant ExecError::OptShortCircuit, previously in file /tmp/.tmpIc1085/kataan/src/nbexec/mod.rs:61
  variant ExecError::TailCall, previously in file /tmp/.tmpIc1085/kataan/src/nbexec/mod.rs:69

--- failure function_missing: pub fn removed or renamed ---

Description:
A publicly-visible function cannot be imported by its prior path. A `pub use` may have been removed, or the function itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/function_missing.ron

Failed in:
  function kataan::nbexec::eval_source_typed, previously in file /tmp/.tmpIc1085/kataan/src/nbexec/mod.rs:9426
  function kataan::nbexec::module::eval_script_typed_with_import_base, previously in file /tmp/.tmpIc1085/kataan/src/nbexec/module.rs:125
  function kataan::nbexec::eval_source_with_limits, previously in file /tmp/.tmpIc1085/kataan/src/nbexec/mod.rs:9270
  function kataan::nbexec::eval_source, previously in file /tmp/.tmpIc1085/kataan/src/nbexec/mod.rs:9261
  function kataan::nbexec::eval_source_capturing, previously in file /tmp/.tmpIc1085/kataan/src/nbexec/mod.rs:9300
  function kataan::nbexec::module::eval_module_typed, previously in file /tmp/.tmpIc1085/kataan/src/nbexec/module.rs:46
  function kataan::nbexec::module::eval_module, previously in file /tmp/.tmpIc1085/kataan/src/nbexec/module.rs:157
  function kataan::nbeval::eval, previously in file /tmp/.tmpIc1085/kataan/src/nbeval.rs:36
  function kataan::nbexec::module::eval_module_typed_with_prelude, previously in file /tmp/.tmpIc1085/kataan/src/nbexec/module.rs:80
  function kataan::nbexec::eval_source_typed_interruptible, previously in file /tmp/.tmpIc1085/kataan/src/nbexec/mod.rs:9438

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/inherent_method_missing.ron

Failed in:
  Scope::add_disposer, previously in file /tmp/.tmpIc1085/kataan/src/env.rs:377
  Scope::has_disposers, previously in file /tmp/.tmpIc1085/kataan/src/env.rs:387
  Scope::take_disposers, previously in file /tmp/.tmpIc1085/kataan/src/env.rs:399
  Realm::new_function, previously in file /tmp/.tmpIc1085/kataan/src/realm.rs:1623
  Realm::function_at, previously in file /tmp/.tmpIc1085/kataan/src/realm.rs:1638
  Realm::new_class, previously in file /tmp/.tmpIc1085/kataan/src/realm.rs:1662
  Realm::class_prototype_cached, previously in file /tmp/.tmpIc1085/kataan/src/realm.rs:1669
  Realm::set_class_prototype, previously in file /tmp/.tmpIc1085/kataan/src/realm.rs:1676
  Realm::class_at, previously in file /tmp/.tmpIc1085/kataan/src/realm.rs:1682
  Cell::as_function, previously in file /tmp/.tmpIc1085/kataan/src/cell.rs:520
  Cell::as_class, previously in file /tmp/.tmpIc1085/kataan/src/cell.rs:585

--- failure module_missing: pub module removed or renamed ---

Description:
A publicly-visible module cannot be imported by its prior path. A `pub use` may have been removed, or the module may have been renamed, removed, or made non-public.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/module_missing.ron

Failed in:
  mod kataan::nbeval, previously in file /tmp/.tmpIc1085/kataan/src/nbeval.rs:1

--- failure struct_missing: pub struct removed or renamed ---

Description:
A publicly-visible struct cannot be imported by its prior path. A `pub use` may have been removed, or the struct itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/struct_missing.ron

Failed in:
  struct kataan::snapshot::SnapFrame, previously in file /tmp/.tmpIc1085/kataan/src/snapshot.rs:137

--- failure type_mismatched_generic_lifetimes: type now takes a different number of generic lifetimes ---

Description:
A type now takes a different number of generic lifetime parameters. Uses of this type that name the previous number of parameters will be broken.
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/type_mismatched_generic_lifetimes.ron
Failed in:
  Struct Interp (1 -> 0 lifetime params) in /tmp/.tmpQTLPaP/kataan/src/nbexec/mod.rs:159
  Struct Interp (1 -> 0 lifetime params) in /tmp/.tmpQTLPaP/kataan/src/nbexec/mod.rs:159
  Struct Ctx (2 -> 1 lifetime params) in /tmp/.tmpQTLPaP/kataan/src/nbexec/mod.rs:644
  Struct Ctx (2 -> 1 lifetime params) in /tmp/.tmpQTLPaP/kataan/src/nbexec/mod.rs:644
Changelog

0.0.10 - 2026-10-04

Added

  • (nbvm) cross-realm dynamic functions, realm-aware eval environments, eval-code fixes
  • (nbvm) eval in derived constructors, var reference order, eval?.(), with-object tail calls
  • (nbvm) direct eval in class bodies, field initializers and ShadowRealm code on the VM
  • (entry) Interp::run and every product entry point run on the hosted VM
  • (nbvm) VM functions keep their source text for Function.prototype.toString
  • (nbvm) eval code, $262.evalScript and Function() bodies run on the VM
  • (nbvm) $262.agent tests run on the VM; tagged-template PTC; callee-before-args
  • (nbvm) dynamic-scope functions (direct eval) in module code resolve in the module environment
  • (nbvm) module top-level using, import.meta(), namespace super-set/field triggers, ShadowRealm imports on the VM
  • (nbvm) direct eval in functions and with run on the VM (dynamic scoping)
  • (nbvm) using / await using at module top level
  • (nbvm) optional calls, super spread calls, super compound/update/destructuring targets, delete super/optional chains, arrow super()
  • (nbvm) ES modules run on the VM
  • (nbvm) await using, using in for heads and try/catch blocks; for-head TDZ
  • (nbvm) parameter TDZ, left-to-right parameter binding, arguments in defaults
  • (nbvm) string/template literals carrying lone surrogates (NewStringWtf8)
  • (nbvm) KATAAN_VM_PURE — fail any run that tree-walks user code
  • (nbvm) const assignment TypeError, eval-referencing fns stay on host, cross-context recursion guard
  • (nbvm) sync using declarations
  • (nbvm) spec generator return()/throw() through finally and iterator closes
  • (nbvm) finally runs on every exit from try/catch
  • (nbvm) computed keys in hosted object patterns
  • (nbvm) block-level function declarations and Annex B.3.3
  • (nbvm) observable mapped arguments via parameter cells
  • (nbvm) direct eval at a hosted script's top level
  • (nbvm) assignment-target for-of/for-in heads; safe generator return()
  • (nbvm) yield* in async generators
  • (nbvm) yield*, for await, member updates; hoisted sibling functions
  • (nbvm) hosted async generators
  • (nbvm) hosted async functions; realm-synthesized VM fn name/length
  • (nbvm) generators as suspended VM frames; for-of over the iterator protocol
  • (nbvm) private class elements in hosted runs
  • (nbvm) hosted object literals define their members
  • (nbvm) runtime classes and new.target in hosted runs
  • (nbvm) allow mapped arguments when aliasing is unobservable
  • (nbvm) spread calls, host Function/indirect eval, CopyDataProperties
  • (nbvm) BigInt literals and BigInt-aware operators in hosted runs
  • (nbvm) arguments, new on plain functions, and real function cells (ROADMAP §2.0 stage 4)
  • (nbvm) calls across the VM and the interpreter (ROADMAP §2.0 stage 3)
  • (nbvm) a global environment for hosted VM runs (ROADMAP §2.0 stage 2)
  • (nbvm) run bytecode programs inside an Interp (ROADMAP §2.0 stage 1)
  • (nbvm) KATAAN_VM_STRICT reports VM refusals instead of silently falling back
  • (gc) collect inside function bodies reached through audited calls
  • (module) import … with { type: "bytes" } (import-bytes), and give embedder typed-array views a prototype

Fixed

  • (nbvm) cross-realm tail calls and resumed frames enter the callee's realm
  • (gc) linear delete/allocation beside large dictionary objects
  • (nbvm) VM functions of another realm run with that realm current
  • (agent) run $262.agent worker scripts on the hosted VM
  • (nbvm) caller stack across nested VM runs, generator default prototype from the function's realm
  • (nbvm) strict writes through the global object's prototype chain
  • (nbvm) function realms for errors and sloppy this, super() evaluation order
  • (nbvm) legacy fn.arguments, debugger statement
  • (nbvm) empty-description symbol method names, tail calls into eval-table functions, String wrapper writes
  • (nbvm) legacy fn.caller, GetPrototypeFromConstructor via the host, proxy setters over array holes
  • (nbvm) primitive receivers, iterator results, for(let) head TDZ, replaced Array.prototype methods
  • (nbvm) sparse arrays, ordinary-object index writes, optional-call chains, VM fn key order
  • (nbvm) remove runtime Unsupported/NotAnObject fallbacks; key, for-in, scope fixes
  • (nbvm) switch case block is one scope; TDZ for uncaptured lexicals
  • (nbvm) symbol operands, String wrapper properties, NamedEvaluation
  • (nbvm) relational operators, array length/sparse writes, captured lexical TDZ
  • (nbvm) lexical this in arrow functions
  • (nbvm) TDZ cells for hoisted-fn captures, const captures, legacy caller, pattern cells
  • (nbvm) catch patterns, template ToString, computed-key setters, tagged templates
  • (nbvm) hosted delete, object-pattern coercibility, getter-only writes
  • (nbvm) name the destructuring member-place type (clippy type_complexity)
  • (nbvm) array destructuring through the iterator protocol in hosted runs
  • (nbvm) hosted operators coerce objects through the interpreter; member assignment order
  • (nbvm) hosted writes use the interpreter's [[Set]] where the VM store is wrong
  • (nbvm) VM correctness — reads, calls, this, generators, and GC in hosted runs
  • (intl) bump intl to 0.6.2 — region number symbols and CLDR search collations
  • (intl) select the CLDR search collation for usage:"search", and group exact decimals by the locale's real pattern
  • (test262) give every script that calls import() its file as the import base
  • (class) resolve a class's superclass from the class object, not by re-evaluating extends
  • (instanceof) decide built-in instanceof by the prototype chain, not the cell brand
  • (class) a proxy is transparent to private elements, on read as well as write
  • (builtins) preserve NaN bit patterns in typed-array slice, tighten Date parsing, close yield* iterators
  • (realm) give arrays a real per-object realm, and resolve intrinsics from the running realm
  • (realm) repair is_internal_key's doc comment and escape an intra-doc link
  • (class) integrity levels must not reach private elements
  • (nbexec) var-hoist destructuring patterns, stop hiding user NUL keys, revive typed arrays
  • (nbexec) legacy fn.arguments, with-scoped delete, and global accessor redefinition
  • (proxy) observe traps through [[Get]], guard function realms, and keep private names off [[Set]]
  • (lexer) await and yield are contextual, so / after them is not always a regex
  • (nbvm) collect garbage inside function bodies, not just the outermost frame
  • (nbexec) slice Function.prototype.toString from the defining source; run harness as its own Script

Other

  • one engine — ROADMAP §2.0 done, README, CLI help, test docs
  • (nbexec) GC coverage for collections inside VM function bodies
  • (nbexec) delete the tree-walker's AST executor
  • (nbexec) no interpreter closures on the VM path
  • (nbexec) no tree-walker fallbacks — a VM refusal or fault is an error
  • (roadmap) inventory of what still executes on the tree-walker
  • (nbvm) drop private intra-doc link in vm_module (rustdoc -D warnings)
  • (test262) KATAAN_TEST262_LIST runs an exact list of test paths
  • (roadmap) §2.0 progress — 51,404 of the corpus on the VM
  • (roadmap) §2.0 progress — 51,328 of the corpus on the VM
  • (roadmap) §2.0 progress — 50,604 of the corpus on the VM
  • (roadmap) §2.0 progress — 39,933 of the corpus on the VM
  • record the VM-coverage progress; the VM does not compile generators
  • (roadmap) §2.0 one engine — the bytecode VM as a tier of the interpreter
  • (readme) bring the README in line with the code
  • (test262) heartbeat the progress file between a test's sloppy and strict runs
  • headline status — 53,372/53,377 with staging gated, 5 ledgered failures, in-function GC
  • (test262) gate staging/ in the nightly corpus run and the bless workflow


This PR was generated with release-plz.

@MagicalTux
MagicalTux force-pushed the release-plz-2026-09-05T23-54-06Z branch 19 times, most recently from b1f1638 to b9b9e4e Compare September 8, 2026 05:05
@MagicalTux
MagicalTux force-pushed the release-plz-2026-09-05T23-54-06Z branch 11 times, most recently from 2e63dd1 to a123859 Compare September 29, 2026 05:23
@MagicalTux
MagicalTux force-pushed the release-plz-2026-09-05T23-54-06Z branch 29 times, most recently from 816fd04 to a209924 Compare October 4, 2026 13:25

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

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant