diff --git a/repl/src/shapeshifter.js b/repl/src/shapeshifter.js index 6fad80ff..1c8f0e55 100644 --- a/repl/src/shapeshifter.js +++ b/repl/src/shapeshifter.js @@ -91,7 +91,9 @@ export default (code) => { const isMarkable = isPatternArg(parents) || hasModifierCall(parent); // add to location to pure(x) calls if (node.type === 'CallExpression' && node.callee.name === 'pure') { - return reifyWithLocation(node.arguments[0].name, node.arguments[0], ast.locations, artificialNodes); + const literal = node.arguments[0]; + const value = literal[{ LiteralNumericExpression: 'value', LiteralStringExpression: 'name' }[literal.type]]; + return reifyWithLocation(value + '', node.arguments[0], ast.locations, artificialNodes); } // replace pseudo note variables if (node.type === 'IdentifierExpression') { @@ -339,4 +341,3 @@ function getLocationObject(node, locations) { ], }; } - diff --git a/strudel.mjs b/strudel.mjs index 6cc75ba5..5fc4adf2 100644 --- a/strudel.mjs +++ b/strudel.mjs @@ -212,7 +212,7 @@ class Hap { } show() { - return "(" + (this.whole == undefined ? "~" : this.whole.show()) + ", " + this.part.show() + ", " + this.value + ")" + return "(" + (this.whole == undefined ? "~" : this.whole.show()) + ", " + this.part.show() + ", " + JSON.stringify(this.value?.value ?? this.value) + ")" } }