[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

barraclough at apple.com barraclough at apple.com
Wed Dec 22 15:52:59 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit e979a6583660169513741276a72c8a05c19a2c32
Author: barraclough at apple.com <barraclough at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Nov 16 01:30:25 2010 +0000

    Bug 49488 - Only add source specific information to exceptions in Interpreter::throwException
    
    Reviewed by Geoff Garen.
    
    JavaScriptCore:
    
    Three types of source location information are added to errors.
    
    (1) Divot information.
    
    This was added with the intention of using it to provide better source highlighting in the inspector.
    We may still want to do so, but we probably should not be exposing these values in a manner visible to
    user scripts – only through an internal C++ interface. The code adding divot properties to objects has
    been removed.
    
    (2) Line number information.
    
    Line number information is presently sometimes added at the point the exception is created, and sometimes
    added at the point the exception passes through throwException. Change this so that throwException has
    the sole responsibility for adding line number and source file information.
    
    (3) Source snippets in the message of certain type errors (e.g. 'doc' in `Result of expression 'doc' [undefined] is not an object.`).
    
    These messages are currently created at the point the exceptions is raised. Instead reformat the message
    such that the source snippet is located at the end (`Result of expression 'b1' [undefined] is not an object.`
    becomes `'undefined' is not an object (evaluating 'b1.property')`), and append these to the message at
    the in throw Exception. This presents a number of advantages:
      * we no longer need to have source location information to create these TypeErrors.
      * we can chose to append source location information in other error messages, including those where
        passing source location to the point of construction would be inconvenient.
      * we can chose in future to omit to append source location information when running in a non-debug mode.
    
    This also cleans up some error output, e.g. removing double brackets ('[[]]') around objects in output,
    removing double periods (..) at end of lines, and adding slightly more context to some errors.
    
    * bytecode/CodeBlock.cpp:
    (JSC::CodeBlock::expressionRangeForBytecodeOffset):
        - Separated called to access line and range information.
    
    * bytecode/CodeBlock.h:
        - Separated called to access line and range information.
    
    * interpreter/Interpreter.cpp:
    (JSC::Interpreter::resolve):
    (JSC::Interpreter::resolveSkip):
    (JSC::Interpreter::resolveGlobal):
    (JSC::Interpreter::resolveGlobalDynamic):
    (JSC::Interpreter::resolveBaseAndProperty):
    (JSC::isInvalidParamForIn):
    (JSC::isInvalidParamForInstanceOf):
        - Update parameters passed to error constructors.
    (JSC::appendSourceToError):
        - Update message property to add location information (previously added in createErrorMessage, in ExceptionHelpers)
    (JSC::Interpreter::throwException):
        - Updated to call appendSourceToError.
    (JSC::Interpreter::privateExecute):
        - Update parameters passed to error constructors.
    
    * jit/JITStubs.cpp:
    (JSC::DEFINE_STUB_FUNCTION):
        - Update parameters passed to error constructors.
    
    * runtime/Error.cpp:
    (JSC::addErrorInfo):
    (JSC::hasErrorInfo):
        - Removed divot properties.
    
    * runtime/Error.h:
        - Removed divot properties.
    
    * runtime/ErrorInstance.cpp:
    (JSC::ErrorInstance::ErrorInstance):
        - Initialize new property.
    
    * runtime/ErrorInstance.h:
    (JSC::ErrorInstance::appendSourceToMessage):
    (JSC::ErrorInstance::setAppendSourceToMessage):
    (JSC::ErrorInstance::clearAppendSourceToMessage):
        - Added flag to check for errors needing location information appending.
    (JSC::ErrorInstance::isErrorInstance):
        - Added virtual method to check for ErrorInstances.
    
    * runtime/ExceptionHelpers.cpp:
    (JSC::createUndefinedVariableError):
    (JSC::createInvalidParamError):
    (JSC::createNotAConstructorError):
    (JSC::createNotAFunctionError):
    (JSC::createNotAnObjectError):
        - Update parameters passed to error constructors, stopped adding line number information early, changed TypeError messages.
    
    * runtime/ExceptionHelpers.h:
        - Updated function signatures.
    
    * runtime/JSFunction.cpp:
    (JSC::callHostFunctionAsConstructor):
        - Update parameters passed to error constructors.
    
    * runtime/JSObject.h:
    (JSC::JSObject::isErrorInstance):
        - Added virtual method to check for ErrorInstances.
    
    LayoutTests:
    
    Updated results to account for changes in TypeError messages.
    (e.g. `Result of expression 'b1' [undefined] is not an object.` -> `'undefined' is not an object (evaluating 'b1.property')`).
    
    * fast/css/font-face-descriptor-multiple-values-parsing-expected.txt:
    * fast/css/resources/font-face-descriptor-multiple-values-parsing.js:
    * fast/css/variables/color-hex-test-expected.txt:
    * fast/dom/HTMLSelectElement/named-options-expected.txt:
    * fast/dom/Range/getClientRects-expected.txt:
    * fast/dom/SelectorAPI/dumpNodeList-almost-strict-expected.txt:
    * fast/dom/SelectorAPI/dumpNodeList-expected.txt:
    * fast/forms/select-namedItem-expected.txt:
    * fast/js/basic-strict-mode-expected.txt:
    * fast/js/date-toisostring-expected.txt:
    * fast/js/delete-getters-setters-expected.txt:
    * fast/js/exception-expression-offset-expected.txt:
    * fast/js/exception-for-nonobject-expected.txt:
    * fast/js/exception-thrown-from-new-expected.txt:
    * fast/js/exception-thrown-from-new.html:
    * fast/js/instance-of-immediates-expected.txt:
    * fast/js/script-tests/exception-expression-offset.js:
    (testException):
    * fast/js/sputnik/Conformance/08_Types/8.6_The_Object_Type/8.6.2_Internal_Properties_and_Methods/S8.6.2_A7-expected.txt:
    * fast/js/sputnik/Conformance/13_Function_Definition/S13_A17_T2-expected.txt:
    * fast/js/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/S15.1_A1_T1-expected.txt:
    * fast/js/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/S15.1_A1_T2-expected.txt:
    * fast/js/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/S15.1_A2_T1-expected.txt:
    * fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.2_Object.prototype.toString/S15.2.4.2_A7-expected.txt:
    * fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.3_Object.prototype.toLocaleString/S15.2.4.3_A7-expected.txt:
    * fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A7-expected.txt:
    * fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.5_Object.prototype.hasOwnProperty/S15.2.4.5_A7-expected.txt:
    * fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.6_Object.prototype.isPrototypeOf/S15.2.4.6_A7-expected.txt:
    * fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.7_Object.prototype.propertyIsEnumerable/S15.2.4.7_A7-expected.txt:
    * fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/S15.2.4_A3-expected.txt:
    * fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/S15.2.4_A4-expected.txt:
    * fast/js/sputnik/Conformance/15_Native_Objects/15.3_Function/15.3.4/15.3.4.2_Function.prototype.toString/S15.3.4.2_A7-expected.txt:
    * fast/js/sputnik/Conformance/15_Native_Objects/15.3_Function/15.3.4/S15.3.4_A5-expected.txt:
    * fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.10_String.prototype.match/S15.5.4.10_A1_T4-expected.txt:
    * fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.12_String.prototype.search/S15.5.4.12_A7-expected.txt:
    * fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.13_String.prototype.slice/S15.5.4.13_A7-expected.txt:
    * fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.15_String.prototype.substring/S15.5.4.15_A7-expected.txt:
    * fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.17_String.prototype.toLocaleLowerCase/S15.5.4.17_A7-expected.txt:
    * fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.7_String.prototype.indexOf/S15.5.4.7_A7-expected.txt:
    * fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.8_String.prototype.lastIndexOf/S15.5.4.8_A7-expected.txt:
    * fast/xsl/transform-xhr-doc-expected.txt:
    * http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write-expected.txt:
    * http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url-expected.txt:
    * http/tests/security/aboutBlank/xss-DENIED-set-opener-expected.txt:
    * java/lc3/ArrayMethods/byte-001-expected.txt:
    * java/lc3/CallStatic/object-001-expected.txt:
    * java/lc3/ConvertBoolean/boolean-007-n-expected.txt:
    * java/lc3/ConvertBoolean/boolean-008-n-expected.txt:
    * java/lc3/ConvertBoolean/boolean-009-n-expected.txt:
    * java/lc3/ConvertBoolean/boolean-010-n-expected.txt:
    * java/lc3/ConvertBoolean/boolean-011-n-expected.txt:
    * java/lc3/ConvertBoolean/boolean-012-n-expected.txt:
    * java/lc3/ConvertBoolean/boolean-013-n-expected.txt:
    * java/lc3/ConvertBoolean/boolean-014-expected.txt:
    * java/lc3/ConvertNull/null-001-expected.txt:
    * java/lc3/ConvertNumber/number-011-expected.txt:
    * java/lc3/ConvertString/string-006-expected.txt:
    * java/lc3/ConvertString/string-007-n-expected.txt:
    * java/lc3/ConvertUndefined/undefined-002-expected.txt:
    * java/lc3/ConvertUndefined/undefined-003-expected.txt:
    * java/lc3/JSBoolean/boolean-005-n-expected.txt:
    * java/lc3/JSNumber/ToDouble-002-expected.txt:
    * java/lc3/JSObject/ToJSObject-001-expected.txt:
    * java/lc3/JSObject/ToObject-001-expected.txt:
    * java/lc3/JavaObject/JavaObjectFieldOrMethod-001-expected.txt:
    * platform/mac-snowleopard/canvas/philip/tests/2d.imageData.create1.type-expected.txt:
    * platform/mac-snowleopard/canvas/philip/tests/2d.imageData.create2.type-expected.txt:
    * platform/mac-snowleopard/canvas/philip/tests/2d.imageData.get.type-expected.txt:
    * platform/mac/compositing/reflections/reflection-opacity-expected.txt:
    * platform/mac/fast/css/variables/remove-variable-test-expected.txt:
    * platform/mac/fast/css/variables/set-variable-test-expected.txt:
    * platform/mac/fast/css/variables/variable-iteration-test-expected.txt:
    * platform/mac/fast/events/updateLayoutForHitTest-expected.txt:
    * platform/mac/svg/custom/createelement-expected.txt:
    * platform/mac/tables/mozilla/bugs/bug53690-1-expected.txt:
    * platform/mac/tables/mozilla_expected_failures/bugs/bug92868_1-expected.txt:
    * plugins/npruntime/object-from-destroyed-plugin-expected.txt:
    * plugins/npruntime/plugin-scriptable-object-invoke-default-expected.txt:
    * svg/custom/use-nested-missing-target-removed-expected.txt:
    * svg/dom/svgpath-out-of-bounds-getPathSeg-expected.txt:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@72050 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/JavaScriptCore/ChangeLog b/JavaScriptCore/ChangeLog
index 120a2fd..37d3198 100644
--- a/JavaScriptCore/ChangeLog
+++ b/JavaScriptCore/ChangeLog
@@ -1,3 +1,104 @@
+2010-11-15  Gavin Barraclough  <barraclough at apple.com>
+
+        Reviewed by Geoff Garen.
+
+        Bug 49488 - Only add source specific information to exceptions in Interpreter::throwException
+
+        Three types of source location information are added to errors.
+
+        (1) Divot information.
+
+        This was added with the intention of using it to provide better source highlighting in the inspector.
+        We may still want to do so, but we probably should not be exposing these values in a manner visible to
+        user scripts – only through an internal C++ interface. The code adding divot properties to objects has
+        been removed.
+
+        (2) Line number information.
+
+        Line number information is presently sometimes added at the point the exception is created, and sometimes
+        added at the point the exception passes through throwException. Change this so that throwException has
+        the sole responsibility for adding line number and source file information.
+
+        (3) Source snippets in the message of certain type errors (e.g. 'doc' in `Result of expression 'doc' [undefined] is not an object.`).
+
+        These messages are currently created at the point the exceptions is raised. Instead reformat the message
+        such that the source snippet is located at the end (`Result of expression 'b1' [undefined] is not an object.`
+        becomes `'undefined' is not an object (evaluating 'b1.property')`), and append these to the message at
+        the in throw Exception. This presents a number of advantages:
+          * we no longer need to have source location information to create these TypeErrors.
+          * we can chose to append source location information in other error messages, including those where
+            passing source location to the point of construction would be inconvenient.
+          * we can chose in future to omit to append source location information when running in a non-debug mode.
+
+        This also cleans up some error output, e.g. removing double brackets ('[[]]') around objects in output,
+        removing double periods (..) at end of lines, and adding slightly more context to some errors.
+
+        * bytecode/CodeBlock.cpp:
+        (JSC::CodeBlock::expressionRangeForBytecodeOffset):
+            - Separated called to access line and range information.
+
+        * bytecode/CodeBlock.h:
+            - Separated called to access line and range information.
+
+        * interpreter/Interpreter.cpp:
+        (JSC::Interpreter::resolve):
+        (JSC::Interpreter::resolveSkip):
+        (JSC::Interpreter::resolveGlobal):
+        (JSC::Interpreter::resolveGlobalDynamic):
+        (JSC::Interpreter::resolveBaseAndProperty):
+        (JSC::isInvalidParamForIn):
+        (JSC::isInvalidParamForInstanceOf):
+            - Update parameters passed to error constructors.
+        (JSC::appendSourceToError):
+            - Update message property to add location information (previously added in createErrorMessage, in ExceptionHelpers)
+        (JSC::Interpreter::throwException):
+            - Updated to call appendSourceToError. 
+        (JSC::Interpreter::privateExecute):
+            - Update parameters passed to error constructors.
+
+        * jit/JITStubs.cpp:
+        (JSC::DEFINE_STUB_FUNCTION):
+            - Update parameters passed to error constructors.
+
+        * runtime/Error.cpp:
+        (JSC::addErrorInfo):
+        (JSC::hasErrorInfo):
+            - Removed divot properties.
+
+        * runtime/Error.h:
+            - Removed divot properties.
+
+        * runtime/ErrorInstance.cpp:
+        (JSC::ErrorInstance::ErrorInstance):
+            - Initialize new property.
+
+        * runtime/ErrorInstance.h:
+        (JSC::ErrorInstance::appendSourceToMessage):
+        (JSC::ErrorInstance::setAppendSourceToMessage):
+        (JSC::ErrorInstance::clearAppendSourceToMessage):
+            - Added flag to check for errors needing location information appending.
+        (JSC::ErrorInstance::isErrorInstance):
+            - Added virtual method to check for ErrorInstances.
+
+        * runtime/ExceptionHelpers.cpp:
+        (JSC::createUndefinedVariableError):
+        (JSC::createInvalidParamError):
+        (JSC::createNotAConstructorError):
+        (JSC::createNotAFunctionError):
+        (JSC::createNotAnObjectError):
+            - Update parameters passed to error constructors, stopped adding line number information early, changed TypeError messages.
+
+        * runtime/ExceptionHelpers.h:
+            - Updated function signatures.
+
+        * runtime/JSFunction.cpp:
+        (JSC::callHostFunctionAsConstructor):
+            - Update parameters passed to error constructors.
+
+        * runtime/JSObject.h:
+        (JSC::JSObject::isErrorInstance):
+            - Added virtual method to check for ErrorInstances.
+
 2010-11-12  Anders Carlsson  <andersca at apple.com>
 
         Reviewed by Adam Roben.
diff --git a/JavaScriptCore/bytecode/CodeBlock.cpp b/JavaScriptCore/bytecode/CodeBlock.cpp
index 92df153..400ea00 100644
--- a/JavaScriptCore/bytecode/CodeBlock.cpp
+++ b/JavaScriptCore/bytecode/CodeBlock.cpp
@@ -1620,7 +1620,7 @@ int CodeBlock::lineNumberForBytecodeOffset(CallFrame* callFrame, unsigned byteco
     return m_exceptionInfo->m_lineInfo[low - 1].lineNumber;
 }
 
-int CodeBlock::expressionRangeForBytecodeOffset(CallFrame* callFrame, unsigned bytecodeOffset, int& divot, int& startOffset, int& endOffset)
+void CodeBlock::expressionRangeForBytecodeOffset(CallFrame* callFrame, unsigned bytecodeOffset, int& divot, int& startOffset, int& endOffset)
 {
     ASSERT(bytecodeOffset < m_instructionCount);
 
@@ -1630,7 +1630,7 @@ int CodeBlock::expressionRangeForBytecodeOffset(CallFrame* callFrame, unsigned b
         startOffset = 0;
         endOffset = 0;
         divot = 0;
-        return lineNumberForBytecodeOffset(callFrame, bytecodeOffset);
+        return;
     }
 
     int low = 0;
@@ -1648,13 +1648,13 @@ int CodeBlock::expressionRangeForBytecodeOffset(CallFrame* callFrame, unsigned b
         startOffset = 0;
         endOffset = 0;
         divot = 0;
-        return lineNumberForBytecodeOffset(callFrame, bytecodeOffset);
+        return;
     }
 
     startOffset = m_exceptionInfo->m_expressionInfo[low - 1].startOffset;
     endOffset = m_exceptionInfo->m_expressionInfo[low - 1].endOffset;
     divot = m_exceptionInfo->m_expressionInfo[low - 1].divotPoint + m_sourceOffset;
-    return lineNumberForBytecodeOffset(callFrame, bytecodeOffset);
+    return;
 }
 
 bool CodeBlock::getByIdExceptionInfoForBytecodeOffset(CallFrame* callFrame, unsigned bytecodeOffset, OpcodeID& opcodeID)
diff --git a/JavaScriptCore/bytecode/CodeBlock.h b/JavaScriptCore/bytecode/CodeBlock.h
index 68acae4..e2f10ee 100644
--- a/JavaScriptCore/bytecode/CodeBlock.h
+++ b/JavaScriptCore/bytecode/CodeBlock.h
@@ -317,7 +317,7 @@ namespace JSC {
 
         HandlerInfo* handlerForBytecodeOffset(unsigned bytecodeOffset);
         int lineNumberForBytecodeOffset(CallFrame*, unsigned bytecodeOffset);
-        int expressionRangeForBytecodeOffset(CallFrame*, unsigned bytecodeOffset, int& divot, int& startOffset, int& endOffset);
+        void expressionRangeForBytecodeOffset(CallFrame*, unsigned bytecodeOffset, int& divot, int& startOffset, int& endOffset);
         bool getByIdExceptionInfoForBytecodeOffset(CallFrame*, unsigned bytecodeOffset, OpcodeID&);
 
 #if ENABLE(JIT)
diff --git a/JavaScriptCore/interpreter/Interpreter.cpp b/JavaScriptCore/interpreter/Interpreter.cpp
index 8262287..1599115 100644
--- a/JavaScriptCore/interpreter/Interpreter.cpp
+++ b/JavaScriptCore/interpreter/Interpreter.cpp
@@ -38,6 +38,7 @@
 #include "Collector.h"
 #include "Debugger.h"
 #include "DebuggerCallFrame.h"
+#include "ErrorInstance.h"
 #include "EvalCodeCache.h"
 #include "ExceptionHelpers.h"
 #include "GetterSetter.h"
@@ -60,6 +61,7 @@
 #include "Register.h"
 #include "SamplingTool.h"
 #include "StrictEvalActivation.h"
+#include "UStringConcatenate.h"
 #include <limits.h>
 #include <stdio.h>
 #include <wtf/Threading.h>
@@ -112,7 +114,7 @@ NEVER_INLINE bool Interpreter::resolve(CallFrame* callFrame, Instruction* vPC, J
             return true;
         }
     } while (++iter != end);
-    exceptionValue = createUndefinedVariableError(callFrame, ident, vPC - codeBlock->instructions().begin(), codeBlock);
+    exceptionValue = createUndefinedVariableError(callFrame, ident);
     return false;
 }
 
@@ -152,7 +154,7 @@ NEVER_INLINE bool Interpreter::resolveSkip(CallFrame* callFrame, Instruction* vP
             return true;
         }
     } while (++iter != end);
-    exceptionValue = createUndefinedVariableError(callFrame, ident, vPC - codeBlock->instructions().begin(), codeBlock);
+    exceptionValue = createUndefinedVariableError(callFrame, ident);
     return false;
 }
 
@@ -192,7 +194,7 @@ NEVER_INLINE bool Interpreter::resolveGlobal(CallFrame* callFrame, Instruction*
         return true;
     }
 
-    exceptionValue = createUndefinedVariableError(callFrame, ident, vPC - codeBlock->instructions().begin(), codeBlock);
+    exceptionValue = createUndefinedVariableError(callFrame, ident);
     return false;
 }
 
@@ -237,7 +239,7 @@ NEVER_INLINE bool Interpreter::resolveGlobalDynamic(CallFrame* callFrame, Instru
                 o = *iter;
                 ++iter;
             } while (true);
-            exceptionValue = createUndefinedVariableError(callFrame, ident, vPC - codeBlock->instructions().begin(), codeBlock);
+            exceptionValue = createUndefinedVariableError(callFrame, ident);
             return false;
         }
         ++iter;
@@ -272,7 +274,7 @@ NEVER_INLINE bool Interpreter::resolveGlobalDynamic(CallFrame* callFrame, Instru
         return true;
     }
     
-    exceptionValue = createUndefinedVariableError(callFrame, ident, vPC - codeBlock->instructions().begin(), codeBlock);
+    exceptionValue = createUndefinedVariableError(callFrame, ident);
     return false;
 }
 
@@ -322,7 +324,7 @@ NEVER_INLINE bool Interpreter::resolveBaseAndProperty(CallFrame* callFrame, Inst
         ++iter;
     } while (iter != end);
 
-    exceptionValue = createUndefinedVariableError(callFrame, ident, vPC - codeBlock->instructions().begin(), codeBlock);
+    exceptionValue = createUndefinedVariableError(callFrame, ident);
     return false;
 }
 
@@ -366,19 +368,19 @@ ALWAYS_INLINE CallFrame* Interpreter::slideRegisterWindowForCall(CodeBlock* newC
 }
 
 #if ENABLE(INTERPRETER)
-static NEVER_INLINE bool isInvalidParamForIn(CallFrame* callFrame, CodeBlock* codeBlock, const Instruction* vPC, JSValue value, JSValue& exceptionData)
+static NEVER_INLINE bool isInvalidParamForIn(CallFrame* callFrame, JSValue value, JSValue& exceptionData)
 {
     if (value.isObject())
         return false;
-    exceptionData = createInvalidParamError(callFrame, "in" , value, vPC - codeBlock->instructions().begin(), codeBlock);
+    exceptionData = createInvalidParamError(callFrame, "in" , value);
     return true;
 }
 
