diff --git a/src/serialization/serialize-assets.js b/src/serialization/serialize-assets.js index 35c82adbd..c1d063949 100644 --- a/src/serialization/serialize-assets.js +++ b/src/serialization/serialize-assets.js @@ -50,21 +50,7 @@ const serializeCostumes = function (runtime, optTargetId) { return serializeAssets(runtime, 'costumes', optTargetId); }; -/* - * Return all costumes and sounds in the provided runtime - * @param {Runtime} runtime - * @returns {Array} An array of costumes and sounds - */ -const collectAssets = function (runtime) { - return runtime.targets.reduce((acc, target) => ( - acc - .concat(target.sprite.sounds.map(sound => sound.asset)) - .concat(target.sprite.costumes.map(costume => costume.asset)) - ), []); -}; - module.exports = { - collectAssets, serializeSounds, serializeCostumes }; diff --git a/src/virtual-machine.js b/src/virtual-machine.js index 798078f2a..5e5514d46 100644 --- a/src/virtual-machine.js +++ b/src/virtual-machine.js @@ -18,7 +18,7 @@ const Variable = require('./engine/variable'); const {loadCostume} = require('./import/load-costume.js'); const {loadSound} = require('./import/load-sound.js'); -const {collectAssets, serializeSounds, serializeCostumes} = require('./serialization/serialize-assets'); +const {serializeSounds, serializeCostumes} = require('./serialization/serialize-assets'); require('canvas-toBlob'); const RESERVED_NAMES = ['_mouse_', '_stage_', '_edge_', '_myself_', '_random_']; @@ -340,7 +340,11 @@ class VirtualMachine extends EventEmitter { * @type {Array} Array of all costumes and sounds currently in the runtime */ get assets () { - return collectAssets(this.runtime); + return this.runtime.targets.reduce((acc, target) => ( + acc + .concat(target.sprite.sounds.map(sound => sound.asset)) + .concat(target.sprite.costumes.map(costume => costume.asset)) + ), []); } _addFileDescsToZip (fileDescs, zip) { diff --git a/test/unit/vm_collectAssets.js b/test/unit/vm_collectAssets.js index 2fcab59be..8c356a8fd 100644 --- a/test/unit/vm_collectAssets.js +++ b/test/unit/vm_collectAssets.js @@ -1,16 +1,9 @@ const test = require('tap').test; -const {collectAssets} = require('../../src/serialization/serialize-assets'); - const RenderedTarget = require('../../src/sprites/rendered-target'); const Sprite = require('../../src/sprites/sprite'); const VirtualMachine = require('../../src/virtual-machine'); -test('spec', t => { - t.type(collectAssets, 'function'); - t.end(); -}); - test('collectAssets', t => { const vm = new VirtualMachine(); const sprite = new Sprite(null, vm.runtime); @@ -23,20 +16,9 @@ test('collectAssets', t => { ] = [{assetId: 1}, {assetId: 2}, {assetId: 3}]; sprite.sounds = [{id: 1, asset: soundAsset1}, {id: 2, asset: soundAsset2}]; sprite.costumes = [{id: 1, asset: costumeAsset1}]; - const assets = collectAssets(vm.runtime); - t.deepEqual(assets, [soundAsset1, soundAsset2, costumeAsset1]); - t.end(); -}); - -test('getter', t => { - const vm = new VirtualMachine(); - const sprite = new Sprite(null, vm.runtime); - const target = new RenderedTarget(sprite, vm.runtime); - vm.runtime.targets = [target]; - sprite.sounds = [{id: 1, asset: {}}, {id: 2, asset: {}}]; - sprite.costumes = [{id: 1, asset: {}}]; const assets = vm.assets; t.type(assets.length, 'number'); t.equal(assets.length, 3); + t.deepEqual(assets, [soundAsset1, soundAsset2, costumeAsset1]); t.end(); });