code: func (sw *stackWrapper) pushObject(vm *duktape.Context) {
  	obj := vm.PushObject()
  
  	vm.PushGoFunction(func(ctx *duktape.Context) int { ctx.PushInt(len(sw.stack.Data())); return 1 })
  	vm.PutPropString(obj, "length")
  
  	// Generate the `peek` method which takes an int and returns a bigint
  	vm.PushGoFunction(func(ctx *duktape.Context) int {
  		offset := ctx.GetInt(-1)
  		ctx.Pop()
  
  		pushBigInt(sw.peek(offset), ctx)
  		return 1
  	})
  	vm.PutPropString(obj, "peek")
  }
docs: // pushObject assembles a JSVM object wrapping a swappable stack and pushes it
  // onto the VM stack.