-static NEVER_INLINE bool isInvalidParamForInstanceOf(CallFrame* callFrame, CodeBlock* codeBlock, const Instruction* vPC, JSValue value, JSValue& exceptionData)
+static NEVER_INLINE bool isInvalidParamForInstanceOf(CallFrame* callFrame, JSValue value, JSValue& exceptionData)
 {
     if (value.isObject() && asObject(value)->structure()->typeInfo().implementsHasInstance())
         return false;
-    exceptionData = createInvalidParamError(callFrame, "instanceof" , value, vPC - codeBlock->instructions().begin(), codeBlock);
+    exceptionData = createInvalidParamError(callFrame, "instanceof" , value);
     return true;
 }
 #endif
@@ -605,6 +607,54 @@ NEVER_INLINE bool Interpreter::unwindCallFrame(CallFrame*& callFrame, JSValue ex
     return true;
 }
 
+static void appendSourceToError(CallFrame* callFrame, ErrorInstance* exception, unsigned bytecodeOffset)
+{
+    exception->clearAppendSourceToMessage();
+
+    int startOffset = 0;
+    int endOffset = 0;
+    int divotPoint = 0;
+
+    CodeBlock* codeBlock = callFrame->codeBlock();
+    codeBlock->expressionRangeForBytecodeOffset(callFrame, bytecodeOffset, divotPoint, startOffset, endOffset);
+
+    int expressionStart = divotPoint - startOffset;
+    int expressionStop = divotPoint + endOffset;
+
+    if (!expressionStop || expressionStart > codeBlock->source()->length())
+        return;
+
+    JSGlobalData* globalData = &callFrame->globalData();
+    JSValue jsMessage = exception->getDirect(globalData->propertyNames->message);
+    if (!jsMessage || !jsMessage.isString())
+        return;
+
+    UString message = asString(jsMessage)->value(callFrame);
+
+    if (expressionStart < expressionStop)
+        message =  makeUString(message, " (evaluating '", codeBlock->source()->getRange(expressionStart, expressionStop), "')");
+    else {
+        // No range information, so give a few characters of context
+        const UChar* data = codeBlock->source()->data();
+        int dataLength = codeBlock->source()->length();
+        int start = expressionStart;
+        int stop = expressionStart;
+        // Get up to 20 characters of context to the left and right of the divot, clamping to the line.
+        // then strip whitespace.
+        while (start > 0 && (expressionStart - start < 20) && data[start - 1] != '\n')
+            start--;
+        while (start < (expressionStart - 1) && isStrWhiteSpace(data[start]))
+            start++;
+        while (stop < dataLength && (stop - expressionStart < 20) && data[stop] != '\n')
+            stop++;
+        while (stop > expressionStart && isStrWhiteSpace(data[stop]))
+            stop--;
+        message = makeUString(message, " (near '...", codeBlock->source()->getRange(start, stop), "...')");
+    }
+
+    exception->putDirect(globalData->propertyNames->message, jsString(globalData, message));
+}
+
 NEVER_INLINE HandlerInfo* Interpreter::throwException(CallFrame*& callFrame, JSValue& exceptionValue, unsigned bytecodeOffset, bool explicitThrow)
 {
     // Set up the exception object
@@ -615,25 +665,22 @@ NEVER_INLINE HandlerInfo* Interpreter::throwException(CallFrame*& callFrame, JSV
         if (exception->isNotAnObjectErrorStub()) {
             exception = createNotAnObjectError(callFrame, static_cast<JSNotAnObjectErrorStub*>(exception), bytecodeOffset, codeBlock);
             exceptionValue = exception;
-        } else {
-            if (!hasErrorInfo(callFrame, exception)) {
-                if (explicitThrow) {
-                    int startOffset = 0;
-                    int endOffset = 0;
-                    int divotPoint = 0;
-                    int line = codeBlock->expressionRangeForBytecodeOffset(callFrame, bytecodeOffset, divotPoint, startOffset, endOffset);
-                    addErrorInfo(callFrame, exception, line, codeBlock->ownerExecutable()->source(), divotPoint, startOffset, endOffset, false);
-                } else
-                    addErrorInfo(callFrame, exception, codeBlock->lineNumberForBytecodeOffset(callFrame, bytecodeOffset), codeBlock->ownerExecutable()->source());
-            }
+        }
 
-            ComplType exceptionType = exception->exceptionType();
-            if (exceptionType == Interrupted || exceptionType == Terminated) {
-                while (unwindCallFrame(callFrame, exceptionValue, bytecodeOffset, codeBlock)) {
-                    // Don't need handler checks or anything, we just want to unroll all the JS callframes possible.
-                }
-                return 0;
+        if (!explicitThrow && exception->isErrorInstance() && static_cast<ErrorInstance*>(exception)->appendSourceToMessage())
+            appendSourceToError(callFrame, static_cast<ErrorInstance*>(exception), bytecodeOffset);
+
+        // FIXME: should only really be adding these properties to VM generated exceptions, (!explicitThrow),
+        // but the inspector currently requires these for all thrown objects.
+        if (!hasErrorInfo(callFrame, exception))
+            addErrorInfo(callFrame, exception, codeBlock->lineNumberForBytecodeOffset(callFrame, bytecodeOffset), codeBlock->ownerExecutable()->source());
+
+        ComplType exceptionType = exception->exceptionType();
+        if (exceptionType == Interrupted || exceptionType == Terminated) {
+            while (unwindCallFrame(callFrame, exceptionValue, bytecodeOffset, codeBlock)) {
+                // Don't need handler checks or anything, we just want to unroll all the JS callframes possible.
             }
+            return 0;
         }
     }
 
@@ -2118,7 +2165,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi
 
         JSValue baseVal = callFrame->r(base).jsValue();
 
-        if (isInvalidParamForInstanceOf(callFrame, codeBlock, vPC, baseVal, exceptionValue))
+        if (isInvalidParamForInstanceOf(callFrame, baseVal, exceptionValue))
             goto vm_throw;
 
         bool result = asObject(baseVal)->hasInstance(callFrame, callFrame->r(value).jsValue(), callFrame->r(baseProto).jsValue());
@@ -2240,7 +2287,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi
         int base = vPC[3].u.operand;
 
         JSValue baseVal = callFrame->r(base).jsValue();
-        if (isInvalidParamForIn(callFrame, codeBlock, vPC, baseVal, exceptionValue))
+        if (isInvalidParamForIn(callFrame, baseVal, exceptionValue))
             goto vm_throw;
 
         JSObject* baseObj = asObject(baseVal);
@@ -3885,7 +3932,7 @@ skip_id_custom_self:
 
         ASSERT(callType == CallTypeNone);
 
-        exceptionValue = createNotAFunctionError(callFrame, v, vPC - codeBlock->instructions().begin(), codeBlock);
+        exceptionValue = createNotAFunctionError(callFrame, v);
         goto vm_throw;
     }
     DEFINE_OPCODE(op_load_varargs) {
@@ -3917,7 +3964,7 @@ skip_id_custom_self:
                 argStore[i] = callFrame->registers()[i - RegisterFile::CallFrameHeaderSize - expectedParams - static_cast<int32_t>(argCount) - 1];
         } else if (!arguments.isUndefinedOrNull()) {
             if (!arguments.isObject()) {
-                exceptionValue = createInvalidParamError(callFrame, "Function.prototype.apply", arguments, vPC - codeBlock->instructions().begin(), codeBlock);
+                exceptionValue = createInvalidParamError(callFrame, "Function.prototype.apply", arguments);
                 goto vm_throw;
             }
             if (asObject(arguments)->classInfo() == &Arguments::info) {
@@ -3958,7 +4005,7 @@ skip_id_custom_self:
                     CHECK_FOR_EXCEPTION();
                 }
             } else {
-                exceptionValue = createInvalidParamError(callFrame, "Function.prototype.apply", arguments, vPC - codeBlock->instructions().begin(), codeBlock);
+                exceptionValue = createInvalidParamError(callFrame, "Function.prototype.apply", arguments);
                 goto vm_throw;
             }
         }
@@ -4043,7 +4090,7 @@ skip_id_custom_self:
         
         ASSERT(callType == CallTypeNone);
         
-        exceptionValue = createNotAFunctionError(callFrame, v, vPC - codeBlock->instructions().begin(), codeBlock);
+        exceptionValue = createNotAFunctionError(callFrame, v);
         goto vm_throw;
     }
     DEFINE_OPCODE(op_tear_off_activation) {
@@ -4387,7 +4434,7 @@ skip_id_custom_self:
 
         ASSERT(constructType == ConstructTypeNone);
 
-        exceptionValue = createNotAConstructorError(callFrame, v, vPC - codeBlock->instructions().begin(), codeBlock);
+        exceptionValue = createNotAConstructorError(callFrame, v);
         goto vm_throw;
     }
     DEFINE_OPCODE(op_strcat) {
diff --git a/JavaScriptCore/jit/JITStubs.cpp b/JavaScriptCore/jit/JITStubs.cpp
index d5c1f6e..a541daf 100644
--- a/JavaScriptCore/jit/JITStubs.cpp
+++ b/JavaScriptCore/jit/JITStubs.cpp
@@ -1860,10 +1860,7 @@ DEFINE_STUB_FUNCTION(EncodedJSValue, op_instanceof)
     // Throw an exception either if baseVal is not an object, or if it does not implement 'HasInstance' (i.e. is a function).
     TypeInfo typeInfo(UnspecifiedType);
     if (!baseVal.isObject() || !(typeInfo = asObject(baseVal)->structure()->typeInfo()).implementsHasInstance()) {
-        CallFrame* callFrame = stackFrame.callFrame;
-        CodeBlock* codeBlock = callFrame->codeBlock();
-        unsigned vPCIndex = codeBlock->bytecodeOffset(callFrame, STUB_RETURN_ADDRESS);
-        stackFrame.globalData->exception = createInvalidParamError(callFrame, "instanceof", baseVal, vPCIndex, codeBlock);
+        stackFrame.globalData->exception = createInvalidParamError(stackFrame.callFrame, "instanceof", baseVal);
         VM_THROW_EXCEPTION();
     }
     ASSERT(typeInfo.type() != UnspecifiedType);
@@ -2201,10 +2198,7 @@ DEFINE_STUB_FUNCTION(EncodedJSValue, op_call_NotJSFunction)
 
     ASSERT(callType == CallTypeNone);
 
-    CallFrame* callFrame = stackFrame.callFrame;
-    CodeBlock* codeBlock = callFrame->codeBlock();
-    unsigned vPCIndex = codeBlock->bytecodeOffset(callFrame, STUB_RETURN_ADDRESS);
-    stackFrame.globalData->exception = createNotAFunctionError(stackFrame.callFrame, funcVal, vPCIndex, codeBlock);
+    stackFrame.globalData->exception = createNotAFunctionError(stackFrame.callFrame, funcVal);
     VM_THROW_EXCEPTION();
 }
 
@@ -2307,9 +2301,7 @@ DEFINE_STUB_FUNCTION(EncodedJSValue, op_resolve)
         }
     } while (++iter != end);
 
-    CodeBlock* codeBlock = callFrame->codeBlock();
-    unsigned vPCIndex = codeBlock->bytecodeOffset(callFrame, STUB_RETURN_ADDRESS);
-    stackFrame.globalData->exception = createUndefinedVariableError(callFrame, ident, vPCIndex, codeBlock);
+    stackFrame.globalData->exception = createUndefinedVariableError(callFrame, ident);
     VM_THROW_EXCEPTION();
 }
 
@@ -2348,10 +2340,7 @@ DEFINE_STUB_FUNCTION(EncodedJSValue, op_construct_NotJSConstruct)
 
     ASSERT(constructType == ConstructTypeNone);
 
-    CallFrame* callFrame = stackFrame.callFrame;
-    CodeBlock* codeBlock = callFrame->codeBlock();
-    unsigned vPCIndex = codeBlock->bytecodeOffset(callFrame, STUB_RETURN_ADDRESS);
-    stackFrame.globalData->exception = createNotAConstructorError(callFrame, constrVal, vPCIndex, codeBlock);
+    stackFrame.globalData->exception = createNotAConstructorError(stackFrame.callFrame, constrVal);
     VM_THROW_EXCEPTION();
 }
 
@@ -2621,9 +2610,7 @@ DEFINE_STUB_FUNCTION(int, op_load_varargs)
 
     } else if (!arguments.isUndefinedOrNull()) {
         if (!arguments.isObject()) {
-            CodeBlock* codeBlock = callFrame->codeBlock();
-            unsigned vPCIndex = codeBlock->bytecodeOffset(callFrame, STUB_RETURN_ADDRESS);
-            stackFrame.globalData->exception = createInvalidParamError(callFrame, "Function.prototype.apply", arguments, vPCIndex, codeBlock);
+            stackFrame.globalData->exception = createInvalidParamError(callFrame, "Function.prototype.apply", arguments);
             VM_THROW_EXCEPTION();
         }
         if (asObject(arguments)->classInfo() == &Arguments::info) {
@@ -2664,9 +2651,7 @@ DEFINE_STUB_FUNCTION(int, op_load_varargs)
                 CHECK_FOR_EXCEPTION();
             }
         } else {
-            CodeBlock* codeBlock = callFrame->codeBlock();
-            unsigned vPCIndex = codeBlock->bytecodeOffset(callFrame, STUB_RETURN_ADDRESS);
-            stackFrame.globalData->exception = createInvalidParamError(callFrame, "Function.prototype.apply", arguments, vPCIndex, codeBlock);
+            stackFrame.globalData->exception = createInvalidParamError(callFrame, "Function.prototype.apply", arguments);
             VM_THROW_EXCEPTION();
         }
     }
@@ -2757,8 +2742,7 @@ DEFINE_STUB_FUNCTION(EncodedJSValue, op_resolve_skip)
         }
     } while (++iter != end);
 
-    unsigned vPCIndex = codeBlock->bytecodeOffset(callFrame, STUB_RETURN_ADDRESS);
-    stackFrame.globalData->exception = createUndefinedVariableError(callFrame, ident, vPCIndex, codeBlock);
+    stackFrame.globalData->exception = createUndefinedVariableError(callFrame, ident);
     VM_THROW_EXCEPTION();
 }
 
@@ -2790,8 +2774,7 @@ DEFINE_STUB_FUNCTION(EncodedJSValue, op_resolve_global)
         return JSValue::encode(result);
     }
 
-    unsigned vPCIndex = codeBlock->bytecodeOffset(callFrame, STUB_RETURN_ADDRESS);
-    stackFrame.globalData->exception = createUndefinedVariableError(callFrame, ident, vPCIndex, codeBlock);
+    stackFrame.globalData->exception = createUndefinedVariableError(callFrame, ident);
     VM_THROW_EXCEPTION();
 }
 
@@ -3091,9 +3074,7 @@ DEFINE_STUB_FUNCTION(EncodedJSValue, op_resolve_with_base)
         ++iter;
     } while (iter != end);
 
-    CodeBlock* codeBlock = callFrame->codeBlock();
-    unsigned vPCIndex = codeBlock->bytecodeOffset(callFrame, STUB_RETURN_ADDRESS);
-    stackFrame.globalData->exception = createUndefinedVariableError(callFrame, ident, vPCIndex, codeBlock);
+    stackFrame.globalData->exception = createUndefinedVariableError(callFrame, ident);
     VM_THROW_EXCEPTION_AT_END();
     return JSValue::encode(JSValue());
 }
@@ -3396,10 +3377,7 @@ DEFINE_STUB_FUNCTION(EncodedJSValue, op_in)
     JSValue baseVal = stackFrame.args[1].jsValue();
 
     if (!baseVal.isObject()) {
-        CallFrame* callFrame = stackFrame.callFrame;
-        CodeBlock* codeBlock = callFrame->codeBlock();
-        unsigned vPCIndex = codeBlock->bytecodeOffset(callFrame, STUB_RETURN_ADDRESS);
-        stackFrame.globalData->exception = createInvalidParamError(callFrame, "in", baseVal, vPCIndex, codeBlock);
+        stackFrame.globalData->exception = createInvalidParamError(stackFrame.callFrame, "in", baseVal);
         VM_THROW_EXCEPTION();
     }
 
