So it does have:

    class A {
      construct new () {}
      thing(obj) {
         …
      }
    }

    class B is A {
       construct new () {}
    }

    B.new().thing(obj)

I’ll need to test this as this is what I want from my scripting language. If this works than wren will replace my Lua janky scripting.

Yes:

https://wren.io/try/?code=MYGwhgzhAECC0G8BQ1rAPYDsIBcBOArsDt...

Trying to update a field from a subclass and print the results doesn’t work.

    class A {
      name {
        _name
      }
      name=(value){
        _name=value
      }
      construct new () {
        _name = "hello"
      }
      thing() {
        System.print(name)
      }
    }

    class B is A {
      construct new () {}
      update(name){
        super.name = name
        return this
      }
    }

    var b = B.new()
    b.update("world").thing()

If you change System.print(name) to System.print(_name) it works but it doesn’t when using the getter. You get null when System.print(name) is called.

Same if you use this.name

Your `name` getter isn't working properly. Weirdly, Wren's implicit returns only work for functions written on a single line.

The getter either needs to be (exactly) `name { _name }` or it needs to explicitly `return _name`.

https://wren.io/functions.html#returning-values

That was it. Nuance in the “no new line after…” parsing. Thanks, it works now. Awesome!