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

Unified Diff: Source/core/dom/DOMStringMap.h

Issue 106853005: Implement platform deleters per spec. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Switch to DeleteResult enum + extend scheme to indexed deleters Created 7 years 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 side-by-side diff with in-line comments
Download patch
Index: Source/core/dom/DOMStringMap.h
diff --git a/Source/core/dom/DOMStringMap.h b/Source/core/dom/DOMStringMap.h
index 22ce97497f1d8f1e8c2f263057966803eb0719af..fb4d17bc72d67e05e552096d2f58cd18be92ec2a 100644
--- a/Source/core/dom/DOMStringMap.h
+++ b/Source/core/dom/DOMStringMap.h
@@ -28,6 +28,7 @@
#include "bindings/v8/ExceptionState.h"
#include "bindings/v8/ScriptWrappable.h"
+#include "bindings/v8/V8Binding.h"
#include "wtf/Noncopyable.h"
#include "wtf/Vector.h"
#include "wtf/text/WTFString.h"
@@ -48,24 +49,16 @@ public:
virtual String item(const String& name) = 0;
virtual bool contains(const String& name) = 0;
virtual void setItem(const String& name, const String& value, ExceptionState&) = 0;
- virtual void deleteItem(const String& name, ExceptionState&) = 0;
+ virtual bool deleteItem(const String& name) = 0;
bool anonymousNamedSetter(const String& name, const String& value, ExceptionState& exceptionState)
{
setItem(name, value, exceptionState);
return true;
}
- bool anonymousNamedDeleter(const AtomicString& name, ExceptionState&)
+ DeleteResult anonymousNamedDeleter(const AtomicString& name)
{
- // FIXME: Remove ExceptionState parameter.
-
- TrackExceptionState exceptionState;
- deleteItem(name, exceptionState);
- bool result = !exceptionState.hadException();
- // DOMStringMap deleter should ignore exception.
- // Behavior of Firefox and Opera are same.
- // delete document.body.dataset["-foo"] // false instead of DOM Exception 12
- // LayoutTests/fast/dom/HTMLSelectElement/select-selectedIndex-multiple.html
- return result;
+ bool knownProperty = deleteItem(name);
+ return knownProperty ? DeleteSuccess : DeleteUnknownProperty;
}
void namedPropertyEnumerator(Vector<String>& names, ExceptionState&)
{
@@ -81,9 +74,9 @@ public:
{
return anonymousNamedSetter(String::number(index), value, exceptionState);
}
- bool anonymousIndexedDeleter(uint32_t index, ExceptionState& exceptionState)
+ DeleteResult anonymousIndexedDeleter(uint32_t index)
{
- return anonymousNamedDeleter(AtomicString::number(index), exceptionState);
+ return anonymousNamedDeleter(AtomicString::number(index));
}
virtual Element* element() = 0;

Powered by Google App Engine
This is Rietveld 408576698