diff --git a/JavaScriptCore/runtime/Error.cpp b/JavaScriptCore/runtime/Error.cpp
index fd97beb..227e9ec 100644
--- a/JavaScriptCore/runtime/Error.cpp
+++ b/JavaScriptCore/runtime/Error.cpp
@@ -38,9 +38,6 @@ namespace JSC {
 static const char* linePropertyName = "line";
 static const char* sourceIdPropertyName = "sourceId";
 static const char* sourceURLPropertyName = "sourceURL";
-static const char* expressionBeginOffsetPropertyName = "expressionBeginOffset";
-static const char* expressionCaretOffsetPropertyName = "expressionCaretOffset";
-static const char* expressionEndOffsetPropertyName = "expressionEndOffset";
 
 JSObject* createError(JSGlobalObject* globalObject, const UString& message)
 {
@@ -119,7 +116,7 @@ JSObject* createURIError(ExecState* exec, const UString& message)
     return createURIError(exec->lexicalGlobalObject(), message);
 }
 
-static void addErrorSourceInfo(JSGlobalData* globalData, JSObject* error, int line, const SourceCode& source)
+JSObject* addErrorInfo(JSGlobalData* globalData, JSObject* error, int line, const SourceCode& source)
 {
     intptr_t sourceID = source.provider()->asID();
     const UString& sourceURL = source.provider()->url();
@@ -130,26 +127,7 @@ static void addErrorSourceInfo(JSGlobalData* globalData, JSObject* error, int li
         error->putWithAttributes(globalData, Identifier(globalData, sourceIdPropertyName), jsNumber((double)sourceID), ReadOnly | DontDelete);
     if (!sourceURL.isNull())
         error->putWithAttributes(globalData, Identifier(globalData, sourceURLPropertyName), jsString(globalData, sourceURL), ReadOnly | DontDelete);
-}
-
-static void addErrorDivotInfo(JSGlobalData* globalData, JSObject* error, int divotPoint, int startOffset, int endOffset, bool withCaret)
-{
-    error->putWithAttributes(globalData, Identifier(globalData, expressionBeginOffsetPropertyName), jsNumber(divotPoint - startOffset), ReadOnly | DontDelete);
-    error->putWithAttributes(globalData, Identifier(globalData, expressionEndOffsetPropertyName), jsNumber(divotPoint + endOffset), ReadOnly | DontDelete);
-    if (withCaret)
-        error->putWithAttributes(globalData, Identifier(globalData, expressionCaretOffsetPropertyName), jsNumber(divotPoint), ReadOnly | DontDelete);
-}
-
-JSObject* addErrorInfo(JSGlobalData* globalData, JSObject* error, int line, const SourceCode& source)
-{
-    addErrorSourceInfo(globalData, error, line, source);
-    return error;
-}
 
-JSObject* addErrorInfo(JSGlobalData* globalData, JSObject* error, int line, const SourceCode& source, int divotPoint, int startOffset, int endOffset, bool withCaret)
-{
-    addErrorSourceInfo(globalData, error, line, source);
-    addErrorDivotInfo(globalData, error, divotPoint, startOffset, endOffset, withCaret);
     return error;
 }
 
@@ -158,19 +136,11 @@ JSObject* addErrorInfo(ExecState* exec, JSObject* error, int line, const SourceC
     return addErrorInfo(&exec->globalData(), error, line, source);
 }
 
-JSObject* addErrorInfo(ExecState* exec, JSObject* error, int line, const SourceCode& source, int divotPoint, int startOffset, int endOffset, bool withCaret)
-{
-    return addErrorInfo(&exec->globalData(), error, line, source, divotPoint, startOffset, endOffset, withCaret);
-}
-
 bool hasErrorInfo(ExecState* exec, JSObject* error)
 {
     return error->hasProperty(exec, Identifier(exec, linePropertyName))
         || error->hasProperty(exec, Identifier(exec, sourceIdPropertyName))
-        || error->hasProperty(exec, Identifier(exec, sourceURLPropertyName))
-        || error->hasProperty(exec, Identifier(exec, expressionBeginOffsetPropertyName))
-        || error->hasProperty(exec, Identifier(exec, expressionCaretOffsetPropertyName))
-        || error->hasProperty(exec, Identifier(exec, expressionEndOffsetPropertyName));
+        || error->hasProperty(exec, Identifier(exec, sourceURLPropertyName));
 }
 
 JSValue throwError(ExecState* exec, JSValue error)
diff --git a/JavaScriptCore/runtime/Error.h b/JavaScriptCore/runtime/Error.h
index bfde7dc..c0f9d32 100644
--- a/JavaScriptCore/runtime/Error.h
+++ b/JavaScriptCore/runtime/Error.h
@@ -56,10 +56,8 @@ namespace JSC {
     // Methods to add 
     bool hasErrorInfo(ExecState*, JSObject* error);
     JSObject* addErrorInfo(JSGlobalData*, JSObject* error, int line, const SourceCode&);
-    JSObject* addErrorInfo(JSGlobalData*, JSObject* error, int line, const SourceCode&, int divotPoint, int startOffset, int endOffset, bool withCaret = true);
     // ExecState wrappers.
     JSObject* addErrorInfo(ExecState*, JSObject* error, int line, const SourceCode&);
-    JSObject* addErrorInfo(ExecState*, JSObject* error, int line, const SourceCode&, int divotPoint, int startOffset, int endOffset, bool withCaret = true);
 
     // Methods to throw Errors.
     JSValue throwError(ExecState*, JSValue);
diff --git a/JavaScriptCore/runtime/ErrorInstance.cpp b/JavaScriptCore/runtime/ErrorInstance.cpp
index 740e20e..0f3153c 100644
--- a/JavaScriptCore/runtime/ErrorInstance.cpp
+++ b/JavaScriptCore/runtime/ErrorInstance.cpp
@@ -27,12 +27,14 @@ const ClassInfo ErrorInstance::info = { "Error", 0, 0, 0 };
 
 ErrorInstance::ErrorInstance(JSGlobalData* globalData, NonNullPassRefPtr<Structure> structure)
     : JSObject(structure)
+    , m_appendSourceToMessage(false)
 {
     putDirect(globalData->propertyNames->message, jsString(globalData, ""));
 }
 
 ErrorInstance::ErrorInstance(JSGlobalData* globalData, NonNullPassRefPtr<Structure> structure, const UString& message)
     : JSObject(structure)
+    , m_appendSourceToMessage(false)
 {
     putDirect(globalData->propertyNames->message, jsString(globalData, message));
 }
diff --git a/JavaScriptCore/runtime/ErrorInstance.h b/JavaScriptCore/runtime/ErrorInstance.h
index a49cc3c..b3bebec 100644
--- a/JavaScriptCore/runtime/ErrorInstance.h
+++ b/JavaScriptCore/runtime/ErrorInstance.h
@@ -34,9 +34,18 @@ namespace JSC {
         static ErrorInstance* create(JSGlobalData*, NonNullPassRefPtr<Structure>, const UString&);
         static ErrorInstance* create(ExecState* exec, NonNullPassRefPtr<Structure>, JSValue message);
 
+
+        bool appendSourceToMessage() { return m_appendSourceToMessage; }
+        void setAppendSourceToMessage() { m_appendSourceToMessage = true; }
+        void clearAppendSourceToMessage() { m_appendSourceToMessage = false; }
+
+        virtual bool isErrorInstance() const { return true; }
+
     protected:
         explicit ErrorInstance(JSGlobalData*, NonNullPassRefPtr<Structure>);
         explicit ErrorInstance(JSGlobalData*, NonNullPassRefPtr<Structure>, const UString&);
+
+        bool m_appendSourceToMessage;
     };
 
 } // namespace JSC
diff --git a/JavaScriptCore/runtime/ExceptionHelpers.cpp b/JavaScriptCore/runtime/ExceptionHelpers.cpp
index 5fbaa18..36b2a32 100644
--- a/JavaScriptCore/runtime/ExceptionHelpers.cpp
+++ b/JavaScriptCore/runtime/ExceptionHelpers.cpp
@@ -31,6 +31,7 @@
 
 #include "CodeBlock.h"
 #include "CallFrame.h"
+#include "ErrorInstance.h"
 #include "JSGlobalObjectFunctions.h"
 #include "JSObject.h"
 #include "JSNotAnObject.h"
@@ -84,79 +85,36 @@ JSObject* createStackOverflowError(JSGlobalObject* globalObject)
     return createRangeError(globalObject, "Maximum call stack size exceeded.");
 }
 
-JSValue createUndefinedVariableError(ExecState* exec, const Identifier& ident, unsigned bytecodeOffset, CodeBlock* codeBlock)
+JSValue createUndefinedVariableError(ExecState* exec, const Identifier& ident)
 {
-    int startOffset = 0;
-    int endOffset = 0;
-    int divotPoint = 0;
-    int line = codeBlock->expressionRangeForBytecodeOffset(exec, bytecodeOffset, divotPoint, startOffset, endOffset);
     UString message(makeUString("Can't find variable: ", ident.ustring()));
-    JSObject* exception = addErrorInfo(exec, createReferenceError(exec, message), line, codeBlock->ownerExecutable()->source(), divotPoint, startOffset, endOffset);
-    return exception;
+    return createReferenceError(exec, message);
 }
     
-static UString createErrorMessage(ExecState* exec, CodeBlock* codeBlock, int, int expressionStart, int expressionStop, JSValue value, UString error)
+JSObject* createInvalidParamError(ExecState* exec, const char* op, JSValue value)
 {
-    if (!expressionStop || expressionStart > codeBlock->source()->length())
-        return makeUString(value.toString(exec), " is ", error);
-    if (expressionStart < expressionStop)
-        return makeUString("Result of expression '", codeBlock->source()->getRange(expressionStart, expressionStop), "' [", value.toString(exec), "] is ", error, ".");
-
-    // No range information, so give a few characters of context
-    const UChar* data = codeBlock->source()->data();
-    int dataLength = codeBlock->source()->length();
-    int start = expressionStart;
-    int stop = expressionStart;
-    // Get up to 20 characters of context to the left and right of the divot, clamping to the line.
-    // then strip whitespace.
-    while (start > 0 && (expressionStart - start < 20) && data[start - 1] != '\n')
-        start--;
-    while (start < (expressionStart - 1) && isStrWhiteSpace(data[start]))
-        start++;
-    while (stop < dataLength && (stop - expressionStart < 20) && data[stop] != '\n')
-        stop++;
-    while (stop > expressionStart && isStrWhiteSpace(data[stop]))
-        stop--;
-    return makeUString("Result of expression near '...", codeBlock->source()->getRange(start, stop), "...' [", value.toString(exec), "] is ", error, ".");
-}
-
-JSObject* createInvalidParamError(ExecState* exec, const char* op, JSValue value, unsigned bytecodeOffset, CodeBlock* codeBlock)
-{
-    int startOffset = 0;
-    int endOffset = 0;
-    int divotPoint = 0;
-    int line = codeBlock->expressionRangeForBytecodeOffset(exec, bytecodeOffset, divotPoint, startOffset, endOffset);
-    UString errorMessage = createErrorMessage(exec, codeBlock, line, divotPoint, divotPoint + endOffset, value, makeUString("not a valid argument for '", op, "'"));
-    JSObject* exception = addErrorInfo(exec, createTypeError(exec, errorMessage), line, codeBlock->ownerExecutable()->source(), divotPoint, startOffset, endOffset);
+    UString errorMessage = makeUString("'", value.toString(exec), "' is not a valid argument for '", op, "'");
+    JSObject* exception = createTypeError(exec, errorMessage);
+    ASSERT(exception->isErrorInstance());
+    static_cast<ErrorInstance*>(exception)->setAppendSourceToMessage();
     return exception;
 }
 
-JSObject* createNotAConstructorError(ExecState* exec, JSValue value, unsigned bytecodeOffset, CodeBlock* codeBlock)
+JSObject* createNotAConstructorError(ExecState* exec, JSValue value)
 {
-    int startOffset = 0;
-    int endOffset = 0;
-    int divotPoint = 0;
-    int line = codeBlock->expressionRangeForBytecodeOffset(exec, bytecodeOffset, divotPoint, startOffset, endOffset);
-
-    // We're in a "new" expression, so we need to skip over the "new.." part
-    int startPoint = divotPoint - (startOffset ? startOffset - 4 : 0); // -4 for "new "
-    const UChar* data = codeBlock->source()->data();
-    while (startPoint < divotPoint && isStrWhiteSpace(data[startPoint]))
-        startPoint++;
-    
-    UString errorMessage = createErrorMessage(exec, codeBlock, line, startPoint, divotPoint, value, "not a constructor");
-    JSObject* exception = addErrorInfo(exec, createTypeError(exec, errorMessage), line, codeBlock->ownerExecutable()->source(), divotPoint, startOffset, endOffset);
+    UString errorMessage = makeUString("'", value.toString(exec), "' is not a constructor");
+    JSObject* exception = createTypeError(exec, errorMessage);
+    ASSERT(exception->isErrorInstance());
+    static_cast<ErrorInstance*>(exception)->setAppendSourceToMessage();
     return exception;
 }
 
-JSValue createNotAFunctionError(ExecState* exec, JSValue value, unsigned bytecodeOffset, CodeBlock* codeBlock)
+JSValue createNotAFunctionError(ExecState* exec, JSValue value)
 {
-    int startOffset = 0;
-    int endOffset = 0;
-    int divotPoint = 0;
-    int line = codeBlock->expressionRangeForBytecodeOffset(exec, bytecodeOffset, divotPoint, startOffset, endOffset);
-    UString errorMessage = createErrorMessage(exec, codeBlock, line, divotPoint - startOffset, divotPoint, value, "not a function");
-    JSObject* exception = addErrorInfo(exec, createTypeError(exec, errorMessage), line, codeBlock->ownerExecutable()->source(), divotPoint, startOffset, endOffset);
+    UString errorMessage = makeUString("'", value.toString(exec), "' is not a function");
+    JSObject* exception = createTypeError(exec, errorMessage);
+    ASSERT(exception->isErrorInstance());
+    static_cast<ErrorInstance*>(exception)->setAppendSourceToMessage();
     return exception;
 }
 
@@ -174,16 +132,15 @@ JSObject* createNotAnObjectError(ExecState* exec, JSNotAnObjectErrorStub* error,
     if (codeBlock->getByIdExceptionInfoForBytecodeOffset(exec, bytecodeOffset, followingOpcodeID)) {
         ASSERT(followingOpcodeID == op_create_this || followingOpcodeID == op_instanceof);
         if (followingOpcodeID == op_create_this)
-            return createNotAConstructorError(exec, error->isNull() ? jsNull() : jsUndefined(), bytecodeOffset, codeBlock);
-        return createInvalidParamError(exec, "instanceof", error->isNull() ? jsNull() : jsUndefined(), bytecodeOffset, codeBlock);
+            return createNotAConstructorError(exec, error->isNull() ? jsNull() : jsUndefined());
+        return createInvalidParamError(exec, "instanceof", error->isNull() ? jsNull() : jsUndefined());
     }
 
-    int startOffset = 0;
-    int endOffset = 0;
-    int divotPoint = 0;
-    int line = codeBlock->expressionRangeForBytecodeOffset(exec, bytecodeOffset, divotPoint, startOffset, endOffset);
-    UString errorMessage = createErrorMessage(exec, codeBlock, line, divotPoint - startOffset, divotPoint, error->isNull() ? jsNull() : jsUndefined(), "not an object");
-    JSObject* exception = addErrorInfo(exec, createTypeError(exec, errorMessage), line, codeBlock->ownerExecutable()->source(), divotPoint, startOffset, endOffset);
+    JSValue value = error->isNull() ? jsNull() : jsUndefined();
+    UString errorMessage = makeUString("'", value.toString(exec), "' is not an object");
+    JSObject* exception = createTypeError(exec, errorMessage);
+    ASSERT(exception->isErrorInstance());
+    static_cast<ErrorInstance*>(exception)->setAppendSourceToMessage();
     return exception;
 }
 
diff --git a/JavaScriptCore/runtime/ExceptionHelpers.h b/JavaScriptCore/runtime/ExceptionHelpers.h
index a7b2ca7..3dc3713 100644
--- a/JavaScriptCore/runtime/ExceptionHelpers.h
+++ b/JavaScriptCore/runtime/ExceptionHelpers.h
@@ -47,14 +47,15 @@ namespace JSC {
     JSValue createTerminatedExecutionException(JSGlobalData*);
     JSObject* createStackOverflowError(ExecState*);
     JSObject* createStackOverflowError(JSGlobalObject*);
-    JSValue createUndefinedVariableError(ExecState*, const Identifier&, unsigned bytecodeOffset, CodeBlock*);
+    JSValue createUndefinedVariableError(ExecState*, const Identifier&);
     JSNotAnObjectErrorStub* createNotAnObjectErrorStub(ExecState*, bool isNull);
-    JSObject* createInvalidParamError(ExecState*, const char* op, JSValue, unsigned bytecodeOffset, CodeBlock*);
-    JSObject* createNotAConstructorError(ExecState*, JSValue, unsigned bytecodeOffset, CodeBlock*);
-    JSValue createNotAFunctionError(ExecState*, JSValue, unsigned bytecodeOffset, CodeBlock*);
-    JSObject* createNotAnObjectError(ExecState*, JSNotAnObjectErrorStub*, unsigned bytecodeOffset, CodeBlock*);
+    JSObject* createInvalidParamError(ExecState*, const char* op, JSValue);
+    JSObject* createNotAConstructorError(ExecState*, JSValue);
+    JSValue createNotAFunctionError(ExecState*, JSValue);
     JSObject* createErrorForInvalidGlobalAssignment(ExecState*, const UString&);
 
+    JSObject* createNotAnObjectError(ExecState*, JSNotAnObjectErrorStub*, unsigned bytecodeOffset, CodeBlock*);
+
     JSObject* throwOutOfMemoryError(ExecState*);
     JSObject* throwStackOverflowError(ExecState*);
 
diff --git a/JavaScriptCore/runtime/JSFunction.cpp b/JavaScriptCore/runtime/JSFunction.cpp
index 0697fc3..49007d6 100644
--- a/JavaScriptCore/runtime/JSFunction.cpp
+++ b/JavaScriptCore/runtime/JSFunction.cpp
@@ -45,9 +45,7 @@ namespace JSC {
 #if ENABLE(JIT)
 EncodedJSValue JSC_HOST_CALL callHostFunctionAsConstructor(ExecState* exec)
 {
-    CodeBlock* codeBlock = exec->callerFrame()->codeBlock();
-    unsigned vPCIndex = codeBlock->bytecodeOffset(exec, exec->returnPC());
-    return throwVMError(exec, createNotAConstructorError(exec, exec->callee(), vPCIndex, codeBlock));
+    return throwVMError(exec, createNotAConstructorError(exec, exec->callee()));
 }
 #endif
 
diff --git a/JavaScriptCore/runtime/JSObject.h b/JavaScriptCore/runtime/JSObject.h
index f484ce4..4ff31ce 100644
--- a/JavaScriptCore/runtime/JSObject.h
+++ b/JavaScriptCore/runtime/JSObject.h
@@ -210,6 +210,7 @@ namespace JSC {
         virtual bool isActivationObject() const { return false; }
         virtual bool isNotAnObjectErrorStub() const { return false; }
         virtual bool isStrictModeFunction() const { return false; }
+        virtual bool isErrorInstance() const { return false; }
 
         virtual ComplType exceptionType() const { return Throw; }
 
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index b6d2683..5be8799 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,93 @@
+2010-11-15  Gavin Barraclough  <barraclough at apple.com>
+
+        Reviewed by Geoff Garen.
+
+        Bug 49488 - Only add source specific information to exceptions in Interpreter::throwException
+
+        Updated results to account for changes in TypeError messages.
+        (e.g. `Result of expression 'b1' [undefined] is not an object.` -> `'undefined' is not an object (evaluating 'b1.property')`).
+
+        * fast/css/font-face-descriptor-multiple-values-parsing-expected.txt:
+        * fast/css/resources/font-face-descriptor-multiple-values-parsing.js:
+        * fast/css/variables/color-hex-test-expected.txt:
+        * fast/dom/HTMLSelectElement/named-options-expected.txt:
+        * fast/dom/Range/getClientRects-expected.txt:
+        * fast/dom/SelectorAPI/dumpNodeList-almost-strict-expected.txt:
+        * fast/dom/SelectorAPI/dumpNodeList-expected.txt:
+        * fast/forms/select-namedItem-expected.txt:
+        * fast/js/basic-strict-mode-expected.txt:
+        * fast/js/date-toisostring-expected.txt:
+        * fast/js/delete-getters-setters-expected.txt:
+        * fast/js/exception-expression-offset-expected.txt:
+        * fast/js/exception-for-nonobject-expected.txt:
+        * fast/js/exception-thrown-from-new-expected.txt:
+        * fast/js/exception-thrown-from-new.html:
+        * fast/js/instance-of-immediates-expected.txt:
+        * fast/js/script-tests/exception-expression-offset.js:
+        (testException):
+        * fast/js/sputnik/Conformance/08_Types/8.6_The_Object_Type/8.6.2_Internal_Properties_and_Methods/S8.6.2_A7-expected.txt:
+        * fast/js/sputnik/Conformance/13_Function_Definition/S13_A17_T2-expected.txt:
+        * fast/js/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/S15.1_A1_T1-expected.txt:
+        * fast/js/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/S15.1_A1_T2-expected.txt:
+        * fast/js/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/S15.1_A2_T1-expected.txt:
+        * fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.2_Object.prototype.toString/S15.2.4.2_A7-expected.txt:
+        * fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.3_Object.prototype.toLocaleString/S15.2.4.3_A7-expected.txt:
+        * fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A7-expected.txt:
+        * fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.5_Object.prototype.hasOwnProperty/S15.2.4.5_A7-expected.txt:
+        * fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.6_Object.prototype.isPrototypeOf/S15.2.4.6_A7-expected.txt:
+        * fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.7_Object.prototype.propertyIsEnumerable/S15.2.4.7_A7-expected.txt:
+        * fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/S15.2.4_A3-expected.txt:
+        * fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/S15.2.4_A4-expected.txt:
+        * fast/js/sputnik/Conformance/15_Native_Objects/15.3_Function/15.3.4/15.3.4.2_Function.prototype.toString/S15.3.4.2_A7-expected.txt:
+        * fast/js/sputnik/Conformance/15_Native_Objects/15.3_Function/15.3.4/S15.3.4_A5-expected.txt:
+        * fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.10_String.prototype.match/S15.5.4.10_A1_T4-expected.txt:
+        * fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.12_String.prototype.search/S15.5.4.12_A7-expected.txt:
+        * fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.13_String.prototype.slice/S15.5.4.13_A7-expected.txt:
+        * fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.15_String.prototype.substring/S15.5.4.15_A7-expected.txt:
+        * fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.17_String.prototype.toLocaleLowerCase/S15.5.4.17_A7-expected.txt:
+        * fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.7_String.prototype.indexOf/S15.5.4.7_A7-expected.txt:
+        * fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.8_String.prototype.lastIndexOf/S15.5.4.8_A7-expected.txt:
+        * fast/xsl/transform-xhr-doc-expected.txt:
+        * http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write-expected.txt:
+        * http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url-expected.txt:
+        * http/tests/security/aboutBlank/xss-DENIED-set-opener-expected.txt:
+        * java/lc3/ArrayMethods/byte-001-expected.txt:
+        * java/lc3/CallStatic/object-001-expected.txt:
+        * java/lc3/ConvertBoolean/boolean-007-n-expected.txt:
+        * java/lc3/ConvertBoolean/boolean-008-n-expected.txt:
+        * java/lc3/ConvertBoolean/boolean-009-n-expected.txt:
+        * java/lc3/ConvertBoolean/boolean-010-n-expected.txt:
+        * java/lc3/ConvertBoolean/boolean-011-n-expected.txt:
+        * java/lc3/ConvertBoolean/boolean-012-n-expected.txt:
+        * java/lc3/ConvertBoolean/boolean-013-n-expected.txt:
+        * java/lc3/ConvertBoolean/boolean-014-expected.txt:
+        * java/lc3/ConvertNull/null-001-expected.txt:
+        * java/lc3/ConvertNumber/number-011-expected.txt:
+        * java/lc3/ConvertString/string-006-expected.txt:
+        * java/lc3/ConvertString/string-007-n-expected.txt:
+        * java/lc3/ConvertUndefined/undefined-002-expected.txt:
+        * java/lc3/ConvertUndefined/undefined-003-expected.txt:
+        * java/lc3/JSBoolean/boolean-005-n-expected.txt:
+        * java/lc3/JSNumber/ToDouble-002-expected.txt:
+        * java/lc3/JSObject/ToJSObject-001-expected.txt:
+        * java/lc3/JSObject/ToObject-001-expected.txt:
+        * java/lc3/JavaObject/JavaObjectFieldOrMethod-001-expected.txt:
+        * platform/mac-snowleopard/canvas/philip/tests/2d.imageData.create1.type-expected.txt:
+        * platform/mac-snowleopard/canvas/philip/tests/2d.imageData.create2.type-expected.txt:
+        * platform/mac-snowleopard/canvas/philip/tests/2d.imageData.get.type-expected.txt:
+        * platform/mac/compositing/reflections/reflection-opacity-expected.txt:
+        * platform/mac/fast/css/variables/remove-variable-test-expected.txt:
+        * platform/mac/fast/css/variables/set-variable-test-expected.txt:
+        * platform/mac/fast/css/variables/variable-iteration-test-expected.txt:
+        * platform/mac/fast/events/updateLayoutForHitTest-expected.txt:
+        * platform/mac/svg/custom/createelement-expected.txt:
+        * platform/mac/tables/mozilla/bugs/bug53690-1-expected.txt:
+        * platform/mac/tables/mozilla_expected_failures/bugs/bug92868_1-expected.txt:
+        * plugins/npruntime/object-from-destroyed-plugin-expected.txt:
+        * plugins/npruntime/plugin-scriptable-object-invoke-default-expected.txt:
+        * svg/custom/use-nested-missing-target-removed-expected.txt:
+        * svg/dom/svgpath-out-of-bounds-getPathSeg-expected.txt:
+
 2010-11-15  Alexey Proskuryakov  <ap at apple.com>
 
         Reviewed by Darin Adler.
diff --git a/LayoutTests/fast/css/font-face-descriptor-multiple-values-parsing-expected.txt b/LayoutTests/fast/css/font-face-descriptor-multiple-values-parsing-expected.txt
index 4e5b5c8..5c2187f 100644
--- a/LayoutTests/fast/css/font-face-descriptor-multiple-values-parsing-expected.txt
+++ b/LayoutTests/fast/css/font-face-descriptor-multiple-values-parsing-expected.txt
@@ -8,23 +8,23 @@ PASS test("font-weight", "all") is "all"
 PASS test("font-weight", "100, 200") is "100, 200"
 PASS test("font-weight", "bold, normal") is "bold, normal"
 PASS test("font-weight", "100, 200, 300, 400, 500, 600, 700, 100") is "100, 200, 300, 400, 500, 600, 700, 100"
-PASS test("font-weight", "all, 100") threw exception TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object..
-PASS test("font-weight", "bold, normal, all") threw exception TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object..
-PASS test("font-weight", "") threw exception TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object..
+PASS test("font-weight", "all, 100") threw exception TypeError: 'null' is not an object (evaluating 'style.sheet.rules[0].style.getPropertyCSSValue(property).cssText').
+PASS test("font-weight", "bold, normal, all") threw exception TypeError: 'null' is not an object (evaluating 'style.sheet.rules[0].style.getPropertyCSSValue(property).cssText').
+PASS test("font-weight", "") threw exception TypeError: 'null' is not an object (evaluating 'style.sheet.rules[0].style.getPropertyCSSValue(property).cssText').
 PASS test("font-style", "normal") is "normal"
 PASS test("font-style", "italic") is "italic"
 PASS test("font-style", "normal, oblique") is "normal, oblique"
 PASS test("font-style", "all") is "all"
-PASS test("font-style", "all, normal") threw exception TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object..
-PASS test("font-style", "italic, all") threw exception TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object..
-PASS test("font-style", "") threw exception TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object..
+PASS test("font-style", "all, normal") threw exception TypeError: 'null' is not an object (evaluating 'style.sheet.rules[0].style.getPropertyCSSValue(property).cssText').
+PASS test("font-style", "italic, all") threw exception TypeError: 'null' is not an object (evaluating 'style.sheet.rules[0].style.getPropertyCSSValue(property).cssText').
+PASS test("font-style", "") threw exception TypeError: 'null' is not an object (evaluating 'style.sheet.rules[0].style.getPropertyCSSValue(property).cssText').
 PASS test("font-variant", "normal") is "normal"
 PASS test("font-variant", "small-caps") is "small-caps"
 PASS test("font-variant", "normal, small-caps") is "normal, small-caps"
 PASS test("font-variant", "all") is "all"
-PASS test("font-variant", "all, normal") threw exception TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object..
-PASS test("font-variant", "small-caps, all") threw exception TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object..
-PASS test("font-variant", "") threw exception TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object..
+PASS test("font-variant", "all, normal") threw exception TypeError: 'null' is not an object (evaluating 'style.sheet.rules[0].style.getPropertyCSSValue(property).cssText').
+PASS test("font-variant", "small-caps, all") threw exception TypeError: 'null' is not an object (evaluating 'style.sheet.rules[0].style.getPropertyCSSValue(property).cssText').
+PASS test("font-variant", "") threw exception TypeError: 'null' is not an object (evaluating 'style.sheet.rules[0].style.getPropertyCSSValue(property).cssText').
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/css/resources/font-face-descriptor-multiple-values-parsing.js b/LayoutTests/fast/css/resources/font-face-descriptor-multiple-values-parsing.js
index c5acda6..ed329ef 100644
--- a/LayoutTests/fast/css/resources/font-face-descriptor-multiple-values-parsing.js
+++ b/LayoutTests/fast/css/resources/font-face-descriptor-multiple-values-parsing.js
@@ -16,24 +16,24 @@ shouldBe('test("font-weight", "all")', '"all"');
 shouldBe('test("font-weight", "100, 200")', '"100, 200"');
 shouldBe('test("font-weight", "bold, normal")', '"bold, normal"');
 shouldBe('test("font-weight", "100, 200, 300, 400, 500, 600, 700, 100")', '"100, 200, 300, 400, 500, 600, 700, 100"');
-shouldThrow('test("font-weight", "all, 100")', '"TypeError: Result of expression \'style.sheet.rules[0].style.getPropertyCSSValue(property)\' [null] is not an object."');
-shouldThrow('test("font-weight", "bold, normal, all")', '"TypeError: Result of expression \'style.sheet.rules[0].style.getPropertyCSSValue(property)\' [null] is not an object."');
-shouldThrow('test("font-weight", "")', '"TypeError: Result of expression \'style.sheet.rules[0].style.getPropertyCSSValue(property)\' [null] is not an object."');
+shouldThrow('test("font-weight", "all, 100")', '"TypeError: \'null\' is not an object (evaluating \'style.sheet.rules[0].style.getPropertyCSSValue(property).cssText\')"');
+shouldThrow('test("font-weight", "bold, normal, all")', '"TypeError: \'null\' is not an object (evaluating \'style.sheet.rules[0].style.getPropertyCSSValue(property).cssText\')"');
+shouldThrow('test("font-weight", "")', '"TypeError: \'null\' is not an object (evaluating \'style.sheet.rules[0].style.getPropertyCSSValue(property).cssText\')"');
 
 shouldBe('test("font-style", "normal")', '"normal"');
 shouldBe('test("font-style", "italic")', '"italic"');
 shouldBe('test("font-style", "normal, oblique")', '"normal, oblique"');
 shouldBe('test("font-style", "all")', '"all"');
-shouldThrow('test("font-style", "all, normal")', '"TypeError: Result of expression \'style.sheet.rules[0].style.getPropertyCSSValue(property)\' [null] is not an object."');
-shouldThrow('test("font-style", "italic, all")', '"TypeError: Result of expression \'style.sheet.rules[0].style.getPropertyCSSValue(property)\' [null] is not an object."');
-shouldThrow('test("font-style", "")', '"TypeError: Result of expression \'style.sheet.rules[0].style.getPropertyCSSValue(property)\' [null] is not an object."');
+shouldThrow('test("font-style", "all, normal")', '"TypeError: \'null\' is not an object (evaluating \'style.sheet.rules[0].style.getPropertyCSSValue(property).cssText\')"');
+shouldThrow('test("font-style", "italic, all")', '"TypeError: \'null\' is not an object (evaluating \'style.sheet.rules[0].style.getPropertyCSSValue(property).cssText\')"');
+shouldThrow('test("font-style", "")', '"TypeError: \'null\' is not an object (evaluating \'style.sheet.rules[0].style.getPropertyCSSValue(property).cssText\')"');
 
 shouldBe('test("font-variant", "normal")', '"normal"');
 shouldBe('test("font-variant", "small-caps")', '"small-caps"');
 shouldBe('test("font-variant", "normal, small-caps")', '"normal, small-caps"');
 shouldBe('test("font-variant", "all")', '"all"');
-shouldThrow('test("font-variant", "all, normal")', '"TypeError: Result of expression \'style.sheet.rules[0].style.getPropertyCSSValue(property)\' [null] is not an object."');
-shouldThrow('test("font-variant", "small-caps, all")', '"TypeError: Result of expression \'style.sheet.rules[0].style.getPropertyCSSValue(property)\' [null] is not an object."');
-shouldThrow('test("font-variant", "")', '"TypeError: Result of expression \'style.sheet.rules[0].style.getPropertyCSSValue(property)\' [null] is not an object."');
+shouldThrow('test("font-variant", "all, normal")', '"TypeError: \'null\' is not an object (evaluating \'style.sheet.rules[0].style.getPropertyCSSValue(property).cssText\')"');
+shouldThrow('test("font-variant", "small-caps, all")', '"TypeError: \'null\' is not an object (evaluating \'style.sheet.rules[0].style.getPropertyCSSValue(property).cssText\')"');
+shouldThrow('test("font-variant", "")', '"TypeError: \'null\' is not an object (evaluating \'style.sheet.rules[0].style.getPropertyCSSValue(property).cssText\')"');
 
 var successfullyParsed = true;
diff --git a/LayoutTests/fast/css/variables/color-hex-test-expected.txt b/LayoutTests/fast/css/variables/color-hex-test-expected.txt
index 444e6b9..d58e962 100644
--- a/LayoutTests/fast/css/variables/color-hex-test-expected.txt
+++ b/LayoutTests/fast/css/variables/color-hex-test-expected.txt
@@ -1,2 +1,2 @@
-CONSOLE MESSAGE: line 27: TypeError: Result of expression 'declaration' [undefined] is not an object.
+CONSOLE MESSAGE: line 27: TypeError: 'undefined' is not an object (evaluating 'declaration.getVariableValue')
 FAILED
diff --git a/LayoutTests/fast/dom/HTMLSelectElement/named-options-expected.txt b/LayoutTests/fast/dom/HTMLSelectElement/named-options-expected.txt
index 6be4a7a..b01891d 100644
--- a/LayoutTests/fast/dom/HTMLSelectElement/named-options-expected.txt
+++ b/LayoutTests/fast/dom/HTMLSelectElement/named-options-expected.txt
@@ -4,16 +4,16 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 
 Confirm that the option named 'test' is accessible from the select element
-FAIL select1.test.toString() should be [object HTMLOptionElement]. Threw exception TypeError: Result of expression 'select1.test' [undefined] is not an object.
-FAIL select1.test.value should be Value. Threw exception TypeError: Result of expression 'select1.test' [undefined] is not an object.
+FAIL select1.test.toString() should be [object HTMLOptionElement]. Threw exception TypeError: 'undefined' is not an object (evaluating 'select1.test.toString')
+FAIL select1.test.value should be Value. Threw exception TypeError: 'undefined' is not an object (evaluating 'select1.test.value')
 Confirm that the option named 'test' is accessible from the options collection
 PASS select1.options.test.toString() is "[object HTMLOptionElement]"
 PASS select1.options.test.value is "Value"
 Confirm that both options named 'test' are accessible from the select element
-FAIL select2.test.length should be 2. Threw exception TypeError: Result of expression 'select2.test' [undefined] is not an object.
-FAIL select2.test.toString() should be [object NodeList]. Threw exception TypeError: Result of expression 'select2.test' [undefined] is not an object.
-FAIL select2.test[0].value should be Value1. Threw exception TypeError: Result of expression 'select2.test' [undefined] is not an object.
-FAIL select2.test[1].value should be Value2. Threw exception TypeError: Result of expression 'select2.test' [undefined] is not an object.
+FAIL select2.test.length should be 2. Threw exception TypeError: 'undefined' is not an object (evaluating 'select2.test.length')
+FAIL select2.test.toString() should be [object NodeList]. Threw exception TypeError: 'undefined' is not an object (evaluating 'select2.test.toString')
+FAIL select2.test[0].value should be Value1. Threw exception TypeError: 'undefined' is not an object (evaluating 'select2.test[0]')
+FAIL select2.test[1].value should be Value2. Threw exception TypeError: 'undefined' is not an object (evaluating 'select2.test[1]')
 Confirm that both options named 'test' are accessible from the options collection
 PASS select2.options.test.length is 2
 PASS select2.options.test.toString() is "[object NodeList]"
diff --git a/LayoutTests/fast/dom/Range/getClientRects-expected.txt b/LayoutTests/fast/dom/Range/getClientRects-expected.txt
index a028cce..5113773 100644
--- a/LayoutTests/fast/dom/Range/getClientRects-expected.txt
+++ b/LayoutTests/fast/dom/Range/getClientRects-expected.txt
@@ -188,10 +188,10 @@ PASS rects[3].width is 212
 PASS rects[3].height is 247
 Test 9
 FAIL rects.length should be 1. Was 0.
-FAIL rects[0].left should be 8. Threw exception TypeError: Result of expression 'rects[0]' [undefined] is not an object.
-FAIL rects[0].top should be 1903. Threw exception TypeError: Result of expression 'rects[0]' [undefined] is not an object.
-FAIL rects[0].width should be 0. Threw exception TypeError: Result of expression 'rects[0]' [undefined] is not an object.
-FAIL rects[0].height should be 18. Threw exception TypeError: Result of expression 'rects[0]' [undefined] is not an object.
+FAIL rects[0].left should be 8. Threw exception TypeError: 'undefined' is not an object (evaluating 'rects[0].left')
+FAIL rects[0].top should be 1903. Threw exception TypeError: 'undefined' is not an object (evaluating 'rects[0].top')
+FAIL rects[0].width should be 0. Threw exception TypeError: 'undefined' is not an object (evaluating 'rects[0].width')
+FAIL rects[0].height should be 18. Threw exception TypeError: 'undefined' is not an object (evaluating 'rects[0].height')
 Test 9b
 PASS rects.length is 1
 PASS rects[0].left is 8
diff --git a/LayoutTests/fast/dom/SelectorAPI/dumpNodeList-almost-strict-expected.txt b/LayoutTests/fast/dom/SelectorAPI/dumpNodeList-almost-strict-expected.txt
index 8e84590..01b77ec 100644
--- a/LayoutTests/fast/dom/SelectorAPI/dumpNodeList-almost-strict-expected.txt
+++ b/LayoutTests/fast/dom/SelectorAPI/dumpNodeList-almost-strict-expected.txt
@@ -47,38 +47,38 @@ length: 0
 Document.querySelector
 
 [object HTMLDivElement]
-TypeError: Result of expression 'node.querySelector(selectorString)' [null] is not an object.
+TypeError: 'null' is not an object (evaluating 'node.querySelector(selectorString).dump')
 [object HTMLDivElement]
 [object HTMLDivElement]
 [object HTMLDivElement]
 Error: SYNTAX_ERR: DOM Exception 12
 Error: SYNTAX_ERR: DOM Exception 12
-TypeError: Result of expression 'node.querySelector(selectorString)' [null] is not an object.
-TypeError: Result of expression 'node.querySelector(selectorString)' [null] is not an object.
+TypeError: 'null' is not an object (evaluating 'node.querySelector(selectorString).dump')
+TypeError: 'null' is not an object (evaluating 'node.querySelector(selectorString).dump')
 
 Element.querySelector
 
-TypeError: Result of expression 'node.querySelector(selectorString)' [null] is not an object.
+TypeError: 'null' is not an object (evaluating 'node.querySelector(selectorString).dump')
 [object HTMLDivElement]
-TypeError: Result of expression 'node.querySelector(selectorString)' [null] is not an object.
+TypeError: 'null' is not an object (evaluating 'node.querySelector(selectorString).dump')
 [object HTMLDivElement]
 [object HTMLDivElement]
 [object HTMLDivElement]
 Error: SYNTAX_ERR: DOM Exception 12
 Error: SYNTAX_ERR: DOM Exception 12
-TypeError: Result of expression 'node.querySelector(selectorString)' [null] is not an object.
-TypeError: Result of expression 'node.querySelector(selectorString)' [null] is not an object.
+TypeError: 'null' is not an object (evaluating 'node.querySelector(selectorString).dump')
+TypeError: 'null' is not an object (evaluating 'node.querySelector(selectorString).dump')
 
 DocumentFragment.querySelector
 
 [object HTMLDivElement]
 [object HTMLDivElement]
-TypeError: Result of expression 'node.querySelector(selectorString)' [null] is not an object.
+TypeError: 'null' is not an object (evaluating 'node.querySelector(selectorString).dump')
 [object HTMLDivElement]
 [object HTMLDivElement]
 [object HTMLDivElement]
 Error: SYNTAX_ERR: DOM Exception 12
 Error: SYNTAX_ERR: DOM Exception 12
-TypeError: Result of expression 'node.querySelector(selectorString)' [null] is not an object.
-TypeError: Result of expression 'node.querySelector(selectorString)' [null] is not an object.
+TypeError: 'null' is not an object (evaluating 'node.querySelector(selectorString).dump')
+TypeError: 'null' is not an object (evaluating 'node.querySelector(selectorString).dump')
 
diff --git a/LayoutTests/fast/dom/SelectorAPI/dumpNodeList-expected.txt b/LayoutTests/fast/dom/SelectorAPI/dumpNodeList-expected.txt
index 8e84590..01b77ec 100644
--- a/LayoutTests/fast/dom/SelectorAPI/dumpNodeList-expected.txt
+++ b/LayoutTests/fast/dom/SelectorAPI/dumpNodeList-expected.txt
@@ -47,38 +47,38 @@ length: 0
 Document.querySelector
 
 [object HTMLDivElement]
-TypeError: Result of expression 'node.querySelector(selectorString)' [null] is not an object.
+TypeError: 'null' is not an object (evaluating 'node.querySelector(selectorString).dump')
 [object HTMLDivElement]
 [object HTMLDivElement]
 [object HTMLDivElement]
 Error: SYNTAX_ERR: DOM Exception 12
 Error: SYNTAX_ERR: DOM Exception 12
-TypeError: Result of expression 'node.querySelector(selectorString)' [null] is not an object.
-TypeError: Result of expression 'node.querySelector(selectorString)' [null] is not an object.
+TypeError: 'null' is not an object (evaluating 'node.querySelector(selectorString).dump')
+TypeError: 'null' is not an object (evaluating 'node.querySelector(selectorString).dump')
 
 Element.querySelector
 
-TypeError: Result of expression 'node.querySelector(selectorString)' [null] is not an object.
+TypeError: 'null' is not an object (evaluating 'node.querySelector(selectorString).dump')
 [object HTMLDivElement]
-TypeError: Result of expression 'node.querySelector(selectorString)' [null] is not an object.
+TypeError: 'null' is not an object (evaluating 'node.querySelector(selectorString).dump')
 [object HTMLDivElement]
 [object HTMLDivElement]
 [object HTMLDivElement]
 Error: SYNTAX_ERR: DOM Exception 12
 Error: SYNTAX_ERR: DOM Exception 12
-TypeError: Result of expression 'node.querySelector(selectorString)' [null] is not an object.
-TypeError: Result of expression 'node.querySelector(selectorString)' [null] is not an object.
+TypeError: 'null' is not an object (evaluating 'node.querySelector(selectorString).dump')
+TypeError: 'null' is not an object (evaluating 'node.querySelector(selectorString).dump')
 
 DocumentFragment.querySelector
 
 [object HTMLDivElement]
 [object HTMLDivElement]
-TypeError: Result of expression 'node.querySelector(selectorString)' [null] is not an object.
+TypeError: 'null' is not an object (evaluating 'node.querySelector(selectorString).dump')
 [object HTMLDivElement]
 [object HTMLDivElement]
 [object HTMLDivElement]
 Error: SYNTAX_ERR: DOM Exception 12
 Error: SYNTAX_ERR: DOM Exception 12
-TypeError: Result of expression 'node.querySelector(selectorString)' [null] is not an object.
-TypeError: Result of expression 'node.querySelector(selectorString)' [null] is not an object.
+TypeError: 'null' is not an object (evaluating 'node.querySelector(selectorString).dump')
+TypeError: 'null' is not an object (evaluating 'node.querySelector(selectorString).dump')
 
diff --git a/LayoutTests/fast/forms/select-namedItem-expected.txt b/LayoutTests/fast/forms/select-namedItem-expected.txt
index 9a59c87..7a8d71d 100644
--- a/LayoutTests/fast/forms/select-namedItem-expected.txt
+++ b/LayoutTests/fast/forms/select-namedItem-expected.txt
@@ -4,5 +4,5 @@ FOUND ITEM: 2
 FOUND ITEM: 1
 FOUND ITEM: 1
 FOUND ITEM: 1
-ERROR: Result of expression 'item' [null] is not an object.
+ERROR: 'null' is not an object (evaluating 'item.innerHTML')
 
diff --git a/LayoutTests/fast/js/basic-strict-mode-expected.txt b/LayoutTests/fast/js/basic-strict-mode-expected.txt
index a92383f..20c71a9 100644
--- a/LayoutTests/fast/js/basic-strict-mode-expected.txt
+++ b/LayoutTests/fast/js/basic-strict-mode-expected.txt
@@ -10,14 +10,14 @@ PASS testThis.call(false) is false
 PASS testThis.call(undefined) is undefined
 PASS testThis.call('a string') is 'a string'
 PASS testThisDotAccess.call('a string') is 'a string'.length
-PASS testThisDotAccess.call(null) threw exception TypeError: Result of expression 'this' [null] is not an object..
-PASS testThisDotAccess.call(undefined) threw exception TypeError: Result of expression 'this' [undefined] is not an object..
+PASS testThisDotAccess.call(null) threw exception TypeError: 'null' is not an object (evaluating 'this.length').
+PASS testThisDotAccess.call(undefined) threw exception TypeError: 'undefined' is not an object (evaluating 'this.length').
 PASS testThisDotAccess.call(true) is undefined.
 PASS testThisDotAccess.call(false) is undefined.
 PASS testThisDotAccess.call(1) is undefined.
 PASS testThisBracketAccess.call('a string', 'length') is 'a string'.length
-PASS testThisBracketAccess.call(null, 'length') threw exception TypeError: Result of expression 'this' [null] is not an object..
-PASS testThisBracketAccess.call(undefined, 'length') threw exception TypeError: Result of expression 'this' [undefined] is not an object..
+PASS testThisBracketAccess.call(null, 'length') threw exception TypeError: 'null' is not an object (evaluating 'this[prop]').
+PASS testThisBracketAccess.call(undefined, 'length') threw exception TypeError: 'undefined' is not an object (evaluating 'this[prop]').
 PASS testThisBracketAccess.call(true, 'length') is undefined.
 PASS testThisBracketAccess.call(false, 'length') is undefined.
 PASS testThisBracketAccess.call(1, 'length') is undefined.
diff --git a/LayoutTests/fast/js/date-toisostring-expected.txt b/LayoutTests/fast/js/date-toisostring-expected.txt
index a8e82c6..81555f5 100644
--- a/LayoutTests/fast/js/date-toisostring-expected.txt
+++ b/LayoutTests/fast/js/date-toisostring-expected.txt
@@ -3,8 +3,8 @@ Tests for Date.toISOString
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS Date.toISOString.call({}) threw exception TypeError: Result of expression 'Date.toISOString' [undefined] is not an object..
-PASS Date.toISOString.call(0) threw exception TypeError: Result of expression 'Date.toISOString' [undefined] is not an object..
+PASS Date.toISOString.call({}) threw exception TypeError: 'undefined' is not an object (evaluating 'Date.toISOString.call').
+PASS Date.toISOString.call(0) threw exception TypeError: 'undefined' is not an object (evaluating 'Date.toISOString.call').
 PASS new Date(0).toISOString() is '1970-01-01T00:00:00.000Z'
 PASS new Date('1 January 1500 UTC').toISOString() is '1500-01-01T00:00:00.000Z'
 PASS new Date('1 January 2000 UTC').toISOString() is '2000-01-01T00:00:00.000Z'
diff --git a/LayoutTests/fast/js/delete-getters-setters-expected.txt b/LayoutTests/fast/js/delete-getters-setters-expected.txt
index e57ecf2..146b1d5 100644
--- a/LayoutTests/fast/js/delete-getters-setters-expected.txt
+++ b/LayoutTests/fast/js/delete-getters-setters-expected.txt
@@ -3,22 +3,22 @@ This test checks that deletion of properties works properly with getters and set
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS b1.property threw exception TypeError: Result of expression 'b1' [undefined] is not an object..
-PASS a2.property threw exception TypeError: Result of expression 'a2' [undefined] is not an object..
-PASS b3.property threw exception TypeError: Result of expression 'b3' [undefined] is not an object..
-PASS a4.property threw exception TypeError: Result of expression 'a4' [undefined] is not an object..
-PASS b5.property threw exception TypeError: Result of expression 'b5' [undefined] is not an object..
-PASS a6.property threw exception TypeError: Result of expression 'a6' [undefined] is not an object..
-PASS b7.property threw exception TypeError: Result of expression 'b7' [undefined] is not an object..
-PASS a8.property threw exception TypeError: Result of expression 'a8' [undefined] is not an object..
-PASS o1.b.property threw exception TypeError: Result of expression 'o1.b' [undefined] is not an object..
-PASS o1.a.property threw exception TypeError: Result of expression 'o1.a' [undefined] is not an object..
-PASS o3.b.property threw exception TypeError: Result of expression 'o3.b' [undefined] is not an object..
-PASS o4.a.property threw exception TypeError: Result of expression 'o4.a' [undefined] is not an object..
-PASS o5.b.property threw exception TypeError: Result of expression 'o5.b' [undefined] is not an object..
-PASS o6.a.property threw exception TypeError: Result of expression 'o6.a' [undefined] is not an object..
-PASS o7.b.property threw exception TypeError: Result of expression 'o7.b' [undefined] is not an object..
-PASS o8.a.property threw exception TypeError: Result of expression 'o8.a' [undefined] is not an object..
+PASS b1.property threw exception TypeError: 'undefined' is not an object (evaluating 'b1.property').
+PASS a2.property threw exception TypeError: 'undefined' is not an object (evaluating 'a2.property').
+PASS b3.property threw exception TypeError: 'undefined' is not an object (evaluating 'b3.property').
+PASS a4.property threw exception TypeError: 'undefined' is not an object (evaluating 'a4.property').
+PASS b5.property threw exception TypeError: 'undefined' is not an object (evaluating 'b5.property').
+PASS a6.property threw exception TypeError: 'undefined' is not an object (evaluating 'a6.property').
+PASS b7.property threw exception TypeError: 'undefined' is not an object (evaluating 'b7.property').
+PASS a8.property threw exception TypeError: 'undefined' is not an object (evaluating 'a8.property').
+PASS o1.b.property threw exception TypeError: 'undefined' is not an object (evaluating 'o1.b.property').
+PASS o1.a.property threw exception TypeError: 'undefined' is not an object (evaluating 'o1.a.property').
+PASS o3.b.property threw exception TypeError: 'undefined' is not an object (evaluating 'o3.b.property').
+PASS o4.a.property threw exception TypeError: 'undefined' is not an object (evaluating 'o4.a.property').
+PASS o5.b.property threw exception TypeError: 'undefined' is not an object (evaluating 'o5.b.property').
+PASS o6.a.property threw exception TypeError: 'undefined' is not an object (evaluating 'o6.a.property').
+PASS o7.b.property threw exception TypeError: 'undefined' is not an object (evaluating 'o7.b.property').
+PASS o8.a.property threw exception TypeError: 'undefined' is not an object (evaluating 'o8.a.property').
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/js/exception-expression-offset-expected.txt b/LayoutTests/fast/js/exception-expression-offset-expected.txt
index 24a3b3f..d5ed22d 100644
--- a/LayoutTests/fast/js/exception-expression-offset-expected.txt
+++ b/LayoutTests/fast/js/exception-expression-offset-expected.txt
@@ -5,166 +5,85 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 
 Testing 'undefined.a++'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 9 is true
-PASS ex.expressionEndOffset == 11 is true
-PASS ex.message == "Result of expression 'undefined' [undefined] is not an object." is true
+PASS ex.message == "'undefined' is not an object (evaluating 'undefined.a')" is true
 
 Testing '++undefined.a'
-PASS ex.expressionBeginOffset == 2 is true
-PASS ex.expressionCaretOffset == 11 is true
-PASS ex.expressionEndOffset == 13 is true
-PASS ex.message == "Result of expression 'undefined' [undefined] is not an object." is true
+PASS ex.message == "'undefined' is not an object (evaluating 'undefined.a')" is true
 
 Testing 'undefined[0]++'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 9 is true
-PASS ex.expressionEndOffset == 12 is true
-PASS ex.message == "Result of expression 'undefined' [undefined] is not an object." is true
+PASS ex.message == "'undefined' is not an object (evaluating 'undefined[0]')" is true
 
 Testing '++undefined[1]'
-PASS ex.expressionBeginOffset == 2 is true
-PASS ex.expressionCaretOffset == 11 is true
-PASS ex.expressionEndOffset == 14 is true
-PASS ex.message == "Result of expression 'undefined' [undefined] is not an object." is true
+PASS ex.message == "'undefined' is not an object (evaluating 'undefined[1]')" is true
 
 Testing 'undefined.b'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 9 is true
-PASS ex.expressionEndOffset == 11 is true
-PASS ex.message == "Result of expression 'undefined' [undefined] is not an object." is true
+PASS ex.message == "'undefined' is not an object (evaluating 'undefined.b')" is true
 
 Testing 'undefined[0]'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 9 is true
-PASS ex.expressionEndOffset == 12 is true
-PASS ex.message == "Result of expression 'undefined' [undefined] is not an object." is true
+PASS ex.message == "'undefined' is not an object (evaluating 'undefined[0]')" is true
 
 Testing 'undefined.b += 1'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 9 is true
-PASS ex.expressionEndOffset == 11 is true
-PASS ex.message == "Result of expression 'undefined' [undefined] is not an object." is true
+PASS ex.message == "'undefined' is not an object (evaluating 'undefined.b')" is true
 
 Testing 'undefined[0] += 1'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 9 is true
-PASS ex.expressionEndOffset == 12 is true
-PASS ex.message == "Result of expression 'undefined' [undefined] is not an object." is true
+PASS ex.message == "'undefined' is not an object (evaluating 'undefined[0]')" is true
 
 Testing 'undefined()'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 9 is true
-PASS ex.expressionEndOffset == 11 is true
-PASS ex.message == "Result of expression 'undefined' [undefined] is not a function." is true
+PASS ex.message == "'undefined' is not a function (evaluating 'undefined()')" is true
 
 Testing 'new undefined()'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 13 is true
-PASS ex.expressionEndOffset == 15 is true
-PASS ex.message == "Result of expression 'undefined' [undefined] is not a constructor." is true
+PASS ex.message == "'undefined' is not a constructor (evaluating 'new undefined()')" is true
 
 Testing '({}).b()'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 6 is true
-PASS ex.expressionEndOffset == 8 is true
-PASS ex.message == "Result of expression '({}).b' [undefined] is not a function." is true
+PASS ex.message == "'undefined' is not a function (evaluating '({}).b()')" is true
 
 Testing 'new {}.b()'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 8 is true
-PASS ex.expressionEndOffset == 10 is true
-PASS ex.message == "Result of expression '{}.b' [undefined] is not a constructor." is true
+PASS ex.message == "'undefined' is not a constructor (evaluating 'new {}.b()')" is true
 
 Testing '1()'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 1 is true
-PASS ex.expressionEndOffset == 3 is true
-PASS ex.message == "Result of expression '1' [1] is not a function." is true
+PASS ex.message == "'1' is not a function (evaluating '1()')" is true
 
 Testing 'new 1()'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 5 is true
-PASS ex.expressionEndOffset == 7 is true
-PASS ex.message == "Result of expression '1' [1] is not a constructor." is true
+PASS ex.message == "'1' is not a constructor (evaluating 'new 1()')" is true
 
 Testing 'throw { message : 'thrown object' }'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == undefined is true
-PASS ex.expressionEndOffset == 35 is true
 PASS ex.message == "thrown object" is true
 
 Testing '1 in undefined'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 5 is true
-PASS ex.expressionEndOffset == 14 is true
-PASS ex.message == "Result of expression 'undefined' [undefined] is not a valid argument for 'in'." is true
+PASS ex.message == "'undefined' is not a valid argument for 'in' (evaluating '1 in undefined')" is true
 
 Testing '1 instanceof undefined'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 13 is true
-PASS ex.expressionEndOffset == 22 is true
-PASS ex.message == "Result of expression 'undefined' [undefined] is not a valid argument for 'instanceof'." is true
+PASS ex.message == "'undefined' is not a valid argument for 'instanceof' (evaluating '1 instanceof undefined')" is true
 
 Testing 'for (undefined.b in [1]) {}'
-PASS ex.expressionBeginOffset == 5 is true
-PASS ex.expressionCaretOffset == 14 is true
-PASS ex.expressionEndOffset == 16 is true
-PASS ex.message == "Result of expression 'undefined' [undefined] is not an object." is true
+PASS ex.message == "'undefined' is not an object (evaluating 'undefined.b')" is true
 
 Testing 'for (undefined[0] in [1]) {}'
-PASS ex.expressionBeginOffset == 5 is true
-PASS ex.expressionCaretOffset == 14 is true
-PASS ex.expressionEndOffset == 17 is true
-PASS ex.message == "Result of expression 'undefined' [undefined] is not an object." is true
+PASS ex.message == "'undefined' is not an object (evaluating 'undefined[0]')" is true
 
 Testing 'undefined.a = 5'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 9 is true
-PASS ex.expressionEndOffset == 15 is true
-PASS ex.message == "Result of expression 'undefined' [undefined] is not an object." is true
+PASS ex.message == "'undefined' is not an object (evaluating 'undefined.a = 5')" is true
 
 Testing 'undefined[0] = 5'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 9 is true
-PASS ex.expressionEndOffset == 16 is true
-PASS ex.message == "Result of expression 'undefined' [undefined] is not an object." is true
+PASS ex.message == "'undefined' is not an object (evaluating 'undefined[0] = 5')" is true
 
 Testing '({b:undefined}).b.a = 5'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 17 is true
-PASS ex.expressionEndOffset == 23 is true
-PASS ex.message == "Result of expression '({b:undefined}).b' [undefined] is not an object." is true
+PASS ex.message == "'undefined' is not an object (evaluating '({b:undefined}).b.a = 5')" is true
 
 Testing '({b:undefined}).b[0] = 5'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 17 is true
-PASS ex.expressionEndOffset == 24 is true
-PASS ex.message == "Result of expression '({b:undefined}).b' [undefined] is not an object." is true
+PASS ex.message == "'undefined' is not an object (evaluating '({b:undefined}).b[0] = 5')" is true
 
 Testing 'undefined.a += 5'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 9 is true
-PASS ex.expressionEndOffset == 11 is true
-PASS ex.message == "Result of expression 'undefined' [undefined] is not an object." is true
+PASS ex.message == "'undefined' is not an object (evaluating 'undefined.a')" is true
 
 Testing 'undefined[0] += 5'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 9 is true
-PASS ex.expressionEndOffset == 12 is true
-PASS ex.message == "Result of expression 'undefined' [undefined] is not an object." is true
+PASS ex.message == "'undefined' is not an object (evaluating 'undefined[0]')" is true
 
 Testing '({b:undefined}).b.a += 5'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 17 is true
-PASS ex.expressionEndOffset == 19 is true
-PASS ex.message == "Result of expression '({b:undefined}).b' [undefined] is not an object." is true
+PASS ex.message == "'undefined' is not an object (evaluating '({b:undefined}).b.a')" is true
 
 Testing '({b:undefined}).b[0] += 5'
-PASS ex.expressionBeginOffset == 0 is true
-PASS ex.expressionCaretOffset == 17 is true
-PASS ex.expressionEndOffset == 20 is true
-PASS ex.message == "Result of expression '({b:undefined}).b' [undefined] is not an object." is true
+PASS ex.message == "'undefined' is not an object (evaluating '({b:undefined}).b[0]')" is true
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/js/exception-for-nonobject-expected.txt b/LayoutTests/fast/js/exception-for-nonobject-expected.txt
index 640940e..115c857 100644
--- a/LayoutTests/fast/js/exception-for-nonobject-expected.txt
+++ b/LayoutTests/fast/js/exception-for-nonobject-expected.txt
@@ -3,8 +3,8 @@ Test for correct handling of exceptions from instanceof and 'new' expressions
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS new {}.undefined threw exception TypeError: Result of expression '{}.undefined' [undefined] is not a constructor..
-PASS 1 instanceof {}.undefined threw exception TypeError: Result of expression '{}.undefined' [undefined] is not a valid argument for 'instanceof'..
+PASS new {}.undefined threw exception TypeError: 'undefined' is not a constructor (evaluating 'new {}.undefined').
+PASS 1 instanceof {}.undefined threw exception TypeError: 'undefined' is not a valid argument for 'instanceof' (evaluating '1 instanceof {}.undefined').
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/js/exception-thrown-from-new-expected.txt b/LayoutTests/fast/js/exception-thrown-from-new-expected.txt
index 2f8b866..e07d54c 100644
--- a/LayoutTests/fast/js/exception-thrown-from-new-expected.txt
+++ b/LayoutTests/fast/js/exception-thrown-from-new-expected.txt
@@ -1,5 +1,5 @@
 This page tests exceptions thrown from 'new' expressions. If the test passes, you'll see a series of PASS messages below.
 
-PASS: e1 should be 'TypeError: Result of expression 'f' [undefined] is not a constructor.' and is.
-PASS: e2 should be 'TypeError: Result of expression 'g' [undefined] is not a function.' and is.
+PASS: e1 should be 'TypeError: 'undefined' is not a constructor (evaluating 'new f')' and is.
+PASS: e2 should be 'TypeError: 'undefined' is not a function (evaluating 'g()')' and is.
 
diff --git a/LayoutTests/fast/js/exception-thrown-from-new.html b/LayoutTests/fast/js/exception-thrown-from-new.html
index 7abea8f..88ac6b8 100644
--- a/LayoutTests/fast/js/exception-thrown-from-new.html
+++ b/LayoutTests/fast/js/exception-thrown-from-new.html
@@ -28,7 +28,7 @@ if (window.layoutTestController)
         var f;
         new f;
     } catch(e1) {
-        shouldBe(e1, "e1", "TypeError: Result of expression 'f' [undefined] is not a constructor.");
+        shouldBe(e1, "e1", "TypeError: 'undefined' is not a constructor (evaluating 'new f')");
     }
 })();
 
@@ -38,7 +38,7 @@ if (window.layoutTestController)
         var g;
         new f(g());
     } catch(e2) {
-        shouldBe(e2, "e2", "TypeError: Result of expression 'g' [undefined] is not a function.");
+        shouldBe(e2, "e2", "TypeError: 'undefined' is not a function (evaluating 'g()')");
     }
 })();
 </script>
