| Index: Source/bindings/core/v8/V8Binding.cpp
|
| diff --git a/Source/bindings/core/v8/V8Binding.cpp b/Source/bindings/core/v8/V8Binding.cpp
|
| index fd48a502ada3ea0db78f4fb100a94108dd3550de..ded3ae6ae1aa719cd18b9b8eeb34a4a7bc3dface 100644
|
| --- a/Source/bindings/core/v8/V8Binding.cpp
|
| +++ b/Source/bindings/core/v8/V8Binding.cpp
|
| @@ -351,38 +351,16 @@ int32_t toInt32(v8::Handle<v8::Value> value)
|
| return toInt32(value, NormalConversion, exceptionState);
|
| }
|
|
|
| -uint32_t toUInt32(v8::Handle<v8::Value> value, IntegerConversionConfiguration configuration, ExceptionState& exceptionState)
|
| +uint32_t toUInt32Slow(v8::Handle<v8::Value> value, IntegerConversionConfiguration configuration, ExceptionState& exceptionState)
|
| {
|
| - // Fast case. The value is already a 32-bit unsigned integer.
|
| - if (value->IsUint32())
|
| - return value->Uint32Value();
|
| -
|
| - // Fast case. The value is a 32-bit signed integer - possibly positive?
|
| - if (value->IsInt32()) {
|
| - int32_t result = value->Int32Value();
|
| - if (result >= 0)
|
| - return result;
|
| - if (configuration == EnforceRange) {
|
| - exceptionState.throwTypeError("Value is outside the 'unsigned long' value range.");
|
| - return 0;
|
| - }
|
| - if (configuration == Clamp)
|
| - return clampTo<uint32_t>(result);
|
| - return result;
|
| - }
|
| -
|
| - v8::Local<v8::Number> numberObject;
|
| - if (value->IsNumber()) {
|
| - numberObject = value.As<v8::Number>();
|
| - } else {
|
| - v8::Isolate* isolate = v8::Isolate::GetCurrent();
|
| - // Can the value be converted to a number?
|
| - v8::TryCatch block(isolate);
|
| - numberObject = value->ToNumber(isolate);
|
| - if (block.HasCaught()) {
|
| - exceptionState.rethrowV8Exception(block.Exception());
|
| - return 0;
|
| - }
|
| + ASSERT(!value->IsUint32() || !value->IsInt32()());
|
| + v8::Isolate* isolate = v8::Isolate::GetCurrent();
|
| + // Can the value be converted to a number?
|
| + v8::Local<v8::Number> numberObject = value->ToNumber(isolate);
|
| + v8::TryCatch block(isolate);
|
| + if (block.HasCaught()) {
|
| + exceptionState.rethrowV8Exception(block.Exception());
|
| + return 0;
|
| }
|
| ASSERT(!numberObject.IsEmpty());
|
|
|
|
|