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: Source/bindings/core/v8/Iterable.h

Issue 954683002: InlinedVisitor: Migrate bindings to use inlined tracing (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 10 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef Iterable_h 5 #ifndef Iterable_h
6 #define Iterable_h 6 #define Iterable_h
7 7
8 #include "bindings/core/v8/V8IteratorResultValue.h" 8 #include "bindings/core/v8/V8IteratorResultValue.h"
9 #include "bindings/core/v8/V8ScriptRunner.h" 9 #include "bindings/core/v8/V8ScriptRunner.h"
10 #include "core/dom/Iterator.h" 10 #include "core/dom/Iterator.h"
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 } 75 }
76 76
77 class IterationSource : public GarbageCollectedFinalized<IterationSource> { 77 class IterationSource : public GarbageCollectedFinalized<IterationSource> {
78 public: 78 public:
79 virtual ~IterationSource() { } 79 virtual ~IterationSource() { }
80 80
81 // If end of iteration has been reached or an exception thrown: return f alse. 81 // If end of iteration has been reached or an exception thrown: return f alse.
82 // Otherwise: set |key| and |value| and return true. 82 // Otherwise: set |key| and |value| and return true.
83 virtual bool next(ScriptState*, KeyType&, ValueType&, ExceptionState&) = 0; 83 virtual bool next(ScriptState*, KeyType&, ValueType&, ExceptionState&) = 0;
84 84
85 virtual void trace(Visitor*) { } 85 DEFINE_INLINE_VIRTUAL_TRACE() { }
86 }; 86 };
87 87
88 private: 88 private:
89 virtual IterationSource* startIteration(ScriptState*, ExceptionState&) = 0; 89 virtual IterationSource* startIteration(ScriptState*, ExceptionState&) = 0;
90 90
91 struct KeySelector { 91 struct KeySelector {
92 static const KeyType& select(ScriptState*, const KeyType& key, const Val ueType& value) 92 static const KeyType& select(ScriptState*, const KeyType& key, const Val ueType& value)
93 { 93 {
94 return key; 94 return key;
95 } 95 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 return v8IteratorResultDone(scriptState); 130 return v8IteratorResultDone(scriptState);
131 131
132 return v8IteratorResult(scriptState, Selector::select(scriptState, k ey, value)); 132 return v8IteratorResult(scriptState, Selector::select(scriptState, k ey, value));
133 } 133 }
134 134
135 ScriptValue next(ScriptState* scriptState, ScriptValue, ExceptionState& exceptionState) override 135 ScriptValue next(ScriptState* scriptState, ScriptValue, ExceptionState& exceptionState) override
136 { 136 {
137 return next(scriptState, exceptionState); 137 return next(scriptState, exceptionState);
138 } 138 }
139 139
140 void trace(Visitor* visitor) override 140 DEFINE_INLINE_VIRTUAL_TRACE()
141 { 141 {
142 visitor->trace(m_source); 142 visitor->trace(m_source);
143 Iterator::trace(visitor); 143 Iterator::trace(visitor);
144 } 144 }
145 145
146 private: 146 private:
147 Member<IterationSource> m_source; 147 Member<IterationSource> m_source;
148 }; 148 };
149 }; 149 };
150 150
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 public: 192 public:
193 Iterator* iterator(ScriptState* scriptState, ExceptionState& exceptionState) 193 Iterator* iterator(ScriptState* scriptState, ExceptionState& exceptionState)
194 { 194 {
195 return this->entriesForBinding(scriptState, exceptionState); 195 return this->entriesForBinding(scriptState, exceptionState);
196 } 196 }
197 }; 197 };
198 198
199 } // namespace blink 199 } // namespace blink
200 200
201 #endif // Iterable_h 201 #endif // Iterable_h
OLDNEW
« no previous file with comments | « no previous file | Source/bindings/core/v8/Nullable.h » ('j') | Source/bindings/core/v8/ScriptDebugServer.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698