diff --git a/LayoutTests/fast/js/instance-of-immediates-expected.txt b/LayoutTests/fast/js/instance-of-immediates-expected.txt
index 54c4fd4..e81902a 100644
--- a/LayoutTests/fast/js/instance-of-immediates-expected.txt
+++ b/LayoutTests/fast/js/instance-of-immediates-expected.txt
@@ -3,12 +3,12 @@ This test makes sure that instance of behaves correctly when the value, construc
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS (1 instanceof 1) threw exception TypeError: Result of expression '1' [1] is not a valid argument for 'instanceof'..
-PASS ({} instanceof 1) threw exception TypeError: Result of expression '1' [1] is not a valid argument for 'instanceof'..
-PASS (obj instanceof 1) threw exception TypeError: Result of expression '1' [1] is not a valid argument for 'instanceof'..
-PASS (1 instanceof {}) threw exception TypeError: Result of expression '{}' [[object Object]] is not a valid argument for 'instanceof'..
-PASS ({} instanceof {}) threw exception TypeError: Result of expression '{}' [[object Object]] is not a valid argument for 'instanceof'..
-PASS (obj instanceof {}) threw exception TypeError: Result of expression '{}' [[object Object]] is not a valid argument for 'instanceof'..
+PASS (1 instanceof 1) threw exception TypeError: '1' is not a valid argument for 'instanceof' (evaluating '1 instanceof 1').
+PASS ({} instanceof 1) threw exception TypeError: '1' is not a valid argument for 'instanceof' (evaluating '{} instanceof 1').
+PASS (obj instanceof 1) threw exception TypeError: '1' is not a valid argument for 'instanceof' (evaluating 'obj instanceof 1').
+PASS (1 instanceof {}) threw exception TypeError: '[object Object]' is not a valid argument for 'instanceof' (evaluating '1 instanceof {}').
+PASS ({} instanceof {}) threw exception TypeError: '[object Object]' is not a valid argument for 'instanceof' (evaluating '{} instanceof {}').
+PASS (obj instanceof {}) threw exception TypeError: '[object Object]' is not a valid argument for 'instanceof' (evaluating 'obj instanceof {}').
 PASS (1 instanceof Constructor) is false
 PASS ({} instanceof Constructor) is false
 PASS (obj instanceof Constructor) is true
