From 95e1ac613b623d8e3742378711fee2a1ee4d1d30 Mon Sep 17 00:00:00 2001 From: yuanchuan Date: Fri, 24 Feb 2017 22:40:53 +0800 Subject: [PATCH] fix skip problem --- css-doodle.js | 8 +++++--- src/generator.js | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/css-doodle.js b/css-doodle.js index e177a9d..4014a8b 100644 --- a/css-doodle.js +++ b/css-doodle.js @@ -195,6 +195,7 @@ function compose_rule(token, coords) { function compose_tokens(tokens, set, coords) { tokens.forEach((token, i) => { + if (token.skip) return false; switch (token.type) { case 'rule': set.add( @@ -203,9 +204,9 @@ function compose_tokens(tokens, set, coords) { ); break; - case 'psudo': + case 'psudo': { let is_host_selector = - token.selector.startsWith(':host'); + !!token.selector.startsWith(':host'); let psudo_rules = token.styles.map(s => compose_rule(s, coords)); @@ -217,9 +218,10 @@ function compose_tokens(tokens, set, coords) { set.add(selector, psudo_rules); if (is_host_selector) { - tokens.splice(i, 1); + token.skip = true; } break; + } case 'cond': let fn = cond[token.name.substr(1)]; diff --git a/src/generator.js b/src/generator.js index fafadc2..bbefaa1 100644 --- a/src/generator.js +++ b/src/generator.js @@ -64,6 +64,7 @@ function compose_rule(token, coords) { function compose_tokens(tokens, set, coords) { tokens.forEach((token, i) => { + if (token.skip) return false; switch (token.type) { case 'rule': set.add( @@ -72,9 +73,9 @@ function compose_tokens(tokens, set, coords) { ); break; - case 'psudo': + case 'psudo': { let is_host_selector = - token.selector.startsWith(':host'); + !!token.selector.startsWith(':host'); let psudo_rules = token.styles.map(s => compose_rule(s, coords)); @@ -86,9 +87,10 @@ function compose_tokens(tokens, set, coords) { set.add(selector, psudo_rules); if (is_host_selector) { - tokens.splice(i, 1); + token.skip = true; } break; + } case 'cond': let fn = cond[token.name.substr(1)];