From 1d314182a7e239d291769e8a398433faec68351d Mon Sep 17 00:00:00 2001 From: Muffin Date: Fri, 28 Jul 2023 23:02:07 -0500 Subject: [PATCH] Remove unnecessary helper function --- src/serialization/sb3.js | 36 +++++++++++++----------------------- 1 file changed, 13 insertions(+), 23 deletions(-) diff --git a/src/serialization/sb3.js b/src/serialization/sb3.js index 1e659cbd..b9eda1dd 100644 --- a/src/serialization/sb3.js +++ b/src/serialization/sb3.js @@ -665,27 +665,6 @@ const serializeMonitors = function (monitors, runtime, extensions) { .toArray(); }; -/** - * @param {any} obj Project or target JSON. Modified in place. - * @param {Set} extensionIds - * @param {Runtime} runtime - * @param {boolean} isSprite - * @returns {void} nothing, operates in-place - */ -const serializeExtensionMetadata = (obj, extensionIds, runtime, isSprite) => { - const serializedExtensions = Array.from(extensionIds); - if (serializedExtensions.length || !isSprite) { - obj.extensions = serializedExtensions; - } - - // Save list of URLs to load the current extensions - // Extension manager only exists when runtime is wrapped by VirtualMachine - const extensionURLs = getExtensionURLsToSave(extensionIds, runtime); - if (extensionURLs) { - obj.extensionURLs = extensionURLs; - } -}; - /** * Serializes the specified VM runtime. * @param {!Runtime} runtime VM runtime instance to be serialized. @@ -718,7 +697,14 @@ const serialize = function (runtime, targetId, {allowOptimization = true} = {}) if (targetId) { const target = serializedTargets[0]; - serializeExtensionMetadata(target, extensions, runtime, true); + if (extensions.size) { + // Vanilla Scratch doesn't include extensions in sprites, so don't add this if it's not needed + target.extensions = Array.from(extensions); + } + const extensionURLs = getExtensionURLsToSave(extensions, runtime); + if (extensionURLs) { + target.extensionURLs = extensionURLs; + } return serializedTargets[0]; } @@ -726,7 +712,11 @@ const serialize = function (runtime, targetId, {allowOptimization = true} = {}) obj.monitors = serializeMonitors(runtime.getMonitorState(), runtime, extensions); - serializeExtensionMetadata(obj, extensions, runtime, false); + obj.extensions = Array.from(extensions); + const extensionURLs = getExtensionURLsToSave(extensions, runtime); + if (extensionURLs) { + obj.extensionURLs = extensionURLs; + } // Assemble metadata const meta = Object.create(null);