From fd2723ff7d3605ff2f74f5d0db4ef1e2be2c67c4 Mon Sep 17 00:00:00 2001 From: Paul Kaplan Date: Mon, 7 Jan 2019 13:02:30 -0500 Subject: [PATCH] Do not deep clone before serializing. This was ok when we did not attach assets, but it is not cool now. With large assets, this made saving extremely slow --- src/serialization/sb3.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/serialization/sb3.js b/src/serialization/sb3.js index 2eace3c3..bcea2c70 100644 --- a/src/serialization/sb3.js +++ b/src/serialization/sb3.js @@ -14,7 +14,6 @@ const StageLayering = require('../engine/stage-layering'); const log = require('../util/log'); const uid = require('../util/uid'); const MathUtil = require('../util/math-util'); -const StringUtil = require('../util/string-util'); const {loadCostume} = require('../import/load-costume.js'); const {loadSound} = require('../import/load-sound.js'); @@ -521,7 +520,7 @@ const serialize = function (runtime, targetId) { const layerOrdering = getSimplifiedLayerOrdering(originalTargetsToSerialize); - const flattenedOriginalTargets = JSON.parse(StringUtil.stringify(originalTargetsToSerialize)); + const flattenedOriginalTargets = originalTargetsToSerialize.map(t => t.toJSON()); // If the renderer is attached, and we're serializing a whole project (not a sprite) // add a temporary layerOrder property to each target.