diff --git a/packages/svelte/src/compiler/utils/ast.js b/packages/svelte/src/compiler/utils/ast.js index cc69393f69..9435332fd3 100644 --- a/packages/svelte/src/compiler/utils/ast.js +++ b/packages/svelte/src/compiler/utils/ast.js @@ -67,11 +67,10 @@ export function extract_identifiers(param, nodes = [], include_member_expression break; case 'MemberExpression': - if ( - include_member_expressions && - (param.object.type === 'Identifier' || param.object.type === 'MemberExpression') - ) { - extract_identifiers(param.object, nodes, include_member_expressions); + if (include_member_expressions) { + // Only the `a` from `[a.b[c].d]` is of interest to us here + const id = object(param); + if (id) nodes.push(id); } break;