| Index: src/mirror-debugger.js
 | 
| diff --git a/src/mirror-debugger.js b/src/mirror-debugger.js
 | 
| index 3a0353515c1d449053959fd2049d60015b3c54c7..57de6c68f91f2c0bc5f57825331397ade1497436 100644
 | 
| --- a/src/mirror-debugger.js
 | 
| +++ b/src/mirror-debugger.js
 | 
| @@ -1243,13 +1243,17 @@ const kFrameDetailsLocalCountIndex = 4;
 | 
|  const kFrameDetailsSourcePositionIndex = 5;
 | 
|  const kFrameDetailsConstructCallIndex = 6;
 | 
|  const kFrameDetailsAtReturnIndex = 7;
 | 
| -const kFrameDetailsDebuggerFrameIndex = 8;
 | 
| +const kFrameDetailsFlagsIndex = 8;
 | 
|  const kFrameDetailsFirstDynamicIndex = 9;
 | 
|  
 | 
|  const kFrameDetailsNameIndex = 0;
 | 
|  const kFrameDetailsValueIndex = 1;
 | 
|  const kFrameDetailsNameValueSize = 2;
 | 
|  
 | 
| +const kFrameDetailsFlagDebuggerFrame = 1;
 | 
| +const kFrameDetailsFlagOptimizedFrame = 2;
 | 
| +const kFrameDetailsFlagInlinedFrame = 4;
 | 
| +
 | 
|  /**
 | 
|   * Wrapper for the frame details information retreived from the VM. The frame
 | 
|   * details from the VM is an array with the following content. See runtime.cc
 | 
| @@ -1262,7 +1266,7 @@ const kFrameDetailsNameValueSize = 2;
 | 
|   *     5: Source position
 | 
|   *     6: Construct call
 | 
|   *     7: Is at return
 | 
| - *     8: Debugger frame
 | 
| + *     8: Flags (debugger frame, optimized frame, inlined frame)
 | 
|   *     Arguments name, value
 | 
|   *     Locals name, value
 | 
|   *     Return value if any
 | 
| @@ -1308,7 +1312,22 @@ FrameDetails.prototype.isAtReturn = function() {
 | 
|  
 | 
|  FrameDetails.prototype.isDebuggerFrame = function() {
 | 
|    %CheckExecutionState(this.break_id_);
 | 
| -  return this.details_[kFrameDetailsDebuggerFrameIndex];
 | 
| +  var f = kFrameDetailsFlagDebuggerFrame;
 | 
| +  return (this.details_[kFrameDetailsFlagsIndex] & f) == f;
 | 
| +}
 | 
| +
 | 
| +
 | 
| +FrameDetails.prototype.isOptimizedFrame = function() {
 | 
| +  %CheckExecutionState(this.break_id_);
 | 
| +  var f = kFrameDetailsFlagOptimizedFrame;
 | 
| +  return (this.details_[kFrameDetailsFlagsIndex] & f) == f;
 | 
| +}
 | 
| +
 | 
| +
 | 
| +FrameDetails.prototype.isInlinedFrame = function() {
 | 
| +  %CheckExecutionState(this.break_id_);
 | 
| +  var f = kFrameDetailsFlagInlinedFrame;
 | 
| +  return (this.details_[kFrameDetailsFlagsIndex] & f) == f;
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -1447,6 +1466,16 @@ FrameMirror.prototype.isDebuggerFrame = function() {
 | 
|  };
 | 
|  
 | 
|  
 | 
| +FrameMirror.prototype.isOptimizedFrame = function() {
 | 
| +  return this.details_.isOptimizedFrame();
 | 
| +};
 | 
| +
 | 
| +
 | 
| +FrameMirror.prototype.isInlinedFrame = function() {
 | 
| +  return this.details_.isInlinedFrame();
 | 
| +};
 | 
| +
 | 
| +
 | 
|  FrameMirror.prototype.argumentCount = function() {
 | 
|    return this.details_.argumentCount();
 | 
|  };
 | 
| 
 |