diff --git a/LayoutTests/fast/js/script-tests/exception-expression-offset.js b/LayoutTests/fast/js/script-tests/exception-expression-offset.js
index 79d0376..079841e 100644
--- a/LayoutTests/fast/js/script-tests/exception-expression-offset.js
+++ b/LayoutTests/fast/js/script-tests/exception-expression-offset.js
@@ -8,39 +8,37 @@ function testException(code, errorStart, errorCaret, errorEnd, message) {
         eval(code);
     } catch (e) {
         ex = e;
-        shouldBeTrue('ex.expressionBeginOffset == ' + errorStart);
-        shouldBeTrue('ex.expressionCaretOffset == ' + errorCaret);
-        shouldBeTrue('ex.expressionEndOffset == ' + errorEnd);
+        // begin/caret/end are not presently exposed in a web facing interface, so cannot be directly checked.
         shouldBeTrue('ex.message == "' + message +'"');
     }
 }
 
-testException("undefined.a++", 0, 9, 11, "Result of expression 'undefined' [undefined] is not an object.");
-testException("++undefined.a", 2, 11, 13, "Result of expression 'undefined' [undefined] is not an object.");
-testException("undefined[0]++", 0, 9, 12, "Result of expression 'undefined' [undefined] is not an object.");
-testException("++undefined[1]", 2, 11, 14, "Result of expression 'undefined' [undefined] is not an object.");
-testException("undefined.b", 0, 9, 11, "Result of expression 'undefined' [undefined] is not an object.");
-testException("undefined[0]", 0, 9, 12, "Result of expression 'undefined' [undefined] is not an object.");
-testException("undefined.b += 1", 0, 9, 11, "Result of expression 'undefined' [undefined] is not an object.");
-testException("undefined[0] += 1", 0, 9, 12, "Result of expression 'undefined' [undefined] is not an object.");
-testException("undefined()", 0, 9, 11, "Result of expression 'undefined' [undefined] is not a function.");
-testException("new undefined()", 0, 13, 15, "Result of expression 'undefined' [undefined] is not a constructor.");
-testException("({}).b()", 0, 6, 8, "Result of expression '({}).b' [undefined] is not a function.");
-testException("new {}.b()", 0, 8, 10, "Result of expression '{}.b' [undefined] is not a constructor.");
-testException("1()", 0, 1, 3, "Result of expression '1' [1] is not a function.");
-testException("new 1()", 0, 5, 7, "Result of expression '1' [1] is not a constructor.");
+testException("undefined.a++", 0, 9, 11, "'undefined' is not an object (evaluating 'undefined.a')");
+testException("++undefined.a", 2, 11, 13, "'undefined' is not an object (evaluating 'undefined.a')");
+testException("undefined[0]++", 0, 9, 12, "'undefined' is not an object (evaluating 'undefined[0]')");
+testException("++undefined[1]", 2, 11, 14, "'undefined' is not an object (evaluating 'undefined[1]')");
+testException("undefined.b", 0, 9, 11, "'undefined' is not an object (evaluating 'undefined.b')");
+testException("undefined[0]", 0, 9, 12, "'undefined' is not an object (evaluating 'undefined[0]')");
+testException("undefined.b += 1", 0, 9, 11, "'undefined' is not an object (evaluating 'undefined.b')");
+testException("undefined[0] += 1", 0, 9, 12, "'undefined' is not an object (evaluating 'undefined[0]')");
+testException("undefined()", 0, 9, 11, "'undefined' is not a function (evaluating 'undefined()')");
+testException("new undefined()", 0, 13, 15, "'undefined' is not a constructor (evaluating 'new undefined()')");
+testException("({}).b()", 0, 6, 8, "'undefined' is not a function (evaluating '({}).b()')");
+testException("new {}.b()", 0, 8, 10, "'undefined' is not a constructor (evaluating 'new {}.b()')");
+testException("1()", 0, 1, 3, "'1' is not a function (evaluating '1()')");
+testException("new 1()", 0, 5, 7, "'1' is not a constructor (evaluating 'new 1()')");
 testException("throw { message : 'thrown object' }", 0, undefined, 35, "thrown object");
-testException("1 in undefined", 0, 5, 14, "Result of expression 'undefined' [undefined] is not a valid argument for 'in'.");
-testException("1 instanceof undefined", 0, 13, 22, "Result of expression 'undefined' [undefined] is not a valid argument for 'instanceof'.");
-testException("for (undefined.b in [1]) {}", 5, 14, 16, "Result of expression 'undefined' [undefined] is not an object.");
-testException("for (undefined[0] in [1]) {}", 5, 14, 17, "Result of expression 'undefined' [undefined] is not an object.");
-testException("undefined.a = 5", 0, 9, 15, "Result of expression 'undefined' [undefined] is not an object.");
-testException("undefined[0] = 5", 0, 9, 16, "Result of expression 'undefined' [undefined] is not an object.");
-testException("({b:undefined}).b.a = 5", 0, 17, 23, "Result of expression '({b:undefined}).b' [undefined] is not an object.");
-testException("({b:undefined}).b[0] = 5", 0, 17, 24, "Result of expression '({b:undefined}).b' [undefined] is not an object.");
-testException("undefined.a += 5", 0, 9, 11, "Result of expression 'undefined' [undefined] is not an object.");
-testException("undefined[0] += 5", 0, 9, 12, "Result of expression 'undefined' [undefined] is not an object.");
-testException("({b:undefined}).b.a += 5", 0, 17, 19, "Result of expression '({b:undefined}).b' [undefined] is not an object.");
-testException("({b:undefined}).b[0] += 5", 0, 17, 20, "Result of expression '({b:undefined}).b' [undefined] is not an object.");
+testException("1 in undefined", 0, 5, 14, "'undefined' is not a valid argument for 'in' (evaluating '1 in undefined')");
+testException("1 instanceof undefined", 0, 13, 22, "'undefined' is not a valid argument for 'instanceof' (evaluating '1 instanceof undefined')");
+testException("for (undefined.b in [1]) {}", 5, 14, 16, "'undefined' is not an object (evaluating 'undefined.b')");
+testException("for (undefined[0] in [1]) {}", 5, 14, 17, "'undefined' is not an object (evaluating 'undefined[0]')");
+testException("undefined.a = 5", 0, 9, 15, "'undefined' is not an object (evaluating 'undefined.a = 5')");
+testException("undefined[0] = 5", 0, 9, 16, "'undefined' is not an object (evaluating 'undefined[0] = 5')");
+testException("({b:undefined}).b.a = 5", 0, 17, 23, "'undefined' is not an object (evaluating '({b:undefined}).b.a = 5')");
+testException("({b:undefined}).b[0] = 5", 0, 17, 24, "'undefined' is not an object (evaluating '({b:undefined}).b[0] = 5')");
+testException("undefined.a += 5", 0, 9, 11, "'undefined' is not an object (evaluating 'undefined.a')");
+testException("undefined[0] += 5", 0, 9, 12, "'undefined' is not an object (evaluating 'undefined[0]')");
+testException("({b:undefined}).b.a += 5", 0, 17, 19, "'undefined' is not an object (evaluating '({b:undefined}).b.a')");
+testException("({b:undefined}).b[0] += 5", 0, 17, 20, "'undefined' is not an object (evaluating '({b:undefined}).b[0]')");
 
 var successfullyParsed = true;
diff --git a/LayoutTests/fast/js/sputnik/Conformance/08_Types/8.6_The_Object_Type/8.6.2_Internal_Properties_and_Methods/S8.6.2_A7-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/08_Types/8.6_The_Object_Type/8.6.2_Internal_Properties_and_Methods/S8.6.2_A7-expected.txt
index d5d6d62..d1b2d6b 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/08_Types/8.6_The_Object_Type/8.6.2_Internal_Properties_and_Methods/S8.6.2_A7-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/08_Types/8.6_The_Object_Type/8.6.2_Internal_Properties_and_Methods/S8.6.2_A7-expected.txt
@@ -1,6 +1,6 @@
 S8.6.2_A7
 
