| Index: Source/bindings/core/v8/ScriptPromise.cpp | 
| diff --git a/Source/bindings/core/v8/ScriptPromise.cpp b/Source/bindings/core/v8/ScriptPromise.cpp | 
| index 44c6a93757a79a9ee69721c34e67d0878cab27d3..511f1c02bb24056c6310c422578688faf91a47af 100644 | 
| --- a/Source/bindings/core/v8/ScriptPromise.cpp | 
| +++ b/Source/bindings/core/v8/ScriptPromise.cpp | 
| @@ -31,7 +31,10 @@ | 
| #include "config.h" | 
| #include "bindings/core/v8/ScriptPromise.h" | 
|  | 
| +#include "bindings/core/v8/ExceptionMessages.h" | 
| +#include "bindings/core/v8/ExceptionState.h" | 
| #include "bindings/core/v8/V8Binding.h" | 
| +#include "bindings/core/v8/V8ThrowException.h" | 
| #include "core/dom/DOMException.h" | 
|  | 
| #include <v8.h> | 
| @@ -164,4 +167,64 @@ ScriptPromise ScriptPromise::rejectWithDOMException(ScriptState* scriptState, Pa | 
| return reject(scriptState, V8ValueTraits<PassRefPtrWillBeRawPtr<DOMException> >::toV8Value(exception, scriptState->context()->Global(), scriptState->isolate())); | 
| } | 
|  | 
| +ScriptPromise ScriptPromise::rejectWithError(ScriptState* scriptState, V8ErrorType type, const String& message) | 
| +{ | 
| +    v8::Isolate* isolate = scriptState->isolate(); | 
| +    return reject(scriptState, V8ThrowException::createError(type, message, isolate)); | 
| +} | 
| + | 
| +ScriptPromise ScriptPromise::rejectWithTypeError(ScriptState* scriptState, const String& message) | 
| +{ | 
| +    v8::Isolate* isolate = scriptState->isolate(); | 
| +    return reject(scriptState, V8ThrowException::createTypeError(message, isolate)); | 
| +} | 
| + | 
| +ScriptPromise ScriptPromise::rejectWithArityTypeErrorForMethod(ScriptState* scriptState, const char* method, const char* type, const char* valid, unsigned provided) | 
| +{ | 
| +    String message = ExceptionMessages::failedToExecute(method, type, ExceptionMessages::invalidArity(valid, provided)); | 
| +    return rejectWithTypeError(scriptState, message); | 
| +} | 
| + | 
| +ScriptPromise ScriptPromise::rejectWithArityTypeErrorForConstructor(ScriptState* scriptState, const char* type, const char* valid, unsigned provided) | 
| +{ | 
| +    String message = ExceptionMessages::failedToConstruct(type, ExceptionMessages::invalidArity(valid, provided)); | 
| +    return rejectWithTypeError(scriptState, message); | 
| +} | 
| + | 
| +ScriptPromise ScriptPromise::rejectWithArityTypeError(ScriptState* scriptState, ExceptionState& exceptionState, const char* valid, unsigned provided) | 
| +{ | 
| +    exceptionState.throwTypeError(ExceptionMessages::invalidArity(valid, provided)); | 
| +    return exceptionState.reject(scriptState); | 
| +} | 
| + | 
| +ScriptPromise ScriptPromise::rejectWithMinimumArityTypeErrorForMethod( | 
| +    ScriptState* scriptState, const char* method, const char* type, unsigned expected, unsigned providedLeastNumMandatoryParams) | 
| +{ | 
| +    String message = ExceptionMessages::failedToExecute(method, type, ExceptionMessages::notEnoughArguments(expected, providedLeastNumMandatoryParams)); | 
| +    return rejectWithTypeError(scriptState, message); | 
| +} | 
| + | 
| +ScriptPromise ScriptPromise::rejectWithMinimumArityTypeErrorForConstructor( | 
| +    ScriptState* scriptState, const char* type, unsigned expected, unsigned providedLeastNumMandatoryParams) | 
| +{ | 
| +    String message = ExceptionMessages::failedToConstruct(type, ExceptionMessages::notEnoughArguments(expected, providedLeastNumMandatoryParams)); | 
| +    return rejectWithTypeError(scriptState, message); | 
| +} | 
| + | 
| +ScriptPromise ScriptPromise::rejectWithMinimumArityTypeError(ScriptState* scriptState, ExceptionState& exceptionState, unsigned expected, unsigned providedLeastNumMandatoryParams) | 
| +{ | 
| +    exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(expected, providedLeastNumMandatoryParams)); | 
| +    return exceptionState.reject(scriptState); | 
| +} | 
| + | 
| +v8::Local<v8::Promise> ScriptPromise::rejectRaw(v8::Isolate* isolate, v8::Handle<v8::Value> value) | 
| +{ | 
| +    if (value.IsEmpty()) | 
| +        return v8::Local<v8::Promise>(); | 
| +    v8::Local<v8::Promise::Resolver> resolver = v8::Promise::Resolver::New(isolate); | 
| +    v8::Local<v8::Promise> promise = resolver->GetPromise(); | 
| +    resolver->Reject(value); | 
| +    return promise; | 
| +} | 
| + | 
| } // namespace blink | 
|  |