diff --git a/src/virtual-machine.js b/src/virtual-machine.js index 79c16d2fc..adbeba640 100644 --- a/src/virtual-machine.js +++ b/src/virtual-machine.js @@ -329,9 +329,8 @@ class VirtualMachine extends EventEmitter { } if (newName && RESERVED_NAMES.indexOf(newName) === -1) { const names = this.runtime.targets - .filter(runtimeTarget => runtimeTarget.isSprite()) + .filter(runtimeTarget => runtimeTarget.isSprite() && runtimeTarget.id !== target.id) .map(runtimeTarget => runtimeTarget.sprite.name); - sprite.name = StringUtil.unusedName(newName, names); } this.emitTargetsUpdate(); diff --git a/test/unit/virtual-machine.js b/test/unit/virtual-machine.js index 73cefb8a2..37a62ff69 100644 --- a/test/unit/virtual-machine.js +++ b/test/unit/virtual-machine.js @@ -94,3 +94,18 @@ test('renameSprite increments from existing sprite names', t => { t.equal(vm.runtime.targets[0].sprite.name, 'that name2'); t.end(); }); + +test('renameSprite does not increment when renaming to the same name', t => { + const vm = new VirtualMachine(); + vm.emitTargetsUpdate = () => {}; + vm.runtime.targets = [{ + id: 'id1', + isSprite: () => true, + sprite: { + name: 'this name' + } + }]; + vm.renameSprite('id1', 'this name'); + t.equal(vm.runtime.targets[0].sprite.name, 'this name'); + t.end(); +});