-PASS TypeError: Result of expression 'Math' [[object Math]] is not a constructor.
+PASS TypeError: '[object Math]' is not a constructor (evaluating 'new Math')
 
 TEST COMPLETE
 
diff --git a/LayoutTests/fast/js/sputnik/Conformance/13_Function_Definition/S13_A17_T2-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/13_Function_Definition/S13_A17_T2-expected.txt
index fa7c271..da3f8ea 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/13_Function_Definition/S13_A17_T2-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/13_Function_Definition/S13_A17_T2-expected.txt
@@ -1,6 +1,6 @@
 S13_A17_T2
 
-TypeError: Result of expression '__func' [undefined] is not a function.
+TypeError: 'undefined' is not a function (evaluating '__func()')
 PASS 
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/S15.1_A1_T1-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/S15.1_A1_T1-expected.txt
index ccfeadf..723f234 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/S15.1_A1_T1-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/S15.1_A1_T1-expected.txt
@@ -1,6 +1,6 @@
 S15.1_A1_T1
 
-PASS TypeError: Result of expression 'this' [[object DOMWindow]] is not a constructor.
+PASS TypeError: '[object DOMWindow]' is not a constructor (evaluating 'new this')
 
 TEST COMPLETE
 
diff --git a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/S15.1_A1_T2-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/S15.1_A1_T2-expected.txt
index 411aab0..b3a268c 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/S15.1_A1_T2-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/S15.1_A1_T2-expected.txt
@@ -1,6 +1,6 @@
 S15.1_A1_T2
 
-PASS TypeError: Result of expression 'this' [[object DOMWindow]] is not a constructor.
+PASS TypeError: '[object DOMWindow]' is not a constructor (evaluating 'new this()')
 
 TEST COMPLETE
 
diff --git a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/S15.1_A2_T1-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/S15.1_A2_T1-expected.txt
index eb27df9..25ecec3 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/S15.1_A2_T1-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/S15.1_A2_T1-expected.txt
@@ -1,6 +1,6 @@
 S15.1_A2_T1
 
-PASS TypeError: Result of expression 'this' [[object DOMWindow]] is not a function.
+PASS TypeError: '[object DOMWindow]' is not a function (evaluating 'this()')
 
 TEST COMPLETE
 
diff --git a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.2_Object.prototype.toString/S15.2.4.2_A7-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.2_Object.prototype.toString/S15.2.4.2_A7-expected.txt
index 44cd888..7c07e0b 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.2_Object.prototype.toString/S15.2.4.2_A7-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.2_Object.prototype.toString/S15.2.4.2_A7-expected.txt
@@ -1,6 +1,6 @@
 S15.2.4.2_A7
 
-TypeError: Result of expression 'FACTORY' [function toString() { [native code] }] is not a constructor.
+TypeError: 'function toString() { [native code] }' is not a constructor (evaluating 'new FACTORY')
 PASS 
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.3_Object.prototype.toLocaleString/S15.2.4.3_A7-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.3_Object.prototype.toLocaleString/S15.2.4.3_A7-expected.txt
index 27c16fb..462906c 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.3_Object.prototype.toLocaleString/S15.2.4.3_A7-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.3_Object.prototype.toLocaleString/S15.2.4.3_A7-expected.txt
@@ -1,6 +1,6 @@
 S15.2.4.3_A7
 
-TypeError: Result of expression 'FACTORY' [function toLocaleString() { [native code] }] is not a constructor.
+TypeError: 'function toLocaleString() { [native code] }' is not a constructor (evaluating 'new FACTORY')
 PASS 
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A7-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A7-expected.txt
index e5af2b0..caeb5d7 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A7-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A7-expected.txt
@@ -1,6 +1,6 @@
 S15.2.4.4_A7
 
-TypeError: Result of expression 'FACTORY' [function valueOf() { [native code] }] is not a constructor.
+TypeError: 'function valueOf() { [native code] }' is not a constructor (evaluating 'new FACTORY')
 PASS 
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.5_Object.prototype.hasOwnProperty/S15.2.4.5_A7-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.5_Object.prototype.hasOwnProperty/S15.2.4.5_A7-expected.txt
index 50f969e..41da7d1 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.5_Object.prototype.hasOwnProperty/S15.2.4.5_A7-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.5_Object.prototype.hasOwnProperty/S15.2.4.5_A7-expected.txt
@@ -1,6 +1,6 @@
 S15.2.4.5_A7
 
-TypeError: Result of expression 'FACTORY' [function hasOwnProperty() { [native code] }] is not a constructor.
+TypeError: 'function hasOwnProperty() { [native code] }' is not a constructor (evaluating 'new FACTORY')
 PASS 
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.6_Object.prototype.isPrototypeOf/S15.2.4.6_A7-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.6_Object.prototype.isPrototypeOf/S15.2.4.6_A7-expected.txt
index 0f1915e..4ba6bb7 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.6_Object.prototype.isPrototypeOf/S15.2.4.6_A7-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.6_Object.prototype.isPrototypeOf/S15.2.4.6_A7-expected.txt
@@ -1,6 +1,6 @@
 S15.2.4.6_A7
 
-TypeError: Result of expression 'FACTORY' [function isPrototypeOf() { [native code] }] is not a constructor.
+TypeError: 'function isPrototypeOf() { [native code] }' is not a constructor (evaluating 'new FACTORY')
 PASS 
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.7_Object.prototype.propertyIsEnumerable/S15.2.4.7_A7-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.7_Object.prototype.propertyIsEnumerable/S15.2.4.7_A7-expected.txt
index ed0ca29..33556b1 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.7_Object.prototype.propertyIsEnumerable/S15.2.4.7_A7-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/15.2.4.7_Object.prototype.propertyIsEnumerable/S15.2.4.7_A7-expected.txt
@@ -1,6 +1,6 @@
 S15.2.4.7_A7
 
-TypeError: Result of expression 'FACTORY' [function propertyIsEnumerable() { [native code] }] is not a constructor.
+TypeError: 'function propertyIsEnumerable() { [native code] }' is not a constructor (evaluating 'new FACTORY')
 PASS 
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/S15.2.4_A3-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/S15.2.4_A3-expected.txt
index 9b5f157..501a69a 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/S15.2.4_A3-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/S15.2.4_A3-expected.txt
@@ -1,6 +1,6 @@
 S15.2.4_A3
 
-TypeError: Result of expression 'Object.prototype' [[object Object]] is not a function.
+TypeError: '[object Object]' is not a function (evaluating 'Object.prototype()')
 PASS 
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/S15.2.4_A4-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/S15.2.4_A4-expected.txt
index f569158..b169378 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/S15.2.4_A4-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.2_Object/15.2.4/S15.2.4_A4-expected.txt
@@ -1,6 +1,6 @@
 S15.2.4_A4
 
-TypeError: Result of expression 'Object.prototype' [[object Object]] is not a constructor.
+TypeError: '[object Object]' is not a constructor (evaluating 'new Object.prototype')
 PASS 
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.3_Function/15.3.4/15.3.4.2_Function.prototype.toString/S15.3.4.2_A7-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.3_Function/15.3.4/15.3.4.2_Function.prototype.toString/S15.3.4.2_A7-expected.txt
index 81e2521..61bdc3a 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.3_Function/15.3.4/15.3.4.2_Function.prototype.toString/S15.3.4.2_A7-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.3_Function/15.3.4/15.3.4.2_Function.prototype.toString/S15.3.4.2_A7-expected.txt
@@ -1,6 +1,6 @@
 S15.3.4.2_A7
 
-TypeError: Result of expression 'FACTORY' [function toString() { [native code] }] is not a constructor.
+TypeError: 'function toString() { [native code] }' is not a constructor (evaluating 'new FACTORY')
 PASS 
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.3_Function/15.3.4/S15.3.4_A5-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.3_Function/15.3.4/S15.3.4_A5-expected.txt
index 0696d77..53150f1 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.3_Function/15.3.4/S15.3.4_A5-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.3_Function/15.3.4/S15.3.4_A5-expected.txt
@@ -1,6 +1,6 @@
 S15.3.4_A5
 
-#1.1: The Function prototype object is itself a Function object without [[create]] property TypeError: Result of expression 'Function.prototype' [function () { [native code] }] is not a constructor.
+#1.1: The Function prototype object is itself a Function object without [[create]] property TypeError: 'function () { [native code] }' is not a constructor (evaluating 'new Function.prototype')
 PASS 
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.10_String.prototype.match/S15.5.4.10_A1_T4-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.10_String.prototype.match/S15.5.4.10_A1_T4-expected.txt
index 9d4b604..fa8241d 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.10_String.prototype.match/S15.5.4.10_A1_T4-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.10_String.prototype.match/S15.5.4.10_A1_T4-expected.txt
@@ -1,6 +1,6 @@
 S15.5.4.10_A1_T4
 
-FAIL TypeError: Result of expression '__matched' [null] is not an object.
+FAIL TypeError: 'null' is not an object (evaluating '__matched.length')
 
 TEST COMPLETE
 
diff --git a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.12_String.prototype.search/S15.5.4.12_A7-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.12_String.prototype.search/S15.5.4.12_A7-expected.txt
index 7049ede..d4ad19f 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.12_String.prototype.search/S15.5.4.12_A7-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.12_String.prototype.search/S15.5.4.12_A7-expected.txt
@@ -1,6 +1,6 @@
 S15.5.4.12_A7
 
-TypeError: Result of expression '__FACTORY' [function search() { [native code] }] is not a constructor.
+TypeError: 'function search() { [native code] }' is not a constructor (evaluating 'new __FACTORY')
 PASS 
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.13_String.prototype.slice/S15.5.4.13_A7-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.13_String.prototype.slice/S15.5.4.13_A7-expected.txt
index 60b0829..cf712c6 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.13_String.prototype.slice/S15.5.4.13_A7-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.13_String.prototype.slice/S15.5.4.13_A7-expected.txt
@@ -1,6 +1,6 @@
 S15.5.4.13_A7
 
-TypeError: Result of expression '__FACTORY' [function slice() { [native code] }] is not a constructor.
+TypeError: 'function slice() { [native code] }' is not a constructor (evaluating 'new __FACTORY')
 PASS 
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.15_String.prototype.substring/S15.5.4.15_A7-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.15_String.prototype.substring/S15.5.4.15_A7-expected.txt
index 39ecfad..efb46ae 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.15_String.prototype.substring/S15.5.4.15_A7-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.15_String.prototype.substring/S15.5.4.15_A7-expected.txt
@@ -1,6 +1,6 @@
 S15.5.4.15_A7
 
-TypeError: Result of expression '__FACTORY' [function substring() { [native code] }] is not a constructor.
+TypeError: 'function substring() { [native code] }' is not a constructor (evaluating 'new __FACTORY')
 PASS 
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.17_String.prototype.toLocaleLowerCase/S15.5.4.17_A7-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.17_String.prototype.toLocaleLowerCase/S15.5.4.17_A7-expected.txt
index 63a53dc..21b48ff 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.17_String.prototype.toLocaleLowerCase/S15.5.4.17_A7-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.17_String.prototype.toLocaleLowerCase/S15.5.4.17_A7-expected.txt
@@ -1,6 +1,6 @@
 S15.5.4.17_A7
 
-TypeError: Result of expression '__FACTORY' [function toLocaleLowerCase() { [native code] }] is not a constructor.
+TypeError: 'function toLocaleLowerCase() { [native code] }' is not a constructor (evaluating 'new __FACTORY')
 PASS 
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.7_String.prototype.indexOf/S15.5.4.7_A7-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.7_String.prototype.indexOf/S15.5.4.7_A7-expected.txt
index daf6745..b55d2e2 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.7_String.prototype.indexOf/S15.5.4.7_A7-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.7_String.prototype.indexOf/S15.5.4.7_A7-expected.txt
@@ -1,6 +1,6 @@
 S15.5.4.7_A7
 
-TypeError: Result of expression '__FACTORY' [function indexOf() { [native code] }] is not a constructor.
+TypeError: 'function indexOf() { [native code] }' is not a constructor (evaluating 'new __FACTORY')
 PASS 
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.8_String.prototype.lastIndexOf/S15.5.4.8_A7-expected.txt b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.8_String.prototype.lastIndexOf/S15.5.4.8_A7-expected.txt
index 01e4a8b..f841c5a 100644
--- a/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.8_String.prototype.lastIndexOf/S15.5.4.8_A7-expected.txt
+++ b/LayoutTests/fast/js/sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.8_String.prototype.lastIndexOf/S15.5.4.8_A7-expected.txt
@@ -1,6 +1,6 @@
 S15.5.4.8_A7
 
-TypeError: Result of expression '__FACTORY' [function lastIndexOf() { [native code] }] is not a constructor.
+TypeError: 'function lastIndexOf() { [native code] }' is not a constructor (evaluating 'new __FACTORY')
 PASS 
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/xsl/transform-xhr-doc-expected.txt b/LayoutTests/fast/xsl/transform-xhr-doc-expected.txt
index 8881d1d..5bb0ad6 100644
--- a/LayoutTests/fast/xsl/transform-xhr-doc-expected.txt
+++ b/LayoutTests/fast/xsl/transform-xhr-doc-expected.txt
@@ -1,4 +1,4 @@
-CONSOLE MESSAGE: line 20: TypeError: Result of expression 'doc' [undefined] is not an object.
+CONSOLE MESSAGE: line 20: TypeError: 'undefined' is not an object (evaluating 'doc.documentElement')
 Test for bug 10313: xsl:import doesn't work in stylesheets loaded via XMLHttpRequest.
 
 It's nice that this hasn't crashed, but the XSL transformation has failed.
diff --git a/LayoutTests/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write-expected.txt b/LayoutTests/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write-expected.txt
index 119b809..20eb714 100644
--- a/LayoutTests/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write-expected.txt
+++ b/LayoutTests/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write-expected.txt
@@ -1,6 +1,6 @@
 CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/innocent-victim-with-notify.html from frame with URL about:blank. Domains, protocols and ports must match.
 
-CONSOLE MESSAGE: line 1: TypeError: Result of expression 'target.document' [undefined] is not an object.
+CONSOLE MESSAGE: line 1: TypeError: 'undefined' is not an object (evaluating 'target.document.body')
 This page opens a window to "", injects malicious code, and then navigates its opener to the victim. The opened window then tries to scripts its opener after document.writeing a new document.
 Code injected into window:
 <script>document.write('<script>function write(target, message) { target.document.body.innerHTML = message; }setTimeout(function() {write(window.opener, \'FAIL: XSS was allowed.\');}, 100);setTimeout(function() {write(window.opener.top.frames[1], \'SUCCESS: Window remained in original SecurityOrigin.\');}, 200);setTimeout(function() { if (window.layoutTestController) layoutTestController.globalFlag = true; }, 300);<\/script>');</script>
diff --git a/LayoutTests/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url-expected.txt b/LayoutTests/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url-expected.txt
index 56f2c05..c014a27 100644
--- a/LayoutTests/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url-expected.txt
+++ b/LayoutTests/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url-expected.txt
@@ -1,6 +1,6 @@
 CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/innocent-victim-with-notify.html from frame with URL http://127.0.0.1:8000/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url.html. Domains, protocols and ports must match.
 
-CONSOLE MESSAGE: line 1: TypeError: Result of expression 'target.document' [undefined] is not an object.
+CONSOLE MESSAGE: line 1: TypeError: 'undefined' is not an object (evaluating 'target.document.body')
 This page opens a window to "", injects malicious code, and then navigates its opener to the victim. The opened window then tries to scripts its opener after reloading itself as a javascript URL.
 Code injected into window:
 <script>window.location = 'javascript:\'<script>function write(target, message) { target.document.body.innerHTML = message; }setTimeout(function() {write(window.opener, \\\'FAIL: XSS was allowed.\\\');}, 100);setTimeout(function() {write(window.opener.top.frames[1], \\\'SUCCESS: Window remained in original SecurityOrigin.\\\');}, 200);setTimeout(function() { if (window.layoutTestController) layoutTestController.globalFlag = true; }, 300);<\\\/script>\''</script>
diff --git a/LayoutTests/http/tests/security/aboutBlank/xss-DENIED-set-opener-expected.txt b/LayoutTests/http/tests/security/aboutBlank/xss-DENIED-set-opener-expected.txt
index 83f57eb..d00eea1 100644
--- a/LayoutTests/http/tests/security/aboutBlank/xss-DENIED-set-opener-expected.txt
+++ b/LayoutTests/http/tests/security/aboutBlank/xss-DENIED-set-opener-expected.txt
@@ -2,7 +2,7 @@ CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http
 
 CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/innocent-victim.html from frame with URL about:blank. Domains, protocols and ports must match.
 
-CONSOLE MESSAGE: line 1: TypeError: Result of expression 'target.document' [undefined] is not an object.
+CONSOLE MESSAGE: line 1: TypeError: 'undefined' is not an object (evaluating 'target.document.body')
 This page opens a window to "", injects malicious code, and then uses window.open.call to set its opener to the victim. The opened window then tries to scripts its opener.
 Code injected into window:
 <script>function write(target, message) { target.document.body.innerHTML = message; }
diff --git a/LayoutTests/java/lc3/ArrayMethods/byte-001-expected.txt b/LayoutTests/java/lc3/ArrayMethods/byte-001-expected.txt
index 859f979..dc4cc84 100644
--- a/LayoutTests/java/lc3/ArrayMethods/byte-001-expected.txt
+++ b/LayoutTests/java/lc3/ArrayMethods/byte-001-expected.txt
@@ -2,16 +2,16 @@ LiveConnect 3.0 java array object inheritance JavaScript Array methods
 
 PASS b0 = wkTestStringToJavaByteArray("hello"); b0.join() +'' is "104,101,108,108,111"
 PASS b0.join == Array.prototype.join is true
