From 96fa7315d563c65a6c930ef9f1343fbbe939aa82 Mon Sep 17 00:00:00 2001 From: Christopher Willis-Ford Date: Fri, 13 Oct 2017 01:46:35 -0700 Subject: [PATCH] Don't overwrite hat block's fields Due to a typo (I believe) we were overwriting a horizontal hat block's fields list when collecting hat block inputs. Now we collect inputs into a temporary object in this case. --- src/engine/runtime.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/engine/runtime.js b/src/engine/runtime.js index dc76452b7..280f11d83 100644 --- a/src/engine/runtime.js +++ b/src/engine/runtime.js @@ -409,6 +409,9 @@ class Runtime extends EventEmitter { const opcode = convertedBlock.json.type; categoryInfo.blocks.push(convertedBlock); this._primitives[opcode] = convertedBlock.info.func; + if (blockInfo.blockType === BlockType.HAT) { + this._hats[opcode] = {edgeActivated: true}; /** @TODO let extension specify this */ + } } this.emit(Runtime.EXTENSION_ADDED, categoryInfo.blocks); @@ -802,13 +805,14 @@ class Runtime extends EventEmitter { // If no fields are present, check inputs (horizontal blocks) if (Object.keys(hatFields).length === 0) { + hatFields = {}; // don't overwrite the block's actual fields list const hatInputs = blocks.getInputs(block); for (const input in hatInputs) { if (!hatInputs.hasOwnProperty(input)) continue; const id = hatInputs[input].block; const inpBlock = blocks.getBlock(id); const fields = blocks.getFields(inpBlock); - hatFields = Object.assign(fields, hatFields); + Object.assign(hatFields, fields); } }