// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. package org.chromium.sdk; import java.util.List; import org.chromium.sdk.util.MethodIsBlockingException; /** * An object that represents a browser JavaScript VM call frame. */ public interface CallFrame { /** * @return the scopes known in this frame; ordered, innermost first, global scope last */ List<? extends JsScope> getVariableScopes(); /** * @return the receiver variable known in this frame * @throws MethodIsBlockingException because it may need to load value from remote */ JsVariable getReceiverVariable() throws MethodIsBlockingException; /** * @return the source script this call frame is associated with; {@code null} * if no script is associated with the call frame (e.g. an exception * could have been thrown in a native script) */ Script getScript(); /** * @return the start position (absolute) of the current statement in the Script corresponding * to this frame or null if position in not available */ TextStreamPosition getStatementStartPosition(); /** * @return the name of the current function of this frame */ String getFunctionName(); /** * @return context for evaluating expressions in scope of this frame */ JsEvaluateContext getEvaluateContext(); }