-FAIL b0.getClass().getName() +'' should be [B. Threw exception TypeError: Result of expression 'b0.getClass' [undefined] is not a function.
+FAIL b0.getClass().getName() +'' should be [B. Threw exception TypeError: 'undefined' is not a function (evaluating 'b0.getClass()')
 PASS b1 = wkTestStringToJavaByteArray("JavaScript"); b1.reverse().join() +'' is getCharValues("tpircSavaJ")
 PASS b1.reverse == Array.prototype.reverse is true
-FAIL b1.getClass().getName() +'' should be [B. Threw exception TypeError: Result of expression 'b1.getClass' [undefined] is not a function.
+FAIL b1.getClass().getName() +'' should be [B. Threw exception TypeError: 'undefined' is not a function (evaluating 'b1.getClass()')
 PASS b2 = wkTestStringToJavaByteArray("JavaScript"); b2.sort().join() +'' is "105,112,114,116,118,74,83,97,97,99"
 PASS b2.sort == Array.prototype.sort is true
-FAIL b2.getClass().getName() +'' should be [B. Threw exception TypeError: Result of expression 'b2.getClass' [undefined] is not a function.
+FAIL b2.getClass().getName() +'' should be [B. Threw exception TypeError: 'undefined' is not a function (evaluating 'b2.getClass()')
 PASS b3 = wkTestStringToJavaByteArray("JavaScript"); b3.sort().join() +'' is "105,112,114,116,118,74,83,97,97,99"
 PASS b3.sort == Array.prototype.sort is true
-FAIL b3.getClass().getName() +'' should be [B. Threw exception TypeError: Result of expression 'b3.getClass' [undefined] is not a function.
+FAIL b3.getClass().getName() +'' should be [B. Threw exception TypeError: 'undefined' is not a function (evaluating 'b3.getClass()')
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/java/lc3/CallStatic/object-001-expected.txt b/LayoutTests/java/lc3/CallStatic/object-001-expected.txt
index 0858dd1..3f8170b 100644
--- a/LayoutTests/java/lc3/CallStatic/object-001-expected.txt
+++ b/LayoutTests/java/lc3/CallStatic/object-001-expected.txt
@@ -1,8 +1,8 @@
 LiveConnect 3.0 Call static methods from an instance
 
-FAIL dt.staticSetDoubleObject( 99 ); dt.PUB_STATIC_DOUBLE_OBJECT.doubleValue() should be 99. Threw exception TypeError: Result of expression 'dt.PUB_STATIC_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.staticSetDoubleObject( 99 ); dt.staticGetDoubleObject().doubleValue() should be 99. Threw exception TypeError: Result of expression 'dt.staticGetDoubleObject()' [undefined] is not an object.
-FAIL dt.staticGetDoubleObject().getClass().getName() +'' should be java.lang.Double. Threw exception TypeError: Result of expression 'dt.staticGetDoubleObject()' [undefined] is not an object.
+FAIL dt.staticSetDoubleObject( 99 ); dt.PUB_STATIC_DOUBLE_OBJECT.doubleValue() should be 99. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_STATIC_DOUBLE_OBJECT.doubleValue')
+FAIL dt.staticSetDoubleObject( 99 ); dt.staticGetDoubleObject().doubleValue() should be 99. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.staticGetDoubleObject().doubleValue')
+FAIL dt.staticGetDoubleObject().getClass().getName() +'' should be java.lang.Double. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.staticGetDoubleObject().getClass')
 FAIL dt.staticSetShortObject( new java.lang.Short(32109) ); dt.PUB_STATIC_SHORT_OBJECT.doubleValue() should be 32109. Threw exception ReferenceError: Can't find variable: java
 FAIL dt.staticSetShortObject( new java.lang.Short(32109) ); dt.staticGetShortObject().doubleValue() should be 32109. Threw exception ReferenceError: Can't find variable: java
 PASS dt.staticGetShortObject().getClass().getName() +'' is "java.lang.Short"
diff --git a/LayoutTests/java/lc3/ConvertBoolean/boolean-007-n-expected.txt b/LayoutTests/java/lc3/ConvertBoolean/boolean-007-n-expected.txt
index 12eb07e..40c2440 100644
--- a/LayoutTests/java/lc3/ConvertBoolean/boolean-007-n-expected.txt
+++ b/LayoutTests/java/lc3/ConvertBoolean/boolean-007-n-expected.txt
@@ -1,6 +1,6 @@
 LiveConnect 3.0 JavaScript to Java Data Type Conversion Preferred argument conversion:  boolean
 
-PASS TEST_CLASS["ambiguous(long)"](true) threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(long)"]' [undefined] is not a function..
+PASS TEST_CLASS["ambiguous(long)"](true) threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(long)"](true)').
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/java/lc3/ConvertBoolean/boolean-008-n-expected.txt b/LayoutTests/java/lc3/ConvertBoolean/boolean-008-n-expected.txt
index e6937cd..1c59cb7 100644
--- a/LayoutTests/java/lc3/ConvertBoolean/boolean-008-n-expected.txt
+++ b/LayoutTests/java/lc3/ConvertBoolean/boolean-008-n-expected.txt
@@ -1,6 +1,6 @@
 LiveConnect 3.0 JavaScript to Java Data Type Conversion Preferred argument conversion:  boolean
 
-PASS TEST_CLASS["ambiguous(short)"](true) threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(short)"]' [undefined] is not a function..
+PASS TEST_CLASS["ambiguous(short)"](true) threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(short)"](true)').
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/java/lc3/ConvertBoolean/boolean-009-n-expected.txt b/LayoutTests/java/lc3/ConvertBoolean/boolean-009-n-expected.txt
index 6fb02d9..76f3aab 100644
--- a/LayoutTests/java/lc3/ConvertBoolean/boolean-009-n-expected.txt
+++ b/LayoutTests/java/lc3/ConvertBoolean/boolean-009-n-expected.txt
@@ -1,6 +1,6 @@
 LiveConnect 3.0 JavaScript to Java Data Type Conversion Preferred argument conversion:  boolean
 
-PASS TEST_CLASS["ambiguous(char)"](true) threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(char)"]' [undefined] is not a function..
+PASS TEST_CLASS["ambiguous(char)"](true) threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(char)"](true)').
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/java/lc3/ConvertBoolean/boolean-010-n-expected.txt b/LayoutTests/java/lc3/ConvertBoolean/boolean-010-n-expected.txt
index ffa7ca2..34a5239 100644
--- a/LayoutTests/java/lc3/ConvertBoolean/boolean-010-n-expected.txt
+++ b/LayoutTests/java/lc3/ConvertBoolean/boolean-010-n-expected.txt
@@ -1,6 +1,6 @@
 LiveConnect 3.0 JavaScript to Java Data Type Conversion Preferred argument conversion:  boolean
 
-PASS TEST_CLASS["ambiguous(int)"](true) threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(int)"]' [undefined] is not a function..
+PASS TEST_CLASS["ambiguous(int)"](true) threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(int)"](true)').
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/java/lc3/ConvertBoolean/boolean-011-n-expected.txt b/LayoutTests/java/lc3/ConvertBoolean/boolean-011-n-expected.txt
index fafd80b..b5936b5 100644
--- a/LayoutTests/java/lc3/ConvertBoolean/boolean-011-n-expected.txt
+++ b/LayoutTests/java/lc3/ConvertBoolean/boolean-011-n-expected.txt
@@ -1,6 +1,6 @@
 LiveConnect 3.0 JavaScript to Java Data Type Conversion Preferred argument conversion:  boolean
 
-PASS TEST_CLASS["ambiguous(byte)"](true) threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(byte)"]' [undefined] is not a function..
+PASS TEST_CLASS["ambiguous(byte)"](true) threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(byte)"](true)').
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/java/lc3/ConvertBoolean/boolean-012-n-expected.txt b/LayoutTests/java/lc3/ConvertBoolean/boolean-012-n-expected.txt
index ebfa0b2..723c6bf 100644
--- a/LayoutTests/java/lc3/ConvertBoolean/boolean-012-n-expected.txt
+++ b/LayoutTests/java/lc3/ConvertBoolean/boolean-012-n-expected.txt
@@ -1,6 +1,6 @@
 LiveConnect 3.0 JavaScript to Java Data Type Conversion Preferred argument conversion:  boolean
 
-PASS TEST_CLASS["ambiguous(double)"](true) threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(double)"]' [undefined] is not a function..
+PASS TEST_CLASS["ambiguous(double)"](true) threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(double)"](true)').
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/java/lc3/ConvertBoolean/boolean-013-n-expected.txt b/LayoutTests/java/lc3/ConvertBoolean/boolean-013-n-expected.txt
index b610fbd..5ffcc54 100644
--- a/LayoutTests/java/lc3/ConvertBoolean/boolean-013-n-expected.txt
+++ b/LayoutTests/java/lc3/ConvertBoolean/boolean-013-n-expected.txt
@@ -1,6 +1,6 @@
 LiveConnect 3.0 JavaScript to Java Data Type Conversion Preferred argument conversion:  boolean
 
-PASS TEST_CLASS["ambiguous(float)"](true) threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(float)"]' [undefined] is not a function..
+PASS TEST_CLASS["ambiguous(float)"](true) threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(float)"](true)').
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/java/lc3/ConvertBoolean/boolean-014-expected.txt b/LayoutTests/java/lc3/ConvertBoolean/boolean-014-expected.txt
index fe31fac..1ac99e7 100644
--- a/LayoutTests/java/lc3/ConvertBoolean/boolean-014-expected.txt
+++ b/LayoutTests/java/lc3/ConvertBoolean/boolean-014-expected.txt
@@ -1,11 +1,11 @@
 LiveConnect 3.0 JavaScript to Java Data Type Conversion Preferred argument conversion:  boolean
 
-FAIL TEST_CLASS["ambiguous(java.lang.Boolean)"](true) should be BOOLEAN_OBJECT. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(java.lang.Boolean)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(java.lang.Boolean)"](false) should be BOOLEAN_OBJECT. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(java.lang.Boolean)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(java.lang.Object)"](true) should be OBJECT. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(java.lang.Object)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(java.lang.Object)"](false) should be OBJECT. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(java.lang.Object)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(java.lang.String)"](true) should be STRING. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(java.lang.String)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(java.lang.String)"](false) should be STRING. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(java.lang.String)"]' [undefined] is not a function.
+FAIL TEST_CLASS["ambiguous(java.lang.Boolean)"](true) should be BOOLEAN_OBJECT. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(java.lang.Boolean)"](true)')
+FAIL TEST_CLASS["ambiguous(java.lang.Boolean)"](false) should be BOOLEAN_OBJECT. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(java.lang.Boolean)"](false)')
+FAIL TEST_CLASS["ambiguous(java.lang.Object)"](true) should be OBJECT. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(java.lang.Object)"](true)')
+FAIL TEST_CLASS["ambiguous(java.lang.Object)"](false) should be OBJECT. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(java.lang.Object)"](false)')
+FAIL TEST_CLASS["ambiguous(java.lang.String)"](true) should be STRING. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(java.lang.String)"](true)')
+FAIL TEST_CLASS["ambiguous(java.lang.String)"](false) should be STRING. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(java.lang.String)"](false)')
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/java/lc3/ConvertNull/null-001-expected.txt b/LayoutTests/java/lc3/ConvertNull/null-001-expected.txt
index 08da13d..eef5839 100644
--- a/LayoutTests/java/lc3/ConvertNull/null-001-expected.txt
+++ b/LayoutTests/java/lc3/ConvertNull/null-001-expected.txt
@@ -1,7 +1,7 @@
 LiveConnect 3.0 JavaScript to Java Data Type Conversion Preferred argument conversion:  null
 
-FAIL TEST_CLASS["ambiguous(java.lang.Object)"](null) +'' should be OBJECT. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(java.lang.Object)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(java.lang.String)"](null) +'' should be STRING. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(java.lang.String)"]' [undefined] is not a function.
+FAIL TEST_CLASS["ambiguous(java.lang.Object)"](null) +'' should be OBJECT. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(java.lang.Object)"](null)')
+FAIL TEST_CLASS["ambiguous(java.lang.String)"](null) +'' should be STRING. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(java.lang.String)"](null)')
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/java/lc3/ConvertNumber/number-011-expected.txt b/LayoutTests/java/lc3/ConvertNumber/number-011-expected.txt
index 441ec99..02d2f91 100644
--- a/LayoutTests/java/lc3/ConvertNumber/number-011-expected.txt
+++ b/LayoutTests/java/lc3/ConvertNumber/number-011-expected.txt
@@ -1,15 +1,15 @@
 LiveConnect 3.0 JavaScript to Java Data Type Conversion Preferred argument conversion:  undefined
 
-FAIL TEST_CLASS["ambiguous(java.lang.Object)"](1) should be OBJECT. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(java.lang.Object)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(java.lang.String)"](1) should be STRING. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(java.lang.String)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(byte)"](1) should be BYTE. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(byte)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(char)"](1) should be CHAR. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(char)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(short)"](1) should be SHORT. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(short)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(int)"](1) should be INT. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(int)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(long)"](1) should be LONG. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(long)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(float)"](1) should be FLOAT. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(float)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(java.lang.Double)"](1) should be DOUBLE_OBJECT. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(java.lang.Double)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(double)"](1) should be DOUBLE. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(double)"]' [undefined] is not a function.
+FAIL TEST_CLASS["ambiguous(java.lang.Object)"](1) should be OBJECT. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(java.lang.Object)"](1)')
+FAIL TEST_CLASS["ambiguous(java.lang.String)"](1) should be STRING. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(java.lang.String)"](1)')
+FAIL TEST_CLASS["ambiguous(byte)"](1) should be BYTE. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(byte)"](1)')
+FAIL TEST_CLASS["ambiguous(char)"](1) should be CHAR. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(char)"](1)')
+FAIL TEST_CLASS["ambiguous(short)"](1) should be SHORT. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(short)"](1)')
+FAIL TEST_CLASS["ambiguous(int)"](1) should be INT. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(int)"](1)')
+FAIL TEST_CLASS["ambiguous(long)"](1) should be LONG. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(long)"](1)')
+FAIL TEST_CLASS["ambiguous(float)"](1) should be FLOAT. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(float)"](1)')
+FAIL TEST_CLASS["ambiguous(java.lang.Double)"](1) should be DOUBLE_OBJECT. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(java.lang.Double)"](1)')
+FAIL TEST_CLASS["ambiguous(double)"](1) should be DOUBLE. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(double)"](1)')
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/java/lc3/ConvertString/string-006-expected.txt b/LayoutTests/java/lc3/ConvertString/string-006-expected.txt
index 8fad656..367d1fd 100644
--- a/LayoutTests/java/lc3/ConvertString/string-006-expected.txt
+++ b/LayoutTests/java/lc3/ConvertString/string-006-expected.txt
@@ -1,14 +1,14 @@
 LiveConnect 3.0 JavaScript to Java Data Type Conversion Preferred argument conversion: string
 
-FAIL TEST_CLASS["ambiguous(java.lang.String)"](string) + '' should be STRING. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(java.lang.String)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(java.lang.Object)"](string) + '' should be OBJECT. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(java.lang.Object)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(char)"](string) + '' should be CHAR. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(char)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(double)"](string) + '' should be DOUBLE. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(double)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(float)"](string) + '' should be FLOAT. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(float)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(long)"](string) + '' should be LONG. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(long)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(int)"](string) + '' should be INT. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(int)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(short)"](string) + '' should be SHORT. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(short)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(byte)"]("127") + '' should be BYTE. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(byte)"]' [undefined] is not a function.
+FAIL TEST_CLASS["ambiguous(java.lang.String)"](string) + '' should be STRING. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(java.lang.String)"](string)')
+FAIL TEST_CLASS["ambiguous(java.lang.Object)"](string) + '' should be OBJECT. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(java.lang.Object)"](string)')
+FAIL TEST_CLASS["ambiguous(char)"](string) + '' should be CHAR. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(char)"](string)')
+FAIL TEST_CLASS["ambiguous(double)"](string) + '' should be DOUBLE. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(double)"](string)')
+FAIL TEST_CLASS["ambiguous(float)"](string) + '' should be FLOAT. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(float)"](string)')
+FAIL TEST_CLASS["ambiguous(long)"](string) + '' should be LONG. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(long)"](string)')
+FAIL TEST_CLASS["ambiguous(int)"](string) + '' should be INT. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(int)"](string)')
+FAIL TEST_CLASS["ambiguous(short)"](string) + '' should be SHORT. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(short)"](string)')
+FAIL TEST_CLASS["ambiguous(byte)"]("127") + '' should be BYTE. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(byte)"]("127")')
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/java/lc3/ConvertString/string-007-n-expected.txt b/LayoutTests/java/lc3/ConvertString/string-007-n-expected.txt
index 5329bc3..957037c 100644
--- a/LayoutTests/java/lc3/ConvertString/string-007-n-expected.txt
+++ b/LayoutTests/java/lc3/ConvertString/string-007-n-expected.txt
@@ -1,6 +1,6 @@
 LiveConnect 3.0 JavaScript to Java Data Type Conversion Preferred argument conversion: string
 
-PASS TEST_CLASS["ambiguous(boolean)"](string) + '' threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(boolean)"]' [undefined] is not a function..
+PASS TEST_CLASS["ambiguous(boolean)"](string) + '' threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(boolean)"](string)').
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/java/lc3/ConvertUndefined/undefined-002-expected.txt b/LayoutTests/java/lc3/ConvertUndefined/undefined-002-expected.txt
index b47dc98..54a4902 100644
--- a/LayoutTests/java/lc3/ConvertUndefined/undefined-002-expected.txt
+++ b/LayoutTests/java/lc3/ConvertUndefined/undefined-002-expected.txt
@@ -1,7 +1,7 @@
 LiveConnect 3.0 JavaScript to Java Data Type Conversion Preferred argument conversion:  undefined
 
-FAIL TEST_CLASS["ambiguous(java.lang.Object)"](void 0) +'' should be OBJECT. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(java.lang.Object)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(java.lang.String)"](void 0) +'' should be STRING. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(java.lang.String)"]' [undefined] is not a function.
+FAIL TEST_CLASS["ambiguous(java.lang.Object)"](void 0) +'' should be OBJECT. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(java.lang.Object)"](void 0)')
+FAIL TEST_CLASS["ambiguous(java.lang.String)"](void 0) +'' should be STRING. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(java.lang.String)"](void 0)')
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/java/lc3/ConvertUndefined/undefined-003-expected.txt b/LayoutTests/java/lc3/ConvertUndefined/undefined-003-expected.txt
index b47dc98..54a4902 100644
--- a/LayoutTests/java/lc3/ConvertUndefined/undefined-003-expected.txt
+++ b/LayoutTests/java/lc3/ConvertUndefined/undefined-003-expected.txt
@@ -1,7 +1,7 @@
 LiveConnect 3.0 JavaScript to Java Data Type Conversion Preferred argument conversion:  undefined
 
-FAIL TEST_CLASS["ambiguous(java.lang.Object)"](void 0) +'' should be OBJECT. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(java.lang.Object)"]' [undefined] is not a function.
-FAIL TEST_CLASS["ambiguous(java.lang.String)"](void 0) +'' should be STRING. Threw exception TypeError: Result of expression 'TEST_CLASS["ambiguous(java.lang.String)"]' [undefined] is not a function.
+FAIL TEST_CLASS["ambiguous(java.lang.Object)"](void 0) +'' should be OBJECT. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(java.lang.Object)"](void 0)')
+FAIL TEST_CLASS["ambiguous(java.lang.String)"](void 0) +'' should be STRING. Threw exception TypeError: 'undefined' is not a function (evaluating 'TEST_CLASS["ambiguous(java.lang.String)"](void 0)')
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/java/lc3/JSBoolean/boolean-005-n-expected.txt b/LayoutTests/java/lc3/JSBoolean/boolean-005-n-expected.txt
index a88f131..f7c33ba 100644
--- a/LayoutTests/java/lc3/JSBoolean/boolean-005-n-expected.txt
+++ b/LayoutTests/java/lc3/JSBoolean/boolean-005-n-expected.txt
@@ -2,7 +2,7 @@ LiveConnect 3.0 JavaScript to Java Data Type Conversion boolean conversion
 
 FAIL dt.setInteger( true ); dt.PUB_INT should throw an exception. Was 1.
 FAIL dt.setInteger( true ); dt.getInteger() should throw an exception. Was 1.
-PASS typeof dt.getInt() threw exception TypeError: Result of expression 'dt.getInt' [undefined] is not a function..
+PASS typeof dt.getInt() threw exception TypeError: 'undefined' is not a function (evaluating 'dt.getInt()').
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/java/lc3/JSNumber/ToDouble-002-expected.txt b/LayoutTests/java/lc3/JSNumber/ToDouble-002-expected.txt
index f9ec198..8b87c49 100644
--- a/LayoutTests/java/lc3/JSNumber/ToDouble-002-expected.txt
+++ b/LayoutTests/java/lc3/JSNumber/ToDouble-002-expected.txt
@@ -1,88 +1,88 @@
 LiveConnect 3.0 JavaScript to Java Data Type Conversion number conversion
 
-FAIL dt.setDoubleObject( 0 ); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 0. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject( 0 ); dt.getDoubleObject().doubleValue() should be 0. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject( 0 ); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 0. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject( 0 ); dt.getDoubleObject().doubleValue() should be 0. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
 FAIL dt.setDoubleObject( -0 ); Infinity / dt.PUB_DOUBLE_OBJECT should be -Infinity. Was Infinity.
-FAIL dt.setDoubleObject( -0 ); Infinity / dt.getDoubleObject().doubleValue() should be -Infinity. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject( -0 ); Infinity / dt.getDoubleObject().doubleValue() should be -Infinity. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject( Infinity ); dt.PUB_DOUBLE_OBJECT.doubleValue()  should be Infinity. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject( Infinity ); dt.getDoubleObject().doubleValue() should be Infinity. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject( Infinity ); dt.PUB_DOUBLE_OBJECT.doubleValue()  should be Infinity. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject( Infinity ); dt.getDoubleObject().doubleValue() should be Infinity. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject( -Infinity ); dt.PUB_DOUBLE_OBJECT.doubleValue() should be -Infinity. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject( -Infinity ); dt.getDoubleObject().doubleValue() should be -Infinity. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject( -Infinity ); dt.PUB_DOUBLE_OBJECT.doubleValue() should be -Infinity. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject( -Infinity ); dt.getDoubleObject().doubleValue() should be -Infinity. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject( NaN ); dt.PUB_DOUBLE_OBJECT.doubleValue() should be NaN. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject( NaN ); dt.getDoubleObject().doubleValue() should be NaN. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject( NaN ); dt.PUB_DOUBLE_OBJECT.doubleValue() should be NaN. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject( NaN ); dt.getDoubleObject().doubleValue() should be NaN. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(077777777777777777); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 2251799813685247. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(077777777777777777); dt.getDoubleObject().doubleValue() should be 2251799813685247. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(077777777777777777); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 2251799813685247. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(077777777777777777); dt.getDoubleObject().doubleValue() should be 2251799813685247. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(077777777777777776); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 2251799813685246. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(077777777777777776); dt.getDoubleObject().doubleValue() should be 2251799813685246. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(077777777777777776); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 2251799813685246. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(077777777777777776); dt.getDoubleObject().doubleValue() should be 2251799813685246. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(0x1fffffffffffff); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 9007199254740991. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(0x1fffffffffffff); dt.getDoubleObject().doubleValue() should be 9007199254740991. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(0x1fffffffffffff); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 9007199254740991. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(0x1fffffffffffff); dt.getDoubleObject().doubleValue() should be 9007199254740991. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(0x20000000000000); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 9007199254740992. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(0x20000000000000); dt.getDoubleObject().doubleValue() should be 9007199254740992. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(0x20000000000000); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 9007199254740992. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(0x20000000000000); dt.getDoubleObject().doubleValue() should be 9007199254740992. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(0x20123456789abc); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 9027215253084860. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(0x20123456789abc); dt.getDoubleObject().doubleValue() should be 9027215253084860. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(0x20123456789abc); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 9027215253084860. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(0x20123456789abc); dt.getDoubleObject().doubleValue() should be 9027215253084860. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(0x20123456789abd); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 9027215253084860. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(0x20123456789abd); dt.getDoubleObject().doubleValue() should be 9027215253084860. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(0x20123456789abd); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 9027215253084860. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(0x20123456789abd); dt.getDoubleObject().doubleValue() should be 9027215253084860. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(0x20123456789abe); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 9027215253084862. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(0x20123456789abe); dt.getDoubleObject().doubleValue() should be 9027215253084862. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(0x20123456789abe); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 9027215253084862. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(0x20123456789abe); dt.getDoubleObject().doubleValue() should be 9027215253084862. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(0x20123456789abf); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 9027215253084864. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(0x20123456789abf); dt.getDoubleObject().doubleValue() should be 9027215253084864. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(0x20123456789abf); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 9027215253084864. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(0x20123456789abf); dt.getDoubleObject().doubleValue() should be 9027215253084864. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(0x1000000000000080); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 1152921504606847000. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(0x1000000000000080); dt.getDoubleObject().doubleValue() should be 1152921504606847000. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(0x1000000000000080); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 1152921504606847000. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(0x1000000000000080); dt.getDoubleObject().doubleValue() should be 1152921504606847000. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(0x1000000000000081); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 1152921504606847200. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(0x1000000000000081); dt.getDoubleObject().doubleValue() should be 1152921504606847200. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(0x1000000000000081); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 1152921504606847200. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(0x1000000000000081); dt.getDoubleObject().doubleValue() should be 1152921504606847200. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(0x1000000000000100); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 1152921504606847200. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(0x1000000000000100); dt.getDoubleObject().doubleValue() should be 1152921504606847200. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(0x1000000000000100); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 1152921504606847200. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(0x1000000000000100); dt.getDoubleObject().doubleValue() should be 1152921504606847200. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(0x100000000000017f); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 1152921504606847200. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(0x100000000000017f); dt.getDoubleObject().doubleValue() should be 1152921504606847200. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(0x100000000000017f); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 1152921504606847200. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(0x100000000000017f); dt.getDoubleObject().doubleValue() should be 1152921504606847200. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(0x1000000000000180); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 1152921504606847500. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(0x1000000000000180); dt.getDoubleObject().doubleValue() should be 1152921504606847500. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(0x1000000000000180); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 1152921504606847500. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(0x1000000000000180); dt.getDoubleObject().doubleValue() should be 1152921504606847500. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(0x1000000000000181); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 1152921504606847500. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(0x1000000000000181); dt.getDoubleObject().doubleValue() should be 1152921504606847500. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(0x1000000000000181); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 1152921504606847500. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(0x1000000000000181); dt.getDoubleObject().doubleValue() should be 1152921504606847500. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(1.7976931348623157E+308); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 1.7976931348623157e+308. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(1.7976931348623157E+308); dt.getDoubleObject().doubleValue() should be 1.7976931348623157e+308. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(1.7976931348623157E+308); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 1.7976931348623157e+308. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(1.7976931348623157E+308); dt.getDoubleObject().doubleValue() should be 1.7976931348623157e+308. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(1.7976931348623158e+308); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 1.7976931348623157e+308. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(1.7976931348623158e+308); dt.getDoubleObject().doubleValue() should be 1.7976931348623157e+308. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(1.7976931348623158e+308); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 1.7976931348623157e+308. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(1.7976931348623158e+308); dt.getDoubleObject().doubleValue() should be 1.7976931348623157e+308. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(1.7976931348623159e+308); dt.PUB_DOUBLE_OBJECT.doubleValue() should be Infinity. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(1.7976931348623159e+308); dt.getDoubleObject().doubleValue() should be Infinity. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(1.7976931348623159e+308); dt.PUB_DOUBLE_OBJECT.doubleValue() should be Infinity. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(1.7976931348623159e+308); dt.getDoubleObject().doubleValue() should be Infinity. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(-1.7976931348623157E+308); dt.PUB_DOUBLE_OBJECT.doubleValue() should be -1.7976931348623157e+308. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(-1.7976931348623157E+308); dt.getDoubleObject().doubleValue() should be -1.7976931348623157e+308. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(-1.7976931348623157E+308); dt.PUB_DOUBLE_OBJECT.doubleValue() should be -1.7976931348623157e+308. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(-1.7976931348623157E+308); dt.getDoubleObject().doubleValue() should be -1.7976931348623157e+308. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(-1.7976931348623158e+308); dt.PUB_DOUBLE_OBJECT.doubleValue() should be -1.7976931348623157e+308. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(-1.7976931348623158e+308); dt.getDoubleObject().doubleValue() should be -1.7976931348623157e+308. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(-1.7976931348623158e+308); dt.PUB_DOUBLE_OBJECT.doubleValue() should be -1.7976931348623157e+308. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(-1.7976931348623158e+308); dt.getDoubleObject().doubleValue() should be -1.7976931348623157e+308. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(-1.7976931348623159e+308); dt.PUB_DOUBLE_OBJECT.doubleValue() should be -Infinity. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(-1.7976931348623159e+308); dt.getDoubleObject().doubleValue() should be -Infinity. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(-1.7976931348623159e+308); dt.PUB_DOUBLE_OBJECT.doubleValue() should be -Infinity. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(-1.7976931348623159e+308); dt.getDoubleObject().doubleValue() should be -Infinity. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(1e-2000); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 0. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(1e-2000); dt.getDoubleObject().doubleValue() should be 0. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(1e-2000); dt.PUB_DOUBLE_OBJECT.doubleValue() should be 0. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(1e-2000); dt.getDoubleObject().doubleValue() should be 0. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(1e2000); dt.PUB_DOUBLE_OBJECT.doubleValue() should be Infinity. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(1e2000); dt.getDoubleObject().doubleValue() should be Infinity. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(1e2000); dt.PUB_DOUBLE_OBJECT.doubleValue() should be Infinity. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(1e2000); dt.getDoubleObject().doubleValue() should be Infinity. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
-FAIL dt.setDoubleObject(-1e2000); dt.PUB_DOUBLE_OBJECT.doubleValue() should be -Infinity. Threw exception TypeError: Result of expression 'dt.PUB_DOUBLE_OBJECT' [null] is not an object.
-FAIL dt.setDoubleObject(-1e2000); dt.getDoubleObject().doubleValue() should be -Infinity. Threw exception TypeError: Result of expression 'dt.getDoubleObject()' [undefined] is not an object.
+FAIL dt.setDoubleObject(-1e2000); dt.PUB_DOUBLE_OBJECT.doubleValue() should be -Infinity. Threw exception TypeError: 'null' is not an object (evaluating 'dt.PUB_DOUBLE_OBJECT.doubleValue')
+FAIL dt.setDoubleObject(-1e2000); dt.getDoubleObject().doubleValue() should be -Infinity. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getDoubleObject().doubleValue')
 FAIL java.lang.Class.forName("java.lang.Double"): ReferenceError: Can't find variable: java
 PASS successfullyParsed is true
 
