diff --git a/test/fixtureAsmJson.json b/test/fixtureAsmJson.json index a843ccc1..802721ae 100644 --- a/test/fixtureAsmJson.json +++ b/test/fixtureAsmJson.json @@ -1,544 +1,532 @@ { - ".code" : [ - { - "begin" : 0, - "end" : 80, - "name" : "PUSH", - "value" : "60" - }, - { - "begin" : 0, - "end" : 80, - "name" : "PUSH", - "value" : "40" - }, - { - "begin" : 0, - "end" : 80, - "name" : "MSTORE" - }, - { - "begin" : 0, - "end" : 80, - "name" : "CALLVALUE" - }, - { - "begin" : 0, - "end" : 80, - "name" : "ISZERO" - }, - { - "begin" : 0, - "end" : 80, - "name" : "PUSH [tag]", - "value" : "1" - }, - { - "begin" : 0, - "end" : 80, - "name" : "JUMPI" - }, - { - "begin" : 0, - "end" : 80, - "name" : "PUSH", - "value" : "0" - }, - { - "begin" : 0, - "end" : 80, - "name" : "DUP1" - }, - { - "begin" : 0, - "end" : 80, - "name" : "REVERT" - }, - { - "begin" : 0, - "end" : 80, - "name" : "tag", - "value" : "1" - }, - { - "begin" : 0, - "end" : 80, - "name" : "JUMPDEST" - }, - { - "begin" : 0, - "end" : 80, - "name" : "PUSH #[$]", - "value" : "0000000000000000000000000000000000000000000000000000000000000000" - }, - { - "begin" : 0, - "end" : 80, - "name" : "DUP1" - }, - { - "begin" : 0, - "end" : 80, - "name" : "PUSH [$]", - "value" : "0000000000000000000000000000000000000000000000000000000000000000" - }, - { - "begin" : 0, - "end" : 80, - "name" : "PUSH", - "value" : "0" - }, - { - "begin" : 0, - "end" : 80, - "name" : "CODECOPY" - }, - { - "begin" : 0, - "end" : 80, - "name" : "PUSH", - "value" : "0" - }, - { - "begin" : 0, - "end" : 80, - "name" : "RETURN" - } - ], - ".data" : { - "0" : { - ".auxdata" : "a165627a7a72305820984496c30d592ecde4b00d5e2c0697b33d6779fd3dc1eb57dc4a34c5c4fa5c760029", - ".code" : [ - { - "begin" : 0, - "end" : 80, - "name" : "PUSH", - "value" : "60" - }, - { - "begin" : 0, - "end" : 80, - "name" : "PUSH", - "value" : "40" - }, - { - "begin" : 0, - "end" : 80, - "name" : "MSTORE" - }, - { - "begin" : 0, - "end" : 80, - "name" : "PUSH", - "value" : "4" - }, - { - "begin" : 0, - "end" : 80, - "name" : "CALLDATASIZE" - }, - { - "begin" : 0, - "end" : 80, - "name" : "LT" - }, - { - "begin" : 0, - "end" : 80, - "name" : "PUSH [tag]", - "value" : "1" - }, - { - "begin" : 0, - "end" : 80, - "name" : "JUMPI" - }, - { - "begin" : 0, - "end" : 80, - "name" : "PUSH", - "value" : "0" - }, - { - "begin" : 0, - "end" : 80, - "name" : "CALLDATALOAD" - }, - { - "begin" : 0, - "end" : 80, - "name" : "PUSH", - "value" : "100000000000000000000000000000000000000000000000000000000" - }, - { - "begin" : 0, - "end" : 80, - "name" : "SWAP1" - }, - { - "begin" : 0, - "end" : 80, - "name" : "DIV" - }, - { - "begin" : 0, - "end" : 80, - "name" : "PUSH", - "value" : "FFFFFFFF" - }, - { - "begin" : 0, - "end" : 80, - "name" : "AND" - }, - { - "begin" : 0, - "end" : 80, - "name" : "DUP1" - }, - { - "begin" : 0, - "end" : 80, - "name" : "PUSH", - "value" : "26121FF0" - }, - { - "begin" : 0, - "end" : 80, - "name" : "EQ" - }, - { - "begin" : 0, - "end" : 80, - "name" : "PUSH [tag]", - "value" : "2" - }, - { - "begin" : 0, - "end" : 80, - "name" : "JUMPI" - }, - { - "begin" : 0, - "end" : 80, - "name" : "tag", - "value" : "1" - }, - { - "begin" : 0, - "end" : 80, - "name" : "JUMPDEST" - }, - { - "begin" : 0, - "end" : 80, - "name" : "PUSH", - "value" : "0" - }, - { - "begin" : 0, - "end" : 80, - "name" : "DUP1" - }, - { - "begin" : 0, - "end" : 80, - "name" : "REVERT" - }, - { - "begin" : 15, - "end" : 78, - "name" : "tag", - "value" : "2" - }, - { - "begin" : 15, - "end" : 78, - "name" : "JUMPDEST" - }, - { - "begin" : 15, - "end" : 78, - "name" : "CALLVALUE" - }, - { - "begin" : 15, - "end" : 78, - "name" : "ISZERO" - }, - { - "begin" : 15, - "end" : 78, - "name" : "PUSH [tag]", - "value" : "3" - }, - { - "begin" : 15, - "end" : 78, - "name" : "JUMPI" - }, - { - "begin" : 15, - "end" : 78, - "name" : "PUSH", - "value" : "0" - }, - { - "begin" : 15, - "end" : 78, - "name" : "DUP1" - }, - { - "begin" : 15, - "end" : 78, - "name" : "REVERT" - }, - { - "begin" : 15, - "end" : 78, - "name" : "tag", - "value" : "3" - }, - { - "begin" : 15, - "end" : 78, - "name" : "JUMPDEST" - }, - { - "begin" : 15, - "end" : 78, - "name" : "PUSH [tag]", - "value" : "4" - }, - { - "begin" : 15, - "end" : 78, - "name" : "PUSH [tag]", - "value" : "5" - }, - { - "begin" : 15, - "end" : 78, - "name" : "JUMP" - }, - { - "begin" : 15, - "end" : 78, - "name" : "tag", - "value" : "4" - }, - { - "begin" : 15, - "end" : 78, - "name" : "JUMPDEST" - }, - { - "begin" : 15, - "end" : 78, - "name" : "PUSH", - "value" : "40" - }, - { - "begin" : 15, - "end" : 78, - "name" : "MLOAD" - }, - { - "begin" : 15, - "end" : 78, - "name" : "DUP1" - }, - { - "begin" : 15, - "end" : 78, - "name" : "DUP3" - }, - { - "begin" : 15, - "end" : 78, - "name" : "PUSH", - "value" : "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - }, - { - "begin" : 15, - "end" : 78, - "name" : "NOT" - }, - { - "begin" : 15, - "end" : 78, - "name" : "AND" - }, - { - "begin" : 15, - "end" : 78, - "name" : "PUSH", - "value" : "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - }, - { - "begin" : 15, - "end" : 78, - "name" : "NOT" - }, - { - "begin" : 15, - "end" : 78, - "name" : "AND" - }, - { - "begin" : 15, - "end" : 78, - "name" : "DUP2" - }, - { - "begin" : 15, - "end" : 78, - "name" : "MSTORE" - }, - { - "begin" : 15, - "end" : 78, - "name" : "PUSH", - "value" : "20" - }, - { - "begin" : 15, - "end" : 78, - "name" : "ADD" - }, - { - "begin" : 15, - "end" : 78, - "name" : "SWAP2" - }, - { - "begin" : 15, - "end" : 78, - "name" : "POP" - }, - { - "begin" : 15, - "end" : 78, - "name" : "POP" - }, - { - "begin" : 15, - "end" : 78, - "name" : "PUSH", - "value" : "40" - }, - { - "begin" : 15, - "end" : 78, - "name" : "MLOAD" - }, - { - "begin" : 15, - "end" : 78, - "name" : "DUP1" - }, - { - "begin" : 15, - "end" : 78, - "name" : "SWAP2" - }, - { - "begin" : 15, - "end" : 78, - "name" : "SUB" - }, - { - "begin" : 15, - "end" : 78, - "name" : "SWAP1" - }, - { - "begin" : 15, - "end" : 78, - "name" : "RETURN" - }, - { - "begin" : 15, - "end" : 78, - "name" : "tag", - "value" : "5" - }, - { - "begin" : 15, - "end" : 78, - "name" : "JUMPDEST" - }, - { - "begin" : 37, - "end" : 43, - "name" : "PUSH", - "value" : "0" - }, - { - "begin" : 58, - "end" : 62, - "name" : "ADDRESS" - }, - { - "begin" : 58, - "end" : 64, - "name" : "PUSH", - "value" : "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - }, - { - "begin" : 58, - "end" : 64, - "name" : "AND" - }, - { - "begin" : 58, - "end" : 64, - "name" : "PUSH", - "value" : "26121FF0" - }, - { - "begin" : 58, - "end" : 73, - "name" : "SWAP1" - }, - { - "begin" : 58, - "end" : 73, - "name" : "POP" - }, - { - "begin" : 58, - "end" : 73, - "name" : "PUSH", - "value" : "100000000000000000000000000000000000000000000000000000000" - }, - { - "begin" : 58, - "end" : 73, - "name" : "MUL" - }, - { - "begin" : 51, - "end" : 73, - "name" : "SWAP1" - }, - { - "begin" : 51, - "end" : 73, - "name" : "POP" - }, - { - "begin" : 15, - "end" : 78, - "name" : "SWAP1" - }, - { - "begin" : 15, - "end" : 78, - "name" : "JUMP", - "value" : "[out]" - } - ] - } - } + ".code" : + [ + { + "begin" : 0, + "end" : 135, + "name" : "PUSH", + "value" : "80" + }, + { + "begin" : 0, + "end" : 135, + "name" : "PUSH", + "value" : "40" + }, + { + "begin" : 0, + "end" : 135, + "name" : "MSTORE" + }, + { + "begin" : 0, + "end" : 135, + "name" : "CALLVALUE" + }, + { + "begin" : 8, + "end" : 17, + "name" : "DUP1" + }, + { + "begin" : 5, + "end" : 7, + "name" : "ISZERO" + }, + { + "begin" : 5, + "end" : 7, + "name" : "PUSH [tag]", + "value" : "1" + }, + { + "begin" : 5, + "end" : 7, + "name" : "JUMPI" + }, + { + "begin" : 30, + "end" : 31, + "name" : "PUSH", + "value" : "0" + }, + { + "begin" : 27, + "end" : 28, + "name" : "DUP1" + }, + { + "begin" : 20, + "end" : 32, + "name" : "REVERT" + }, + { + "begin" : 5, + "end" : 7, + "name" : "tag", + "value" : "1" + }, + { + "begin" : 5, + "end" : 7, + "name" : "JUMPDEST" + }, + { + "begin" : 0, + "end" : 135, + "name" : "POP" + }, + { + "begin" : 0, + "end" : 135, + "name" : "PUSH #[$]", + "value" : "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin" : 0, + "end" : 135, + "name" : "DUP1" + }, + { + "begin" : 0, + "end" : 135, + "name" : "PUSH [$]", + "value" : "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin" : 0, + "end" : 135, + "name" : "PUSH", + "value" : "0" + }, + { + "begin" : 0, + "end" : 135, + "name" : "CODECOPY" + }, + { + "begin" : 0, + "end" : 135, + "name" : "PUSH", + "value" : "0" + }, + { + "begin" : 0, + "end" : 135, + "name" : "RETURN" + } + ], + ".data" : + { + "0" : + { + ".auxdata" : "a165627a7a72305820d28aa368c3d228b3e3e38715067dcb2be2d066ecc02e7135b3bdd76e7603692e0029", + ".code" : + [ + { + "begin" : 0, + "end" : 135, + "name" : "PUSH", + "value" : "80" + }, + { + "begin" : 0, + "end" : 135, + "name" : "PUSH", + "value" : "40" + }, + { + "begin" : 0, + "end" : 135, + "name" : "MSTORE" + }, + { + "begin" : 0, + "end" : 135, + "name" : "CALLVALUE" + }, + { + "begin" : 8, + "end" : 17, + "name" : "DUP1" + }, + { + "begin" : 5, + "end" : 7, + "name" : "ISZERO" + }, + { + "begin" : 5, + "end" : 7, + "name" : "PUSH [tag]", + "value" : "1" + }, + { + "begin" : 5, + "end" : 7, + "name" : "JUMPI" + }, + { + "begin" : 30, + "end" : 31, + "name" : "PUSH", + "value" : "0" + }, + { + "begin" : 27, + "end" : 28, + "name" : "DUP1" + }, + { + "begin" : 20, + "end" : 32, + "name" : "REVERT" + }, + { + "begin" : 5, + "end" : 7, + "name" : "tag", + "value" : "1" + }, + { + "begin" : 5, + "end" : 7, + "name" : "JUMPDEST" + }, + { + "begin" : 0, + "end" : 135, + "name" : "POP" + }, + { + "begin" : 0, + "end" : 135, + "name" : "PUSH", + "value" : "4" + }, + { + "begin" : 0, + "end" : 135, + "name" : "CALLDATASIZE" + }, + { + "begin" : 0, + "end" : 135, + "name" : "LT" + }, + { + "begin" : 0, + "end" : 135, + "name" : "PUSH [tag]", + "value" : "2" + }, + { + "begin" : 0, + "end" : 135, + "name" : "JUMPI" + }, + { + "begin" : 0, + "end" : 135, + "name" : "PUSH", + "value" : "0" + }, + { + "begin" : 0, + "end" : 135, + "name" : "CALLDATALOAD" + }, + { + "begin" : 0, + "end" : 135, + "name" : "PUSH", + "value" : "100000000000000000000000000000000000000000000000000000000" + }, + { + "begin" : 0, + "end" : 135, + "name" : "SWAP1" + }, + { + "begin" : 0, + "end" : 135, + "name" : "DIV" + }, + { + "begin" : 0, + "end" : 135, + "name" : "DUP1" + }, + { + "begin" : 0, + "end" : 135, + "name" : "PUSH", + "value" : "26121FF0" + }, + { + "begin" : 0, + "end" : 135, + "name" : "EQ" + }, + { + "begin" : 0, + "end" : 135, + "name" : "PUSH [tag]", + "value" : "3" + }, + { + "begin" : 0, + "end" : 135, + "name" : "JUMPI" + }, + { + "begin" : 0, + "end" : 135, + "name" : "tag", + "value" : "2" + }, + { + "begin" : 0, + "end" : 135, + "name" : "JUMPDEST" + }, + { + "begin" : 0, + "end" : 135, + "name" : "PUSH", + "value" : "0" + }, + { + "begin" : 0, + "end" : 135, + "name" : "DUP1" + }, + { + "begin" : 0, + "end" : 135, + "name" : "REVERT" + }, + { + "begin" : 63, + "end" : 133, + "name" : "tag", + "value" : "3" + }, + { + "begin" : 63, + "end" : 133, + "name" : "JUMPDEST" + }, + { + "begin" : 63, + "end" : 133, + "name" : "PUSH [tag]", + "value" : "4" + }, + { + "begin" : 63, + "end" : 133, + "name" : "PUSH [tag]", + "value" : "5" + }, + { + "begin" : 63, + "end" : 133, + "name" : "JUMP", + "value" : "[in]" + }, + { + "begin" : 63, + "end" : 133, + "name" : "tag", + "value" : "4" + }, + { + "begin" : 63, + "end" : 133, + "name" : "JUMPDEST" + }, + { + "begin" : 63, + "end" : 133, + "name" : "PUSH", + "value" : "40" + }, + { + "begin" : 63, + "end" : 133, + "name" : "MLOAD" + }, + { + "begin" : 63, + "end" : 133, + "name" : "DUP1" + }, + { + "begin" : 63, + "end" : 133, + "name" : "DUP3" + }, + { + "begin" : 63, + "end" : 133, + "name" : "PUSH", + "value" : "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin" : 63, + "end" : 133, + "name" : "NOT" + }, + { + "begin" : 63, + "end" : 133, + "name" : "AND" + }, + { + "begin" : 63, + "end" : 133, + "name" : "PUSH", + "value" : "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin" : 63, + "end" : 133, + "name" : "NOT" + }, + { + "begin" : 63, + "end" : 133, + "name" : "AND" + }, + { + "begin" : 63, + "end" : 133, + "name" : "DUP2" + }, + { + "begin" : 63, + "end" : 133, + "name" : "MSTORE" + }, + { + "begin" : 63, + "end" : 133, + "name" : "PUSH", + "value" : "20" + }, + { + "begin" : 63, + "end" : 133, + "name" : "ADD" + }, + { + "begin" : 63, + "end" : 133, + "name" : "SWAP2" + }, + { + "begin" : 63, + "end" : 133, + "name" : "POP" + }, + { + "begin" : 63, + "end" : 133, + "name" : "POP" + }, + { + "begin" : 63, + "end" : 133, + "name" : "PUSH", + "value" : "40" + }, + { + "begin" : 63, + "end" : 133, + "name" : "MLOAD" + }, + { + "begin" : 63, + "end" : 133, + "name" : "DUP1" + }, + { + "begin" : 63, + "end" : 133, + "name" : "SWAP2" + }, + { + "begin" : 63, + "end" : 133, + "name" : "SUB" + }, + { + "begin" : 63, + "end" : 133, + "name" : "SWAP1" + }, + { + "begin" : 63, + "end" : 133, + "name" : "RETURN" + }, + { + "begin" : 63, + "end" : 133, + "name" : "tag", + "value" : "5" + }, + { + "begin" : 63, + "end" : 133, + "name" : "JUMPDEST" + }, + { + "begin" : 92, + "end" : 98, + "name" : "PUSH", + "value" : "0" + }, + { + "begin" : 113, + "end" : 128, + "name" : "PUSH", + "value" : "26121FF0" + }, + { + "begin" : 113, + "end" : 128, + "name" : "PUSH", + "value" : "100000000000000000000000000000000000000000000000000000000" + }, + { + "begin" : 113, + "end" : 128, + "name" : "MUL" + }, + { + "begin" : 106, + "end" : 128, + "name" : "SWAP1" + }, + { + "begin" : 106, + "end" : 128, + "name" : "POP" + }, + { + "begin" : 63, + "end" : 133, + "name" : "SWAP1" + }, + { + "begin" : 63, + "end" : 133, + "name" : "JUMP", + "value" : "[out]" + } + ] + } + } } diff --git a/test/fixtureAsmJson.output b/test/fixtureAsmJson.output index 116668d1..a5ea6cf8 100644 --- a/test/fixtureAsmJson.output +++ b/test/fixtureAsmJson.output @@ -1,104 +1,101 @@ .code - PUSH 60 contract C {\n function f() r... - PUSH 40 contract C {\n function f() r... - MSTORE contract C {\n function f() r... - CALLVALUE contract C {\n function f() r... - ISZERO contract C {\n function f() r... - PUSH [tag] 1 contract C {\n function f() r... - JUMPI contract C {\n function f() r... - PUSH 0 contract C {\n function f() r... - DUP1 contract C {\n function f() r... - REVERT contract C {\n function f() r... -tag 1 contract C {\n function f() r... - JUMPDEST contract C {\n function f() r... - PUSH #[$] 0000000000000000000000000000000000000000000000000000000000000000 contract C {\n function f() r... - DUP1 contract C {\n function f() r... - PUSH [$] 0000000000000000000000000000000000000000000000000000000000000000 contract C {\n function f() r... - PUSH 0 contract C {\n function f() r... - CODECOPY contract C {\n function f() r... - PUSH 0 contract C {\n function f() r... - RETURN contract C {\n function f() r... + PUSH 80 contract C {\n // Leaving an ... + PUSH 40 contract C {\n // Leaving an ... + MSTORE contract C {\n // Leaving an ... + CALLVALUE contract C {\n // Leaving an ... + DUP1 C {\n // + ISZERO ac + PUSH [tag] 1 ac + JUMPI ac + PUSH 0 m + DUP1 n + REVERT aving an emp +tag 1 ac + JUMPDEST ac + POP contract C {\n // Leaving an ... + PUSH #[$] 0000000000000000000000000000000000000000000000000000000000000000 contract C {\n // Leaving an ... + DUP1 contract C {\n // Leaving an ... + PUSH [$] 0000000000000000000000000000000000000000000000000000000000000000 contract C {\n // Leaving an ... + PUSH 0 contract C {\n // Leaving an ... + CODECOPY contract C {\n // Leaving an ... + PUSH 0 contract C {\n // Leaving an ... + RETURN contract C {\n // Leaving an ... .data 0: .code - PUSH 60 contract C {\n function f() r... - PUSH 40 contract C {\n function f() r... - MSTORE contract C {\n function f() r... - PUSH 4 contract C {\n function f() r... - CALLDATASIZE contract C {\n function f() r... - LT contract C {\n function f() r... - PUSH [tag] 1 contract C {\n function f() r... - JUMPI contract C {\n function f() r... - PUSH 0 contract C {\n function f() r... - CALLDATALOAD contract C {\n function f() r... - PUSH 100000000000000000000000000000000000000000000000000000000 contract C {\n function f() r... - SWAP1 contract C {\n function f() r... - DIV contract C {\n function f() r... - PUSH FFFFFFFF contract C {\n function f() r... - AND contract C {\n function f() r... - DUP1 contract C {\n function f() r... - PUSH 26121FF0 contract C {\n function f() r... - EQ contract C {\n function f() r... - PUSH [tag] 2 contract C {\n function f() r... - JUMPI contract C {\n function f() r... - tag 1 contract C {\n function f() r... - JUMPDEST contract C {\n function f() r... - PUSH 0 contract C {\n function f() r... - DUP1 contract C {\n function f() r... - REVERT contract C {\n function f() r... - tag 2 function f() returns (bytes4) ... - JUMPDEST function f() returns (bytes4) ... - CALLVALUE function f() returns (bytes4) ... - ISZERO function f() returns (bytes4) ... - PUSH [tag] 3 function f() returns (bytes4) ... - JUMPI function f() returns (bytes4) ... - PUSH 0 function f() returns (bytes4) ... - DUP1 function f() returns (bytes4) ... - REVERT function f() returns (bytes4) ... - tag 3 function f() returns (bytes4) ... - JUMPDEST function f() returns (bytes4) ... - PUSH [tag] 4 function f() returns (bytes4) ... - PUSH [tag] 5 function f() returns (bytes4) ... - JUMP function f() returns (bytes4) ... - tag 4 function f() returns (bytes4) ... - JUMPDEST function f() returns (bytes4) ... - PUSH 40 function f() returns (bytes4) ... - MLOAD function f() returns (bytes4) ... - DUP1 function f() returns (bytes4) ... - DUP3 function f() returns (bytes4) ... - PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF function f() returns (bytes4) ... - NOT function f() returns (bytes4) ... - AND function f() returns (bytes4) ... - PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF function f() returns (bytes4) ... - NOT function f() returns (bytes4) ... - AND function f() returns (bytes4) ... - DUP2 function f() returns (bytes4) ... - MSTORE function f() returns (bytes4) ... - PUSH 20 function f() returns (bytes4) ... - ADD function f() returns (bytes4) ... - SWAP2 function f() returns (bytes4) ... - POP function f() returns (bytes4) ... - POP function f() returns (bytes4) ... - PUSH 40 function f() returns (bytes4) ... - MLOAD function f() returns (bytes4) ... - DUP1 function f() returns (bytes4) ... - SWAP2 function f() returns (bytes4) ... - SUB function f() returns (bytes4) ... - SWAP1 function f() returns (bytes4) ... - RETURN function f() returns (bytes4) ... - tag 5 function f() returns (bytes4) ... - JUMPDEST function f() returns (bytes4) ... + PUSH 80 contract C {\n // Leaving an ... + PUSH 40 contract C {\n // Leaving an ... + MSTORE contract C {\n // Leaving an ... + CALLVALUE contract C {\n // Leaving an ... + DUP1 C {\n // + ISZERO ac + PUSH [tag] 1 ac + JUMPI ac + PUSH 0 m + DUP1 n + REVERT aving an emp + tag 1 ac + JUMPDEST ac + POP contract C {\n // Leaving an ... + PUSH 4 contract C {\n // Leaving an ... + CALLDATASIZE contract C {\n // Leaving an ... + LT contract C {\n // Leaving an ... + PUSH [tag] 2 contract C {\n // Leaving an ... + JUMPI contract C {\n // Leaving an ... + PUSH 0 contract C {\n // Leaving an ... + CALLDATALOAD contract C {\n // Leaving an ... + PUSH 100000000000000000000000000000000000000000000000000000000 contract C {\n // Leaving an ... + SWAP1 contract C {\n // Leaving an ... + DIV contract C {\n // Leaving an ... + DUP1 contract C {\n // Leaving an ... + PUSH 26121FF0 contract C {\n // Leaving an ... + EQ contract C {\n // Leaving an ... + PUSH [tag] 3 contract C {\n // Leaving an ... + JUMPI contract C {\n // Leaving an ... + tag 2 contract C {\n // Leaving an ... + JUMPDEST contract C {\n // Leaving an ... + PUSH 0 contract C {\n // Leaving an ... + DUP1 contract C {\n // Leaving an ... + REVERT contract C {\n // Leaving an ... + tag 3 function f() public returns (b... + JUMPDEST function f() public returns (b... + PUSH [tag] 4 function f() public returns (b... + PUSH [tag] 5 function f() public returns (b... + JUMP [in] function f() public returns (b... + tag 4 function f() public returns (b... + JUMPDEST function f() public returns (b... + PUSH 40 function f() public returns (b... + MLOAD function f() public returns (b... + DUP1 function f() public returns (b... + DUP3 function f() public returns (b... + PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF function f() public returns (b... + NOT function f() public returns (b... + AND function f() public returns (b... + PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF function f() public returns (b... + NOT function f() public returns (b... + AND function f() public returns (b... + DUP2 function f() public returns (b... + MSTORE function f() public returns (b... + PUSH 20 function f() public returns (b... + ADD function f() public returns (b... + SWAP2 function f() public returns (b... + POP function f() public returns (b... + POP function f() public returns (b... + PUSH 40 function f() public returns (b... + MLOAD function f() public returns (b... + DUP1 function f() public returns (b... + SWAP2 function f() public returns (b... + SUB function f() public returns (b... + SWAP1 function f() public returns (b... + RETURN function f() public returns (b... + tag 5 function f() public returns (b... + JUMPDEST function f() public returns (b... PUSH 0 bytes4 - ADDRESS this - PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF this.f - AND this.f - PUSH 26121FF0 this.f - SWAP1 this.f.selector - POP this.f.selector + PUSH 26121FF0 this.f.selector PUSH 100000000000000000000000000000000000000000000000000000000 this.f.selector MUL this.f.selector SWAP1 return this.f.selector POP return this.f.selector - SWAP1 function f() returns (bytes4) ... - JUMP [out] function f() returns (bytes4) ... + SWAP1 function f() public returns (b... + JUMP [out] function f() public returns (b... .data diff --git a/test/fixtureAsmJson.sol b/test/fixtureAsmJson.sol index 7dae89bd..22fb6189 100644 --- a/test/fixtureAsmJson.sol +++ b/test/fixtureAsmJson.sol @@ -1,5 +1,8 @@ contract C { - function f() returns (bytes4) { + // Leaving an empty line here intentionally + + + function f() public returns (bytes4) { return this.f.selector; } }