@@ -152,7 +152,7 @@ function _resolveArray(prop, value, target, isIndexable) {
152152
153153function createSubResolver ( parentScopes , prop , value ) {
154154 const set = new Set ( [ value ] ) ;
155- const keys = _resolveSubKeys ( parentScopes , prop , value ) ;
155+ const { keys, includeParents } = _resolveSubKeys ( parentScopes , prop , value ) ;
156156 for ( const key of keys ) {
157157 for ( const item of parentScopes ) {
158158 const scope = resolveObjectKey ( item , key ) ;
@@ -166,7 +166,9 @@ function createSubResolver(parentScopes, prop, value) {
166166 }
167167 }
168168 }
169- parentScopes . forEach ( set . add , set ) ;
169+ if ( includeParents ) {
170+ parentScopes . forEach ( set . add , set ) ;
171+ }
170172 return _createResolver ( [ ...set ] ) ;
171173}
172174
@@ -177,7 +179,7 @@ function _resolveSubKeys(parentScopes, prop, value) {
177179 const resolved = isFunction ( fallback ) ? fallback ( prop , value ) : fallback ;
178180 keys . push ( ...( isArray ( resolved ) ? resolved : [ resolved ] ) ) ;
179181 }
180- return keys . filter ( v => v ) ;
182+ return { keys : keys . filter ( v => v ) , includeParents : fallback !== prop } ;
181183}
182184
183185function _resolveWithPrefixes ( prop , prefixes , scopes ) {
@@ -215,7 +217,7 @@ function getKeysFromAllScopes(target) {
215217function resolveKeysFromAllScopes ( scopes ) {
216218 const set = new Set ( ) ;
217219 for ( const scope of scopes ) {
218- for ( const key of Object . keys ( scope ) ) {
220+ for ( const key of Object . keys ( scope ) . filter ( k => ! k . startsWith ( '_' ) ) ) {
219221 set . add ( key ) ;
220222 }
221223 }
0 commit comments