| Index: Source/bindings/v8/custom/V8DocumentCustom.cpp
 | 
| diff --git a/Source/bindings/v8/custom/V8DocumentCustom.cpp b/Source/bindings/v8/custom/V8DocumentCustom.cpp
 | 
| index 2dfb0f183d3ad52b63276180f162311410bb900d..94ed248cb90c1d000dc7bc1254b04575a19a8d0c 100644
 | 
| --- a/Source/bindings/v8/custom/V8DocumentCustom.cpp
 | 
| +++ b/Source/bindings/v8/custom/V8DocumentCustom.cpp
 | 
| @@ -39,6 +39,7 @@
 | 
|  #include "V8WebGLRenderingContext.h"
 | 
|  #include "V8XPathNSResolver.h"
 | 
|  #include "V8XPathResult.h"
 | 
| +#include "bindings/v8/ExceptionMessages.h"
 | 
|  #include "bindings/v8/ExceptionState.h"
 | 
|  #include "bindings/v8/ScriptController.h"
 | 
|  #include "bindings/v8/V8Binding.h"
 | 
| @@ -66,9 +67,11 @@ void V8Document::evaluateMethodCustom(const v8::FunctionCallbackInfo<v8::Value>&
 | 
|      if (V8Node::hasInstance(info[1], info.GetIsolate(), worldType(info.GetIsolate())))
 | 
|          contextNode = V8Node::toNative(v8::Handle<v8::Object>::Cast(info[1]));
 | 
|  
 | 
| -    RefPtr<XPathNSResolver> resolver = toXPathNSResolver(info[2], info.GetIsolate());
 | 
| -    if (!resolver && !info[2]->IsNull() && !info[2]->IsUndefined()) {
 | 
| -        setDOMException(TypeMismatchError, info.GetIsolate());
 | 
| +    const int resolverArgumentIndex = 2;
 | 
| +    RefPtr<XPathNSResolver> resolver = toXPathNSResolver(info[resolverArgumentIndex], info.GetIsolate());
 | 
| +    if (!resolver && !isUndefinedOrNull(info[resolverArgumentIndex])) {
 | 
| +        exceptionState.throwTypeError(ExceptionMessages::incorrectArgumentType(resolverArgumentIndex + 1, "is not a resolver function."));
 | 
| +        exceptionState.throwIfNeeded();
 | 
|          return;
 | 
|      }
 | 
|  
 | 
| 
 |