From 74aaf848edfac30a5421edc8e82b661df568111c Mon Sep 17 00:00:00 2001 From: Logan Smyth Date: Fri, 1 May 2015 17:47:58 -0700 Subject: [PATCH] Explicitly sort instead of relying on implementation-defined numeric key ordering - fixes #1405. --- .../transformers/internal/block-hoist.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/babel/transformation/transformers/internal/block-hoist.js b/src/babel/transformation/transformers/internal/block-hoist.js index 4fe3278341..b732e2b2f3 100644 --- a/src/babel/transformation/transformers/internal/block-hoist.js +++ b/src/babel/transformation/transformers/internal/block-hoist.js @@ -1,6 +1,4 @@ -import groupBy from "lodash/collection/groupBy"; -import flatten from "lodash/array/flatten"; -import values from "lodash/object/values"; +import sortBy from "lodash/collection/sortBy"; // Priority: // @@ -18,14 +16,14 @@ export var BlockStatement = { } if (!hasChange) return; - var nodePriorities = groupBy(node.body, function (bodyNode) { + node.body = sortBy(node.body, function(bodyNode){ var priority = bodyNode && bodyNode._blockHoist; if (priority == null) priority = 1; if (priority === true) priority = 2; - return priority; - }); - node.body = flatten(values(nodePriorities).reverse()); + // Higher priorities should move toward the top. + return -1 * priority; + }); } };