diff --git a/src/print/handlers.ts b/src/print/handlers.ts index 03b9783..9101807 100644 --- a/src/print/handlers.ts +++ b/src/print/handlers.ts @@ -1026,12 +1026,15 @@ const handlers: Record = { return value; } - const key = handle(node.key, state); - - if (key.length === 1 && value.length === 1 && node.key.type === 'Identifier' && key[0].content === value[0].content) { + if (node.value.type === 'Identifier' && ( + (node.key.type === 'Identifier' && node.key.name === node.value.name) || + (node.key.type === 'Literal' && node.key.value === node.value.name) + )) { return value; } + const key = handle(node.key, state); + if (node.method || (node.value.type === 'FunctionExpression' && !node.value.id)) { state = { ...state, diff --git a/test/samples/object-expressions/expected.js b/test/samples/object-expressions/expected.js index c35ad8f..b79bb90 100644 --- a/test/samples/object-expressions/expected.js +++ b/test/samples/object-expressions/expected.js @@ -1,5 +1,7 @@ obj = { foo, bar, baz: qux }; obj = { "1": "1" }; +obj = { true: true }; +obj = { foo }; obj = { a: b }; obj = { diff --git a/test/samples/object-expressions/expected.js.map b/test/samples/object-expressions/expected.js.map index ab035cd..fb05076 100644 --- a/test/samples/object-expressions/expected.js.map +++ b/test/samples/object-expressions/expected.js.map @@ -7,5 +7,5 @@ "sourcesContent": [ null ], - "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;" + "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;" } \ No newline at end of file diff --git a/test/samples/object-expressions/input.js b/test/samples/object-expressions/input.js index 445fe86..ef90132 100644 --- a/test/samples/object-expressions/input.js +++ b/test/samples/object-expressions/input.js @@ -10,6 +10,10 @@ module.exports = ({ b, p }) => { obj = { "1": "1" }; + obj = { true: true }; + + obj = { "foo": foo }; + obj = { ${x} } obj = {