@@ -148,47 +148,27 @@ public static boolean isWrapperNode(JavaScriptNode node) {
148148 }
149149
150150 /**
151- * Convenience method for {@link JSNodeUtil#getWrappedNodeRecursive(JavaScriptNode, int)} with
152- * maxDepth == 1.
151+ * Helper to retrieve the node wrapped by a given JavaScript node.
153152 *
154- */
155- public static JavaScriptNode getWrappedNode (JavaScriptNode node ) {
156- return getWrappedNodeRecursive (node , 1 );
157- }
158-
159- /**
160- * Helper to retrieve the node wrapped by an instrumentation wrapper and/or JavaScript wrapper
161- * node(s).
162- *
163- * @param node a JavaScript node that is possibly a wrapper or an instrumentation wrapper
164- * wrapping a JavaScript node.
153+ * @param node a JavaScript node that is possibly a wrapper
165154 * @return the (delegate) node that is wrapped by the parameter <code>node</code>, or
166- * <code>node</code> itself if it is not a wrapper that can be stripped. This method
167- * proceeds recursively until a node that is not a wrapper is found or maxDepth is
168- * reached.
155+ * <code>node</code> itself if it is not a wrapper that can be stripped
169156 */
170- public static JavaScriptNode getWrappedNodeRecursive (JavaScriptNode node , int maxDepth ) {
171- assert maxDepth > 0 : "maxDepth for getWrappedNodeRecursive must be at least 1!" ;
172- JavaScriptNode wrapped ;
157+ public static JavaScriptNode getWrappedNode (JavaScriptNode node ) {
173158 JavaScriptNode unwrapped = node ;
174- int depth = 0 ;
175- do {
176- wrapped = unwrapped ;
177- if (wrapped instanceof WrapperNode ) {
178- WrapperNode wrapper = (WrapperNode ) wrapped ;
179- // JavaScriptNode wrappers have a JavaScriptNode as delegate
180- unwrapped = (JavaScriptNode ) wrapper .getDelegateNode ();
181- } else if (wrapped instanceof GlobalScopeVarWrapperNode ) {
182- unwrapped = ((GlobalScopeVarWrapperNode ) wrapped ).getDelegateNode ();
183- } else if (wrapped instanceof JSInputGeneratingNodeWrapper ) {
184- unwrapped = ((JSInputGeneratingNodeWrapper ) wrapped ).getDelegateNode ();
185- } else if (wrapped instanceof JSTaggedExecutionNode ) {
186- unwrapped = ((JSTaggedExecutionNode ) wrapped ).getDelegateNode ();
187- } else if (wrapped instanceof JSTargetableWrapperNode ) {
188- unwrapped = ((JSTargetableWrapperNode ) wrapped ).getDelegate ();
189- }
190- depth ++;
191- } while (unwrapped != wrapped && depth < maxDepth );
159+ if (node instanceof WrapperNode ) {
160+ WrapperNode wrapper = (WrapperNode ) node ;
161+ // JavaScriptNode wrappers have a JavaScriptNode as delegate
162+ unwrapped = (JavaScriptNode ) wrapper .getDelegateNode ();
163+ } else if (node instanceof GlobalScopeVarWrapperNode ) {
164+ unwrapped = ((GlobalScopeVarWrapperNode ) node ).getDelegateNode ();
165+ } else if (node instanceof JSInputGeneratingNodeWrapper ) {
166+ unwrapped = ((JSInputGeneratingNodeWrapper ) node ).getDelegateNode ();
167+ } else if (node instanceof JSTaggedExecutionNode ) {
168+ unwrapped = ((JSTaggedExecutionNode ) node ).getDelegateNode ();
169+ } else if (node instanceof JSTargetableWrapperNode ) {
170+ unwrapped = ((JSTargetableWrapperNode ) node ).getDelegate ();
171+ }
192172 assert !isWrapperNode (unwrapped );
193173 return unwrapped ;
194174 }
0 commit comments