Tests for the WI.StackTrace model object.


== Running test suite: WI.StackTrace
-- Running test case: WI.ConsoleMessage.StackTrace
PASS: ConsoleMessage type should be Trace.
PASS: ConsoleMessage should have StackTrace.
PASS: CallFrame in StackTrace has no identifier.
PASS: CallFrame in StackTrace has no thisObject.
PASS: CallFrame in StackTrace has no scopeChain.
StackTrace: 10
  1: foo (Anonymous Script 1 (line 1)) - nativeCode (false) programCode (false)
  2: Eval Code (Anonymous Script 1 (line 1)) - nativeCode (false) programCode (true)
  3: eval - nativeCode (true) programCode (false)
  4: Global Code (inline-script.js:2) - nativeCode (false) programCode (true)
  5: appendChild - nativeCode (true) programCode (false)
  6: triggerConsoleMessage (stack-trace.html:9) - nativeCode (false) programCode (false)
  7: Global Code (Anonymous Script 2 (line 1)) - nativeCode (false) programCode (true)
  8: evaluateWithScopeExtension - nativeCode (true) programCode (false)
  9:  - nativeCode (true) programCode (false)
  10: _wrapCall - nativeCode (true) programCode (false)

-- Running test case: WI.StackTrace.FirstNonNativeNonAnonymousNotBlackboxedCallFrame.Normal
PASS: Should be able to get the first non-native non-anonymous unblackboxed call frame.

-- Running test case: WI.StackTrace.FirstNonNativeNonAnonymousNotBlackboxedCallFrame.AllNative
PASS: Should not be able to get the first non-native non-anonymous unblackboxed call frame if the entire stack trace is native.

-- Running test case: WI.StackTrace.FirstNonNativeNonAnonymousNotBlackboxedCallFrame.AllBlackboxed
PASS: Should use the first blackboxed call frame if the entire stack trace is blackboxed.

