From e04021f02e707c52e5379596fbbd24f861e3b526 Mon Sep 17 00:00:00 2001 From: Jinxuan Zhu Date: Sun, 10 Jun 2018 20:16:01 -0400 Subject: [PATCH] Perhaps Faster stack (#1847) * Faster stack * Faster stack * Use memoize; but use reduceRight still * Use memoize; but use reduceRight still --- packages/slate/src/models/stack.js | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/packages/slate/src/models/stack.js b/packages/slate/src/models/stack.js index f04cb8922..a0412641f 100644 --- a/packages/slate/src/models/stack.js +++ b/packages/slate/src/models/stack.js @@ -135,17 +135,13 @@ class Stack extends Record(DEFAULTS) { render(property, props, ...args) { const plugins = this.getPluginsWith(property) - .slice() - .reverse() - let { children = null } = props - - for (const plugin of plugins) { + return plugins.reduceRight((children, plugin) => { + if (!plugin[property]) return children const ret = plugin[property](props, ...args) - if (ret == null) continue - props.children = children = ret - } - - return children + if (ret == null) return children + props.children = ret + return ret + }, props.children === undefined ? null : props.children) } }