Merge pull request #181 from ethereum/displaylocalvaronlyscope

Display local var only if in scope
pull/7/head
chriseth 8 years ago committed by GitHub
commit fe9a6076a9
  1. 4
      src/solidity/localDecoder.js
  2. 3
      src/solidity/types/DynamicByteArray.js
  3. 18
      test/solidity/localsTests/misc.js
  4. 2
      test/solidity/localsTests/misc2.js
  5. 2
      test/solidity/localsTests/structArray.js

@ -10,10 +10,8 @@ function solidityLocals (vmtraceIndex, internalTreeCall, stack, memory) {
memory = formatMemory(memory)
for (var local in scope.locals) {
let variable = scope.locals[local]
if (variable.type.decodeFromStack) {
if (variable.stackDepth < stack.length) {
locals[variable.name] = variable.type.decodeFromStack(variable.stackDepth, stack, memory)
} else {
locals[variable.name] = ''
}
}
return locals

@ -24,7 +24,8 @@ class DynamicByteArray extends RefType {
}
return {
value: '0x' + ret.replace(/(00)+$/, ''),
length: '0x' + length.toString(16)
length: '0x' + length.toString(16),
type: this.typeName
}
} else {
var size = parseInt(value.substr(value.length - 2, 2), 16) / 2

@ -56,23 +56,7 @@ module.exports = function (st, vm, privateKey, contractBytecode, compilationResu
helper.decodeLocals(st, 7, traceManager, callTree, function (locals) {
try {
st.equals(locals['boolFalse'].value, false)
st.equals(locals['boolTrue'].value, false)
st.equals(locals['testEnum'].value, 'one')
st.equals(locals['sender'].value, '0x0000000000000000000000000000000000000000')
st.equals(locals['_bytes1'].value, '0x')
st.equals(locals['__bytes1'].value, '0x')
st.equals(locals['__bytes2'].value, '0x')
st.equals(locals['__bytes4'].value, '0x')
st.equals(locals['__bytes6'].value, '0x')
st.equals(locals['__bytes7'].value, '0x')
st.equals(locals['__bytes8'].value, '0x')
st.equals(locals['__bytes9'].value, '0x')
st.equals(locals['__bytes13'].value, '0x')
st.equals(locals['__bytes16'].value, '0x')
st.equals(locals['__bytes24'].value, '0x')
st.equals(locals['__bytes32'].value, '0x')
st.equals(Object.keys(locals).length, 16)
st.equals(Object.keys(locals).length, 0)
} catch (e) {
st.fail(e.message)
}

@ -42,7 +42,7 @@ module.exports = function (st, vm, privateKey, contractBytecode, compilationResu
helper.decodeLocals(st, 7, traceManager, callTree, function (locals) {
try {
st.equals(Object.keys(locals).length, 2)
st.equals(Object.keys(locals).length, 0)
} catch (e) {
st.fail(e.message)
}

@ -100,7 +100,7 @@ module.exports = function (st, vm, privateKey, contractBytecode, compilationResu
helper.decodeLocals(st, 7, traceManager, callTree, function (locals) {
try {
st.equals(Object.keys(locals).length, 8)
st.equals(Object.keys(locals).length, 0)
} catch (e) {
st.fail(e.message)
}

Loading…
Cancel
Save