|Evaluates a string using the debugger API. To allow the variables view to update properties from the Web Console we provide the "selectedObjectActor" mechanism: the Web Console tells the ObjectActor ID for which it desires to evaluate an expression. The Debugger.Object pointed at by the actor ID is bound such that it is available during expression evaluation (executeInGlobalWithBindings()). Example: _self['foobar'] = 'test' where |_self| refers to the desired object. The |frameActor| property allows the Web Console client to provide the frame actor ID, such that the expression can be evaluated in the user-selected stack frame. For the above to work we need the debugger and the Web Console to share a connection, otherwise the Web Console actor will not find the frame actor. The Debugger.Frame comes from the jsdebugger's Debugger instance, which is different from the Web Console's Debugger instance. This means that for evaluation to work, we need to create a new instance for the Web Console Commands helpers - they need to be Debugger.Objects coming from the jsdebugger's Debugger instance. When |selectedObjectActor| is used objects can come from different iframes, from different domains. To avoid permission-related errors when objects come from a different window, we also determine the object's own global, such that evaluation happens in the context of that global. This means that evaluation will happen in the object's iframe, rather than the top level window. @param string string String to evaluate. @param object [options] Options for evaluation: - selectedObjectActor: the ObjectActor ID to use for evaluation. |evalWithBindings()| will be called with one additional binding: |_self| which will point to the Debugger.Object of the given ObjectActor. Executes with the top level window as the global. - frameActor: the FrameActor ID to use for evaluation. The given debugger frame is used for evaluation, instead of the global window. - selectedNodeActor: the NodeActor ID of the currently selected node in the Inspector (or null, if there is no selection). This is used for helper functions that make reference to the currently selected node, like $0. - innerWindowID: An optional window id to use instead of webConsole.evalWindow. This is used by function that need to evaluate in a different window for which we don't have a dedicated target (for example a non-remote iframe). - eager: Set to true if you want the evaluation to bail if it may have side effects. - url: the url to evaluate the script as. Defaults to "debugger eval code", or "debugger eager eval code" if eager is true. - preferConsoleCommandsOverLocalSymbols: Set to true if console commands should override local symbols. @param object webConsole @return object An object that holds the following properties: - dbg: the debugger where the string was evaluated. - frame: (optional) the frame where the string was evaluated. - global: the Debugger.Object for the global where the string was evaluated in. - result: the result of the evaluation.
|Given a message, return one of CONSOLE_WORKER_IDS if it matches one of those. @return string
|global setConsoleEventHandler, retrieveConsoleEvents