diff --git a/LayoutTests/java/lc3/JSObject/ToJSObject-001-expected.txt b/LayoutTests/java/lc3/JSObject/ToJSObject-001-expected.txt
index be706ac..ec53744 100644
--- a/LayoutTests/java/lc3/JSObject/ToJSObject-001-expected.txt
+++ b/LayoutTests/java/lc3/JSObject/ToJSObject-001-expected.txt
@@ -4,7 +4,7 @@ FAIL jsoc.setJSObject(array); jsoc.PUB_JSOBJECT should be 1,2,3. Was null.
 FAIL jsoc.setJSObject(array); jsoc.getJSObject() should be 1,2,3 (of type object). Was undefined (of type undefined).
 FAIL jsoc.getJSObject().constructor should be function Array() {
     [native code]
-}. Threw exception TypeError: Result of expression 'jsoc.getJSObject()' [undefined] is not an object.
+}. Threw exception TypeError: 'undefined' is not an object (evaluating 'jsoc.getJSObject().constructor')
 FAIL jsoc.setJSObject( MyObject ); jsoc.PUB_JSOBJECT should be function MyObject(stringValue) {
   this.stringValue = String(stringValue);
   this.toString = new Function( "return this.stringValue" );
diff --git a/LayoutTests/java/lc3/JSObject/ToObject-001-expected.txt b/LayoutTests/java/lc3/JSObject/ToObject-001-expected.txt
index 1bffde1..b0cf125 100644
--- a/LayoutTests/java/lc3/JSObject/ToObject-001-expected.txt
+++ b/LayoutTests/java/lc3/JSObject/ToObject-001-expected.txt
@@ -31,7 +31,7 @@ FAIL dt.setObject(array); dt.PUB_OBJECT should be 1,2,3. Was null.
 FAIL dt.setObject(array); dt.getObject() should be 1,2,3 (of type object). Was undefined (of type undefined).
 FAIL dt.getObject().constructor should be function Array() {
     [native code]
-}. Threw exception TypeError: Result of expression 'dt.getObject()' [undefined] is not an object.
+}. Threw exception TypeError: 'undefined' is not an object (evaluating 'dt.getObject().constructor')
 FAIL dt.setObject( MyObject ); dt.PUB_OBJECT should be function MyObject(stringValue) {
   this.stringValue = String(stringValue);
   this.toString = new Function( "return this.stringValue" );
diff --git a/LayoutTests/java/lc3/JavaObject/JavaObjectFieldOrMethod-001-expected.txt b/LayoutTests/java/lc3/JavaObject/JavaObjectFieldOrMethod-001-expected.txt
index dc9c8ec..9f464e2 100644
--- a/LayoutTests/java/lc3/JavaObject/JavaObjectFieldOrMethod-001-expected.txt
+++ b/LayoutTests/java/lc3/JavaObject/JavaObjectFieldOrMethod-001-expected.txt
@@ -1,7 +1,7 @@
 LiveConnect 3.0 JavaScript to Java Data Type Conversion JavaObject Field or method access
 
 FAIL dt.amIAFieldOrAMethod should be FIELD! (of type string). Was FIELD! (of type object).
-FAIL dt.amIAFieldOrAMethod() should be METHOD!. Threw exception TypeError: Result of expression 'dt.amIAFieldOrAMethod' [FIELD!] is not a function.
+FAIL dt.amIAFieldOrAMethod() should be METHOD!. Threw exception TypeError: 'FIELD!' is not a function (evaluating 'dt.amIAFieldOrAMethod()')
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/platform/mac-snowleopard/canvas/philip/tests/2d.imageData.create1.type-expected.txt b/LayoutTests/platform/mac-snowleopard/canvas/philip/tests/2d.imageData.create1.type-expected.txt
index d789ded..05e639c 100644
--- a/LayoutTests/platform/mac-snowleopard/canvas/philip/tests/2d.imageData.create1.type-expected.txt
+++ b/LayoutTests/platform/mac-snowleopard/canvas/philip/tests/2d.imageData.create1.type-expected.txt
@@ -1,2 +1,2 @@
 Failed assertion window.CanvasPixelArray !== undefined (got [undefined], expected not [undefined])
-Aborted with exception: Result of expression 'window.CanvasPixelArray' [undefined] is not an object.
+Aborted with exception: 'undefined' is not an object (evaluating 'window.CanvasPixelArray.prototype')
diff --git a/LayoutTests/platform/mac-snowleopard/canvas/philip/tests/2d.imageData.create2.type-expected.txt b/LayoutTests/platform/mac-snowleopard/canvas/philip/tests/2d.imageData.create2.type-expected.txt
index d789ded..05e639c 100644
--- a/LayoutTests/platform/mac-snowleopard/canvas/philip/tests/2d.imageData.create2.type-expected.txt
+++ b/LayoutTests/platform/mac-snowleopard/canvas/philip/tests/2d.imageData.create2.type-expected.txt
@@ -1,2 +1,2 @@
 Failed assertion window.CanvasPixelArray !== undefined (got [undefined], expected not [undefined])
-Aborted with exception: Result of expression 'window.CanvasPixelArray' [undefined] is not an object.
+Aborted with exception: 'undefined' is not an object (evaluating 'window.CanvasPixelArray.prototype')
diff --git a/LayoutTests/platform/mac-snowleopard/canvas/philip/tests/2d.imageData.get.type-expected.txt b/LayoutTests/platform/mac-snowleopard/canvas/philip/tests/2d.imageData.get.type-expected.txt
index d789ded..05e639c 100644
--- a/LayoutTests/platform/mac-snowleopard/canvas/philip/tests/2d.imageData.get.type-expected.txt
+++ b/LayoutTests/platform/mac-snowleopard/canvas/philip/tests/2d.imageData.get.type-expected.txt
@@ -1,2 +1,2 @@
 Failed assertion window.CanvasPixelArray !== undefined (got [undefined], expected not [undefined])
-Aborted with exception: Result of expression 'window.CanvasPixelArray' [undefined] is not an object.
+Aborted with exception: 'undefined' is not an object (evaluating 'window.CanvasPixelArray.prototype')
diff --git a/LayoutTests/platform/mac/compositing/reflections/reflection-opacity-expected.txt b/LayoutTests/platform/mac/compositing/reflections/reflection-opacity-expected.txt
index 9460a00..eb15ed3 100644
--- a/LayoutTests/platform/mac/compositing/reflections/reflection-opacity-expected.txt
+++ b/LayoutTests/platform/mac/compositing/reflections/reflection-opacity-expected.txt
@@ -1,4 +1,4 @@
-CONSOLE MESSAGE: line 26: TypeError: Result of expression 'document.getElementById('inner')' [null] is not an object.
+CONSOLE MESSAGE: line 26: TypeError: 'null' is not an object (evaluating 'document.getElementById('inner').className = 'inner moved box'')
 layer at (0,0) size 800x600
   RenderView at (0,0) size 800x600
 layer at (0,0) size 800x176
diff --git a/LayoutTests/platform/mac/fast/css/variables/remove-variable-test-expected.txt b/LayoutTests/platform/mac/fast/css/variables/remove-variable-test-expected.txt
index e78c062..fcf9f36 100644
--- a/LayoutTests/platform/mac/fast/css/variables/remove-variable-test-expected.txt
+++ b/LayoutTests/platform/mac/fast/css/variables/remove-variable-test-expected.txt
@@ -1,4 +1,4 @@
-CONSOLE MESSAGE: line 20: TypeError: Result of expression 'document.styleSheets[0].cssRules[0].variables' [undefined] is not an object.
+CONSOLE MESSAGE: line 20: TypeError: 'undefined' is not an object (evaluating 'document.styleSheets[0].cssRules[0].variables.removeVariable')
 layer at (0,0) size 800x600
   RenderView at (0,0) size 800x600
 layer at (0,0) size 800x34
diff --git a/LayoutTests/platform/mac/fast/css/variables/set-variable-test-expected.txt b/LayoutTests/platform/mac/fast/css/variables/set-variable-test-expected.txt
index 6e1fa12..f6486ae 100644
--- a/LayoutTests/platform/mac/fast/css/variables/set-variable-test-expected.txt
+++ b/LayoutTests/platform/mac/fast/css/variables/set-variable-test-expected.txt
@@ -1,4 +1,4 @@
-CONSOLE MESSAGE: line 19: TypeError: Result of expression 'document.styleSheets[0].cssRules[0].variables' [undefined] is not an object.
+CONSOLE MESSAGE: line 19: TypeError: 'undefined' is not an object (evaluating 'document.styleSheets[0].cssRules[0].variables.setVariable')
 layer at (0,0) size 800x600
   RenderView at (0,0) size 800x600
 layer at (0,0) size 800x34
diff --git a/LayoutTests/platform/mac/fast/css/variables/variable-iteration-test-expected.txt b/LayoutTests/platform/mac/fast/css/variables/variable-iteration-test-expected.txt
index c806046..7287bac 100644
--- a/LayoutTests/platform/mac/fast/css/variables/variable-iteration-test-expected.txt
+++ b/LayoutTests/platform/mac/fast/css/variables/variable-iteration-test-expected.txt
@@ -1,4 +1,4 @@
-CONSOLE MESSAGE: line 23: TypeError: Result of expression 'variables' [undefined] is not an object.
+CONSOLE MESSAGE: line 23: TypeError: 'undefined' is not an object (evaluating 'variables.length')
 layer at (0,0) size 800x600
   RenderView at (0,0) size 800x600
 layer at (0,0) size 800x34
diff --git a/LayoutTests/platform/mac/fast/events/updateLayoutForHitTest-expected.txt b/LayoutTests/platform/mac/fast/events/updateLayoutForHitTest-expected.txt
index d3a2442..b49f521 100644
--- a/LayoutTests/platform/mac/fast/events/updateLayoutForHitTest-expected.txt
+++ b/LayoutTests/platform/mac/fast/events/updateLayoutForHitTest-expected.txt
@@ -1,7 +1,7 @@
-CONSOLE MESSAGE: line 36: TypeError: Result of expression 'triangleSpan.nextSibling.nextSibling.nextSibling.nextSibling' [null] is not an object.
-CONSOLE MESSAGE: line 40: TypeError: Result of expression 'triangleSpan.nextSibling.nextSibling.nextSibling.nextSibling' [null] is not an object.
-CONSOLE MESSAGE: line 36: TypeError: Result of expression 'triangleSpan.nextSibling.nextSibling.nextSibling.nextSibling' [null] is not an object.
-CONSOLE MESSAGE: line 40: TypeError: Result of expression 'triangleSpan.nextSibling.nextSibling.nextSibling.nextSibling' [null] is not an object.
+CONSOLE MESSAGE: line 36: TypeError: 'null' is not an object (evaluating 'triangleSpan.nextSibling.nextSibling.nextSibling.nextSibling.style')
+CONSOLE MESSAGE: line 40: TypeError: 'null' is not an object (evaluating 'triangleSpan.nextSibling.nextSibling.nextSibling.nextSibling.style')
+CONSOLE MESSAGE: line 36: TypeError: 'null' is not an object (evaluating 'triangleSpan.nextSibling.nextSibling.nextSibling.nextSibling.style')
+CONSOLE MESSAGE: line 40: TypeError: 'null' is not an object (evaluating 'triangleSpan.nextSibling.nextSibling.nextSibling.nextSibling.style')
 layer at (0,0) size 800x600
   RenderView at (0,0) size 800x600
 layer at (0,0) size 800x600
diff --git a/LayoutTests/platform/mac/svg/custom/createelement-expected.txt b/LayoutTests/platform/mac/svg/custom/createelement-expected.txt
index 4dfe429..406f961 100644
--- a/LayoutTests/platform/mac/svg/custom/createelement-expected.txt
+++ b/LayoutTests/platform/mac/svg/custom/createelement-expected.txt
@@ -1,4 +1,4 @@
-CONSOLE MESSAGE: line 13: TypeError: Result of expression 'green' [null] is not an object.
+CONSOLE MESSAGE: line 13: TypeError: 'null' is not an object (evaluating 'green.setAttribute')
 layer at (0,0) size 800x600
   RenderView at (0,0) size 800x600
 layer at (0,0) size 800x600
diff --git a/LayoutTests/platform/mac/tables/mozilla/bugs/bug53690-1-expected.txt b/LayoutTests/platform/mac/tables/mozilla/bugs/bug53690-1-expected.txt
index fa5a7a8..a7ee8a9 100644
--- a/LayoutTests/platform/mac/tables/mozilla/bugs/bug53690-1-expected.txt
+++ b/LayoutTests/platform/mac/tables/mozilla/bugs/bug53690-1-expected.txt
@@ -1,4 +1,4 @@
-CONSOLE MESSAGE: line 4: TypeError: Result of expression 'document.forms[1]' [undefined] is not an object.
+CONSOLE MESSAGE: line 4: TypeError: 'undefined' is not an object (evaluating 'document.forms[1].action')
 layer at (0,0) size 800x600
   RenderView at (0,0) size 800x600
 layer at (0,0) size 800x600
diff --git a/LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug92868_1-expected.txt b/LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug92868_1-expected.txt
index 16b8ecd..c3022d1 100644
--- a/LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug92868_1-expected.txt
+++ b/LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug92868_1-expected.txt
@@ -1,4 +1,4 @@
-CONSOLE MESSAGE: line 14: TypeError: Result of expression 'document.styleSheets[1]' [undefined] is not an object.
+CONSOLE MESSAGE: line 14: TypeError: 'undefined' is not an object (evaluating 'document.styleSheets[1].disabled = false')
 layer at (0,0) size 800x600
   RenderView at (0,0) size 800x600
 layer at (0,0) size 800x76
diff --git a/LayoutTests/plugins/npruntime/object-from-destroyed-plugin-expected.txt b/LayoutTests/plugins/npruntime/object-from-destroyed-plugin-expected.txt
index f227f2f..aff965a 100644
--- a/LayoutTests/plugins/npruntime/object-from-destroyed-plugin-expected.txt
+++ b/LayoutTests/plugins/npruntime/object-from-destroyed-plugin-expected.txt
@@ -5,6 +5,6 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 PASS testObject.gettingProperty threw exception ReferenceError: Trying to access object from destroyed plug-in..
 PASS testObject.settingProperty = 10 threw exception ReferenceError: Trying to access object from destroyed plug-in..
-PASS testObject() threw exception TypeError: Result of expression 'testObject' [] is not a function..
-PASS new testObject(); threw exception TypeError: Result of expression 'testObject' [] is not a constructor..
+PASS testObject() threw exception TypeError: '' is not a function (evaluating 'testObject()').
+PASS new testObject(); threw exception TypeError: '' is not a constructor (evaluating 'new testObject()').
 
diff --git a/LayoutTests/plugins/npruntime/plugin-scriptable-object-invoke-default-expected.txt b/LayoutTests/plugins/npruntime/plugin-scriptable-object-invoke-default-expected.txt
index 97a943b..26a7535 100644
--- a/LayoutTests/plugins/npruntime/plugin-scriptable-object-invoke-default-expected.txt
+++ b/LayoutTests/plugins/npruntime/plugin-scriptable-object-invoke-default-expected.txt
@@ -7,5 +7,5 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 PASS typeof(pluginWithInvokeDefault) is 'function'
 PASS pluginWithInvokeDefault() is 1
 PASS typeof(pluginWithoutInvokeDefault) is 'object'
-PASS pluginWithoutInvokeDefault() threw exception TypeError: Result of expression 'pluginWithoutInvokeDefault' [[object HTMLEmbedElement]] is not a function..
+PASS pluginWithoutInvokeDefault() threw exception TypeError: '[object HTMLEmbedElement]' is not a function (evaluating 'pluginWithoutInvokeDefault()').
 
diff --git a/LayoutTests/svg/custom/use-nested-missing-target-removed-expected.txt b/LayoutTests/svg/custom/use-nested-missing-target-removed-expected.txt
index 2987891..c5d0f32 100644
--- a/LayoutTests/svg/custom/use-nested-missing-target-removed-expected.txt
+++ b/LayoutTests/svg/custom/use-nested-missing-target-removed-expected.txt
@@ -1,3 +1,3 @@
-CONSOLE MESSAGE: line 7: TypeError: Result of expression 'document.getElementById("myText1")' [null] is not an object.
+CONSOLE MESSAGE: line 7: TypeError: 'null' is not an object (evaluating 'document.getElementById("myText1").id = "myText1"')
 PASS
 
diff --git a/LayoutTests/svg/dom/svgpath-out-of-bounds-getPathSeg-expected.txt b/LayoutTests/svg/dom/svgpath-out-of-bounds-getPathSeg-expected.txt
index 7d5c151..f02ab55 100644
--- a/LayoutTests/svg/dom/svgpath-out-of-bounds-getPathSeg-expected.txt
+++ b/LayoutTests/svg/dom/svgpath-out-of-bounds-getPathSeg-expected.txt
@@ -5,14 +5,14 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 PASS path.pathSegList.initialize(); threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS path.getPathSegAtLength(0) is 0
-PASS path.insertItemBefore(null, 0) threw exception TypeError: Result of expression 'path.insertItemBefore' [undefined] is not a function..
-PASS path.replaceItem(null, 0) threw exception TypeError: Result of expression 'path.replaceItem' [undefined] is not a function..
-PASS path.appendItem(null) threw exception TypeError: Result of expression 'path.appendItem' [undefined] is not a function..
+PASS path.insertItemBefore(null, 0) threw exception TypeError: 'undefined' is not a function (evaluating 'path.insertItemBefore(null, 0)').
+PASS path.replaceItem(null, 0) threw exception TypeError: 'undefined' is not a function (evaluating 'path.replaceItem(null, 0)').
+PASS path.appendItem(null) threw exception TypeError: 'undefined' is not a function (evaluating 'path.appendItem(null)').
 List correctly initialised.
 PASS path.getPathSegAtLength(0) is 0
-PASS path.insertItemBefore(null, 0) threw exception TypeError: Result of expression 'path.insertItemBefore' [undefined] is not a function..
-PASS path.replaceItem(null, 0) threw exception TypeError: Result of expression 'path.replaceItem' [undefined] is not a function..
-PASS path.appendItem(null) threw exception TypeError: Result of expression 'path.appendItem' [undefined] is not a function..
+PASS path.insertItemBefore(null, 0) threw exception TypeError: 'undefined' is not a function (evaluating 'path.insertItemBefore(null, 0)').
+PASS path.replaceItem(null, 0) threw exception TypeError: 'undefined' is not a function (evaluating 'path.replaceItem(null, 0)').
+PASS path.appendItem(null) threw exception TypeError: 'undefined' is not a function (evaluating 'path.appendItem(null)').
 PASS successfullyParsed is true
 
 TEST COMPLETE

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list