Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: third_party/WebKit/Source/bindings/core/v8/V8Binding.h

Issue 2817533003: Replace ASSERT, RELEASE_ASSERT, and ASSERT_NOT_REACHED in bindings (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * Copyright (C) 2012 Ericsson AB. All rights reserved. 3 * Copyright (C) 2012 Ericsson AB. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 212
213 template <typename CallbackInfo, typename T> 213 template <typename CallbackInfo, typename T>
214 inline void V8SetReturnValue(const CallbackInfo& callback_info, 214 inline void V8SetReturnValue(const CallbackInfo& callback_info,
215 PassRefPtr<T> impl) { 215 PassRefPtr<T> impl) {
216 V8SetReturnValue(callback_info, impl.Get()); 216 V8SetReturnValue(callback_info, impl.Get());
217 } 217 }
218 218
219 template <typename CallbackInfo> 219 template <typename CallbackInfo>
220 inline void V8SetReturnValueForMainWorld(const CallbackInfo& callback_info, 220 inline void V8SetReturnValueForMainWorld(const CallbackInfo& callback_info,
221 ScriptWrappable* impl) { 221 ScriptWrappable* impl) {
222 ASSERT(DOMWrapperWorld::Current(callback_info.GetIsolate()).IsMainWorld()); 222 DCHECK(DOMWrapperWorld::Current(callback_info.GetIsolate()).IsMainWorld());
223 if (UNLIKELY(!impl)) { 223 if (UNLIKELY(!impl)) {
224 V8SetReturnValueNull(callback_info); 224 V8SetReturnValueNull(callback_info);
225 return; 225 return;
226 } 226 }
227 if (DOMDataStore::SetReturnValueForMainWorld(callback_info.GetReturnValue(), 227 if (DOMDataStore::SetReturnValueForMainWorld(callback_info.GetReturnValue(),
228 impl)) 228 impl))
229 return; 229 return;
230 v8::Local<v8::Object> wrapper = 230 v8::Local<v8::Object> wrapper =
231 impl->Wrap(callback_info.GetIsolate(), callback_info.Holder()); 231 impl->Wrap(callback_info.GetIsolate(), callback_info.Holder());
232 V8SetReturnValue(callback_info, wrapper); 232 V8SetReturnValue(callback_info, wrapper);
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
549 CORE_EXPORT int64_t ToInt64Slow(v8::Isolate*, 549 CORE_EXPORT int64_t ToInt64Slow(v8::Isolate*,
550 v8::Local<v8::Value>, 550 v8::Local<v8::Value>,
551 IntegerConversionConfiguration, 551 IntegerConversionConfiguration,
552 ExceptionState&); 552 ExceptionState&);
553 inline int64_t ToInt64(v8::Isolate* isolate, 553 inline int64_t ToInt64(v8::Isolate* isolate,
554 v8::Local<v8::Value> value, 554 v8::Local<v8::Value> value,
555 IntegerConversionConfiguration configuration, 555 IntegerConversionConfiguration configuration,
556 ExceptionState& exception_state) { 556 ExceptionState& exception_state) {
557 // Clamping not supported for int64_t/long long int. See 557 // Clamping not supported for int64_t/long long int. See
558 // Source/wtf/MathExtras.h. 558 // Source/wtf/MathExtras.h.
559 ASSERT(configuration != kClamp); 559 DCHECK_NE(configuration, kClamp);
560 560
561 // Fast case. The value is a 32-bit integer. 561 // Fast case. The value is a 32-bit integer.
562 if (LIKELY(value->IsInt32())) 562 if (LIKELY(value->IsInt32()))
563 return value.As<v8::Int32>()->Value(); 563 return value.As<v8::Int32>()->Value();
564 564
565 return ToInt64Slow(isolate, value, configuration, exception_state); 565 return ToInt64Slow(isolate, value, configuration, exception_state);
566 } 566 }
567 567
568 // Convert a value to a 64-bit unsigned integer. The conversion fails if the 568 // Convert a value to a 64-bit unsigned integer. The conversion fails if the
569 // value cannot be converted to a number or the range violated per WebIDL: 569 // value cannot be converted to a number or the range violated per WebIDL:
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
637 return std::numeric_limits<double>::quiet_NaN(); 637 return std::numeric_limits<double>::quiet_NaN();
638 if (!object->IsDate()) { 638 if (!object->IsDate()) {
639 exception_state.ThrowTypeError("The provided value is not a Date."); 639 exception_state.ThrowTypeError("The provided value is not a Date.");
640 return 0; 640 return 0;
641 } 641 }
642 return object.As<v8::Date>()->ValueOf(); 642 return object.As<v8::Date>()->ValueOf();
643 } 643 }
644 644
645 inline v8::MaybeLocal<v8::Value> V8DateOrNaN(v8::Isolate* isolate, 645 inline v8::MaybeLocal<v8::Value> V8DateOrNaN(v8::Isolate* isolate,
646 double value) { 646 double value) {
647 ASSERT(isolate); 647 DCHECK(isolate);
648 return v8::Date::New(isolate->GetCurrentContext(), value); 648 return v8::Date::New(isolate->GetCurrentContext(), value);
649 } 649 }
650 650
651 // FIXME: Remove the special casing for NodeFilter and XPathNSResolver. 651 // FIXME: Remove the special casing for NodeFilter and XPathNSResolver.
652 NodeFilter* ToNodeFilter(v8::Local<v8::Value>, 652 NodeFilter* ToNodeFilter(v8::Local<v8::Value>,
653 v8::Local<v8::Object>, 653 v8::Local<v8::Object>,
654 ScriptState*); 654 ScriptState*);
655 XPathNSResolver* ToXPathNSResolver(ScriptState*, v8::Local<v8::Value>); 655 XPathNSResolver* ToXPathNSResolver(ScriptState*, v8::Local<v8::Value>);
656 656
657 bool ToV8Sequence(v8::Local<v8::Value>, 657 bool ToV8Sequence(v8::Local<v8::Value>,
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
845 845
846 // Validates that the passed object is a sequence type per WebIDL spec 846 // Validates that the passed object is a sequence type per WebIDL spec
847 // http://www.w3.org/TR/2012/CR-WebIDL-20120419/#es-sequence 847 // http://www.w3.org/TR/2012/CR-WebIDL-20120419/#es-sequence
848 inline bool ToV8Sequence(v8::Local<v8::Value> value, 848 inline bool ToV8Sequence(v8::Local<v8::Value> value,
849 uint32_t& length, 849 uint32_t& length,
850 v8::Isolate* isolate, 850 v8::Isolate* isolate,
851 ExceptionState& exception_state) { 851 ExceptionState& exception_state) {
852 // Attempt converting to a sequence if the value is not already an array but 852 // Attempt converting to a sequence if the value is not already an array but
853 // is any kind of object except for a native Date object or a native RegExp 853 // is any kind of object except for a native Date object or a native RegExp
854 // object. 854 // object.
855 ASSERT(!value->IsArray()); 855 DCHECK(!value->IsArray());
856 // FIXME: Do we really need to special case Date and RegExp object? 856 // FIXME: Do we really need to special case Date and RegExp object?
857 // https://www.w3.org/Bugs/Public/show_bug.cgi?id=22806 857 // https://www.w3.org/Bugs/Public/show_bug.cgi?id=22806
858 if (!value->IsObject() || value->IsDate() || value->IsRegExp()) { 858 if (!value->IsObject() || value->IsDate() || value->IsRegExp()) {
859 // The caller is responsible for reporting a TypeError. 859 // The caller is responsible for reporting a TypeError.
860 return false; 860 return false;
861 } 861 }
862 862
863 v8::Local<v8::Object> object = v8::Local<v8::Object>::Cast(value); 863 v8::Local<v8::Object> object = v8::Local<v8::Object>::Cast(value);
864 v8::Local<v8::String> length_symbol = V8AtomicString(isolate, "length"); 864 v8::Local<v8::String> length_symbol = V8AtomicString(isolate, "length");
865 865
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
1159 // If the argument isn't an object, this will crash. 1159 // If the argument isn't an object, this will crash.
1160 CORE_EXPORT v8::Local<v8::Value> FreezeV8Object(v8::Local<v8::Value>, 1160 CORE_EXPORT v8::Local<v8::Value> FreezeV8Object(v8::Local<v8::Value>,
1161 v8::Isolate*); 1161 v8::Isolate*);
1162 1162
1163 CORE_EXPORT v8::Local<v8::Value> FromJSONString(v8::Isolate*, 1163 CORE_EXPORT v8::Local<v8::Value> FromJSONString(v8::Isolate*,
1164 const String& stringified_json, 1164 const String& stringified_json,
1165 ExceptionState&); 1165 ExceptionState&);
1166 } // namespace blink 1166 } // namespace blink
1167 1167
1168 #endif // V8Binding_h 1168 #endif // V8Binding_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698