struct2.wast 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. (module
  2. (type $vec (struct (field f32) (field $y (mut f32)) (field $z f32)))
  3. (global (ref $vec) (struct.new $vec (f32.const 1) (f32.const 2) (f32.const 3)))
  4. (global (ref $vec) (struct.new_default $vec))
  5. (func (export "new") (result anyref)
  6. (struct.new_default $vec)
  7. )
  8. (func $get_0_0 (param $v (ref $vec)) (result f32)
  9. (struct.get 0 0 (local.get $v))
  10. )
  11. (func (export "get_0_0") (result f32)
  12. (call $get_0_0 (struct.new_default $vec))
  13. )
  14. (func $get_vec_0 (param $v (ref $vec)) (result f32)
  15. (struct.get $vec 0 (local.get $v))
  16. )
  17. (func (export "get_vec_0") (result f32)
  18. (call $get_vec_0 (struct.new_default $vec))
  19. )
  20. (func $get_0_y (param $v (ref $vec)) (result f32)
  21. (struct.get 0 $y (local.get $v))
  22. )
  23. (func (export "get_0_y") (result f32)
  24. (call $get_0_y (struct.new_default $vec))
  25. )
  26. (func $get_vec_y (param $v (ref $vec)) (result f32)
  27. (struct.get $vec $y (local.get $v))
  28. )
  29. (func (export "get_vec_y") (result f32)
  30. (call $get_vec_y (struct.new_default $vec))
  31. )
  32. (func $set_get_y (param $v (ref $vec)) (param $y f32) (result f32)
  33. (struct.set $vec $y (local.get $v) (local.get $y))
  34. (struct.get $vec $y (local.get $v))
  35. )
  36. (func (export "set_get_y") (param $y f32) (result f32)
  37. (call $set_get_y (struct.new_default $vec) (local.get $y))
  38. )
  39. (func $set_get_1 (param $v (ref $vec)) (param $y f32) (result f32)
  40. (struct.set $vec 1 (local.get $v) (local.get $y))
  41. (struct.get $vec $y (local.get $v))
  42. )
  43. (func (export "set_get_1") (param $y f32) (result f32)
  44. (call $set_get_1 (struct.new_default $vec) (local.get $y))
  45. )
  46. )