{
  "version": 1,
  "comment": "Vector3.x、Color.a、Rect.widthについて、コンストラクタで値型を生成し、getterで変更前の値を取得、setterで変更、getterで変更後の値を再取得してログへ出力します。__SystemVoidを省略するsetterと明記するsetterの両方を検証します。",
  "data": [
    { "name": "__f01", "type": "SystemSingle", "value": 0.1 },
    { "name": "__f02", "type": "SystemSingle", "value": 0.2 },
    { "name": "__f03", "type": "SystemSingle", "value": 0.3 },
    { "name": "__f04", "type": "SystemSingle", "value": 0.4 },
    { "name": "__f09", "type": "SystemSingle", "value": 0.9 },
    { "name": "__f1", "type": "SystemSingle", "value": 1 },
    { "name": "__f2", "type": "SystemSingle", "value": 2 },
    { "name": "__f3", "type": "SystemSingle", "value": 3 },
    { "name": "__f4", "type": "SystemSingle", "value": 4 },
    { "name": "__f8", "type": "SystemSingle", "value": 8 },
    { "name": "__f9", "type": "SystemSingle", "value": 9 },
    { "name": "__vector", "type": "UnityEngineVector3", "value": null },
    { "name": "__color", "type": "UnityEngineColor", "value": null },
    { "name": "__rect", "type": "UnityEngineRect", "value": null },
    { "name": "__before", "type": "SystemSingle", "value": 0 },
    { "name": "__after", "type": "SystemSingle", "value": 0 },
    { "name": "__vectorBeforePrefix", "type": "SystemString", "value": "Vector3.x before = " },
    { "name": "__vectorAfterPrefix", "type": "SystemString", "value": "Vector3.x after = " },
    { "name": "__colorBeforePrefix", "type": "SystemString", "value": "Color.a before = " },
    { "name": "__colorAfterPrefix", "type": "SystemString", "value": "Color.a after = " },
    { "name": "__rectBeforePrefix", "type": "SystemString", "value": "Rect.width before = " },
    { "name": "__rectAfterPrefix", "type": "SystemString", "value": "Rect.width after = " },
    { "name": "__message", "type": "SystemString", "value": "" }
  ],
  "code": [
    {
      "name": "TestProperties",
      "export": true,
      "instructions": [
        { "op": "PUSH", "operand": "__f1" },
        { "op": "PUSH", "operand": "__f2" },
        { "op": "PUSH", "operand": "__f3" },
        {
          "op": "EXTERN",
          "signature": "UnityEngineVector3.__ctor__SystemSingle_SystemSingle_SystemSingle__UnityEngineVector3",
          "argumentCount": 3,
          "return": "__vector"
        },
        { "op": "POP" },
        { "op": "PUSH", "operand": "__vector" },
        {
          "op": "EXTERN",
          "signature": "UnityEngineVector3.__get_x__SystemSingle",
          "argumentCount": 1,
          "return": "__before"
        },
        { "op": "POP" },
        { "op": "PUSH", "operand": "__vectorBeforePrefix" },
        { "op": "PUSH", "operand": "__before" },
        {
          "op": "EXTERN",
          "signature": "SystemString.__Concat__SystemObject_SystemObject__SystemString",
          "argumentCount": 2,
          "return": "__message"
        },
        {
          "op": "EXTERN",
          "signature": "UnityEngineDebug.__Log__SystemObject__SystemVoid",
          "argumentCount": 1
        },
        { "op": "PUSH", "operand": "__vector" },
        { "op": "PUSH", "operand": "__f9" },
        {
          "op": "EXTERN",
          "signature": "UnityEngineVector3.__set_x__SystemSingle",
          "argumentCount": 2,
          "refArguments": [0]
        },
        { "op": "PUSH", "operand": "__vector" },
        {
          "op": "EXTERN",
          "signature": "UnityEngineVector3.__get_x__SystemSingle",
          "argumentCount": 1,
          "return": "__after"
        },
        { "op": "POP" },
        { "op": "PUSH", "operand": "__vectorAfterPrefix" },
        { "op": "PUSH", "operand": "__after" },
        {
          "op": "EXTERN",
          "signature": "SystemString.__Concat__SystemObject_SystemObject__SystemString",
          "argumentCount": 2,
          "return": "__message"
        },
        {
          "op": "EXTERN",
          "signature": "UnityEngineDebug.__Log__SystemObject__SystemVoid",
          "argumentCount": 1
        },

        { "op": "PUSH", "operand": "__f01" },
        { "op": "PUSH", "operand": "__f02" },
        { "op": "PUSH", "operand": "__f03" },
        { "op": "PUSH", "operand": "__f04" },
        {
          "op": "EXTERN",
          "signature": "UnityEngineColor.__ctor__SystemSingle_SystemSingle_SystemSingle_SystemSingle__UnityEngineColor",
          "argumentCount": 4,
          "return": "__color"
        },
        { "op": "POP" },
        { "op": "PUSH", "operand": "__color" },
        {
          "op": "EXTERN",
          "signature": "UnityEngineColor.__get_a__SystemSingle",
          "argumentCount": 1,
          "return": "__before"
        },
        { "op": "POP" },
        { "op": "PUSH", "operand": "__colorBeforePrefix" },
        { "op": "PUSH", "operand": "__before" },
        {
          "op": "EXTERN",
          "signature": "SystemString.__Concat__SystemObject_SystemObject__SystemString",
          "argumentCount": 2,
          "return": "__message"
        },
        {
          "op": "EXTERN",
          "signature": "UnityEngineDebug.__Log__SystemObject__SystemVoid",
          "argumentCount": 1
        },
        { "op": "PUSH", "operand": "__color" },
        { "op": "PUSH", "operand": "__f09" },
        {
          "op": "EXTERN",
          "signature": "UnityEngineColor.__set_a__SystemSingle",
          "argumentCount": 2,
          "refArguments": [0]
        },
        { "op": "PUSH", "operand": "__color" },
        {
          "op": "EXTERN",
          "signature": "UnityEngineColor.__get_a__SystemSingle",
          "argumentCount": 1,
          "return": "__after"
        },
        { "op": "POP" },
        { "op": "PUSH", "operand": "__colorAfterPrefix" },
        { "op": "PUSH", "operand": "__after" },
        {
          "op": "EXTERN",
          "signature": "SystemString.__Concat__SystemObject_SystemObject__SystemString",
          "argumentCount": 2,
          "return": "__message"
        },
        {
          "op": "EXTERN",
          "signature": "UnityEngineDebug.__Log__SystemObject__SystemVoid",
          "argumentCount": 1
        },

        { "op": "PUSH", "operand": "__f1" },
        { "op": "PUSH", "operand": "__f2" },
        { "op": "PUSH", "operand": "__f3" },
        { "op": "PUSH", "operand": "__f4" },
        {
          "op": "EXTERN",
          "signature": "UnityEngineRect.__ctor__SystemSingle_SystemSingle_SystemSingle_SystemSingle__UnityEngineRect",
          "argumentCount": 4,
          "return": "__rect"
        },
        { "op": "POP" },
        { "op": "PUSH", "operand": "__rect" },
        {
          "op": "EXTERN",
          "signature": "UnityEngineRect.__get_width__SystemSingle",
          "argumentCount": 1,
          "return": "__before"
        },
        { "op": "POP" },
        { "op": "PUSH", "operand": "__rectBeforePrefix" },
        { "op": "PUSH", "operand": "__before" },
        {
          "op": "EXTERN",
          "signature": "SystemString.__Concat__SystemObject_SystemObject__SystemString",
          "argumentCount": 2,
          "return": "__message"
        },
        {
          "op": "EXTERN",
          "signature": "UnityEngineDebug.__Log__SystemObject__SystemVoid",
          "argumentCount": 1
        },
        { "op": "PUSH", "operand": "__rect" },
        { "op": "PUSH", "operand": "__f8" },
        {
          "op": "EXTERN",
          "signature": "UnityEngineRect.__set_width__SystemSingle__SystemVoid",
          "argumentCount": 2,
          "refArguments": [0]
        },
        { "op": "PUSH", "operand": "__rect" },
        {
          "op": "EXTERN",
          "signature": "UnityEngineRect.__get_width__SystemSingle",
          "argumentCount": 1,
          "return": "__after"
        },
        { "op": "POP" },
        { "op": "PUSH", "operand": "__rectAfterPrefix" },
        { "op": "PUSH", "operand": "__after" },
        {
          "op": "EXTERN",
          "signature": "SystemString.__Concat__SystemObject_SystemObject__SystemString",
          "argumentCount": 2,
          "return": "__message"
        },
        {
          "op": "EXTERN",
          "signature": "UnityEngineDebug.__Log__SystemObject__SystemVoid",
          "argumentCount": 1
        }
      ]
    }
  ]
}
