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

Unified Diff: src/objects-inl.h

Issue 13542002: Calling a generator function returns a generator object (Closed) Base URL: git://github.com/v8/v8.git@master
Patch Set: Link generator iterator definitions and uses through local variable Created 7 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: src/objects-inl.h
diff --git a/src/objects-inl.h b/src/objects-inl.h
index 8d6f30713173fbe5f93c5543e1a96d56877bb018..416405517fe637a9108f9bd8f44400040e1c25ba 100644
--- a/src/objects-inl.h
+++ b/src/objects-inl.h
@@ -653,6 +653,7 @@ TYPE_CHECKER(Code, CODE_TYPE)
TYPE_CHECKER(Oddball, ODDBALL_TYPE)
TYPE_CHECKER(JSGlobalPropertyCell, JS_GLOBAL_PROPERTY_CELL_TYPE)
TYPE_CHECKER(SharedFunctionInfo, SHARED_FUNCTION_INFO_TYPE)
+TYPE_CHECKER(JSGeneratorIterator, JS_GENERATOR_ITERATOR_TYPE)
TYPE_CHECKER(JSModule, JS_MODULE_TYPE)
TYPE_CHECKER(JSValue, JS_VALUE_TYPE)
TYPE_CHECKER(JSDate, JS_DATE_TYPE)
@@ -1547,6 +1548,8 @@ int JSObject::GetHeaderSize() {
// field operations considerably on average.
if (type == JS_OBJECT_TYPE) return JSObject::kHeaderSize;
switch (type) {
+ case JS_GENERATOR_ITERATOR_TYPE:
+ return JSGeneratorIterator::kSize;
case JS_MODULE_TYPE:
return JSModule::kSize;
case JS_GLOBAL_PROXY_TYPE:
@@ -4970,6 +4973,19 @@ void Foreign::set_foreign_address(Address value) {
}
+ACCESSORS(JSGeneratorIterator, function, JSFunction, kFunctionOffset)
+ACCESSORS(JSGeneratorIterator, context, Object, kContextOffset)
+SMI_ACCESSORS(JSGeneratorIterator, continuation, kContinuationOffset)
+ACCESSORS(JSGeneratorIterator, operand_stack, Object, kOperandStackOffset)
+
+
+JSGeneratorIterator* JSGeneratorIterator::cast(Object* obj) {
+ ASSERT(obj->IsJSGeneratorIterator());
+ ASSERT(HeapObject::cast(obj)->Size() == JSGeneratorIterator::kSize);
+ return reinterpret_cast<JSGeneratorIterator*>(obj);
+}
+
+
ACCESSORS(JSModule, context, Object, kContextOffset)
ACCESSORS(JSModule, scope_info, ScopeInfo, kScopeInfoOffset)

Powered by Google App Engine
This is Rietveld 408576698