Index: Source/bindings/core/v8/V8Binding.cpp |
diff --git a/Source/bindings/core/v8/V8Binding.cpp b/Source/bindings/core/v8/V8Binding.cpp |
index 866ef4f527700fb9958e424ac46f1d93eff70408..712c6454a3202caab6b5123db75a49d3c3f85b2b 100644 |
--- a/Source/bindings/core/v8/V8Binding.cpp |
+++ b/Source/bindings/core/v8/V8Binding.cpp |
@@ -519,6 +519,18 @@ float toFloat(v8::Handle<v8::Value> value, ExceptionState& exceptionState) |
return static_cast<float>(toDouble(value, exceptionState)); |
} |
+float toRestrictedFloat(v8::Handle<v8::Value> value, ExceptionState& exceptionState) |
+{ |
+ float numberValue = toFloat(value, exceptionState); |
+ if (exceptionState.hadException()) |
+ return 0; |
+ if (!std::isfinite(numberValue)) { |
+ exceptionState.throwTypeError("The provided float value is non-finite."); |
a.suchit2
2015/02/20 15:03:12
Why are we not throwing NotSupportedError from her
Jens Widell
2015/02/20 15:16:46
We're throwing TypeError here because that's what
a.suchit2
2015/02/21 09:35:26
Thanks Jens
|
+ return 0; |
+ } |
+ return numberValue; |
+} |
+ |
double toDouble(v8::Handle<v8::Value> value, ExceptionState& exceptionState) |
{ |
if (value->IsNumber()) |
@@ -534,6 +546,18 @@ double toDouble(v8::Handle<v8::Value> value, ExceptionState& exceptionState) |
return numberObject->NumberValue(); |
} |
+double toRestrictedDouble(v8::Handle<v8::Value> value, ExceptionState& exceptionState) |
+{ |
+ double numberValue = toDouble(value, exceptionState); |
+ if (exceptionState.hadException()) |
+ return 0; |
+ if (!std::isfinite(numberValue)) { |
+ exceptionState.throwTypeError("The provided double value is non-finite."); |
a.suchit2
2015/02/20 15:03:12
same as above.
|
+ return 0; |
+ } |
+ return numberValue; |
+} |
+ |
String toByteString(v8::Handle<v8::Value> value, ExceptionState& exceptionState) |
{ |
// Handle null default value. |