@@ -77,7 +77,7 @@ function compare_expressions(a, b) {
7777export const DYNAMIC = Symbol ( 'DYNAMIC' ) ;
7878
7979/**
80- * @param {Expression | Node } node
80+ * @param {Node } node
8181 * @param {ComponentClientTransformState } state
8282 * @returns {any }
8383 */
@@ -86,9 +86,9 @@ export function evaluate_static_expression(node, state) {
8686 /**
8787 * @param {BinaryExpression | LogicalExpression } node
8888 */
89- function handle_left_right_node ( node ) {
90- let left = evaluate_static_expression ( node ?. left , state ) ;
91- let right = evaluate_static_expression ( node ?. right , state ) ;
89+ function handle_left_right ( node ) {
90+ const left = evaluate_static_expression ( node ?. left , state ) ;
91+ const right = evaluate_static_expression ( node ?. right , state ) ;
9292 if ( left === DYNAMIC || right === DYNAMIC ) {
9393 return DYNAMIC ;
9494 }
@@ -146,15 +146,15 @@ export function evaluate_static_expression(node, state) {
146146 /**
147147 * @param {UnaryExpression } node
148148 */
149- function handle_unary_node ( node ) {
150- let argument = evaluate_static_expression ( node ?. argument , state ) ;
149+ function handle_unary ( node ) {
150+ const argument = evaluate_static_expression ( node ?. argument , state ) ;
151151 if ( argument === DYNAMIC ) return DYNAMIC ;
152152 /**
153153 * @param {Expression } argument
154154 */
155155 function handle_void ( argument ) {
156156 //@ts -ignore
157- let evaluated = evaluate_static_expression ( argument ) ;
157+ const evaluated = evaluate_static_expression ( argument ) ;
158158 if ( evaluated !== DYNAMIC ) {
159159 return undefined ;
160160 }
@@ -182,7 +182,7 @@ export function evaluate_static_expression(node, state) {
182182 * @param {SequenceExpression } node
183183 */
184184 function handle_sequence ( node ) {
185- let is_static = node . expressions . reduce (
185+ const is_static = node . expressions . reduce (
186186 ( a , b ) => a && evaluate_static_expression ( b , state ) !== DYNAMIC ,
187187 true
188188 ) ;
@@ -196,8 +196,8 @@ export function evaluate_static_expression(node, state) {
196196 * @param {string } name
197197 */
198198 function handle_ident ( name ) {
199- let scope = state . scope . get ( name ) ;
200- if ( scope ?. kind === 'normal' ) {
199+ const scope = state . scope . get ( name ) ;
200+ if ( scope ?. kind === 'normal' && scope ?. declaration_kind !== 'import' ) {
201201 if ( scope . initial && ! scope . mutated && ! scope . reassigned && ! scope . updated ) {
202202 //@ts -ignore
203203 let evaluated = evaluate_static_expression ( scope . initial , state ) ;
@@ -211,13 +211,13 @@ export function evaluate_static_expression(node, state) {
211211 */
212212 function handle_template ( node ) {
213213 const expressions = node . expressions ;
214+ const quasis = node . quasis ;
214215 const is_static = expressions . reduce (
215216 ( a , b ) => a && evaluate_static_expression ( b , state ) !== DYNAMIC ,
216217 true
217218 ) ;
218219 if ( is_static ) {
219220 let res = '' ;
220- let quasis = node . quasis ;
221221 let last_was_quasi = false ;
222222 let expr_index = 0 ;
223223 let quasi_index = 0 ;
@@ -238,7 +238,7 @@ export function evaluate_static_expression(node, state) {
238238 * @param {ConditionalExpression } node
239239 */
240240 function handle_ternary ( node ) {
241- let test = evaluate_static_expression ( node . test , state ) ;
241+ const test = evaluate_static_expression ( node . test , state ) ;
242242 if ( test !== DYNAMIC ) {
243243 if ( test ) {
244244 return evaluate_static_expression ( node . consequent , state ) ;
@@ -252,11 +252,11 @@ export function evaluate_static_expression(node, state) {
252252 case 'Literal' :
253253 return node . value ;
254254 case 'BinaryExpression' :
255- return handle_left_right_node ( node ) ;
255+ return handle_left_right ( node ) ;
256256 case 'LogicalExpression' :
257- return handle_left_right_node ( node ) ;
257+ return handle_left_right ( node ) ;
258258 case 'UnaryExpression' :
259- return handle_unary_node ( node ) ;
259+ return handle_unary ( node ) ;
260260 case 'Identifier' :
261261 return handle_ident ( node . name ) ;
262262 case 'SequenceExpression' :
0 commit comments