Changeset 192935 in webkit for trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.cpp
- Timestamp:
- Dec 1, 2015, 5:37:19 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.cpp
r192914 r192935 35 35 #include "ErrorHandlingScope.h" 36 36 #include "ExceptionFuzz.h" 37 #include "GeneratorFrame.h"38 37 #include "GetterSetter.h" 39 38 #include "HostCallReturnValue.h" … … 646 645 } 647 646 648 SLOW_PATH_DECL(slow_path_save)649 {650 // Only save variables and temporary registers. The scope registers are included in them.651 // But parameters are not included. Because the generator implementation replaces the values of parameters on each generator.next() call.652 BEGIN();653 JSValue generator = OP(1).jsValue();654 GeneratorFrame* frame = nullptr;655 JSValue value = generator.get(exec, exec->propertyNames().generatorFramePrivateName);656 if (!value.isNull())657 frame = jsCast<GeneratorFrame*>(value);658 else {659 // FIXME: Once JSGenerator specialized object is introduced, this GeneratorFrame should be embeded into it to avoid allocations.660 // https://bugs.webkit.org/show_bug.cgi?id=151545661 frame = GeneratorFrame::create(exec->vm(), exec->codeBlock()->numCalleeLocals());662 PutPropertySlot slot(generator, true, PutPropertySlot::PutById);663 asObject(generator)->methodTable(exec->vm())->put(asObject(generator), exec, exec->propertyNames().generatorFramePrivateName, frame, slot);664 }665 unsigned liveCalleeLocalsIndex = pc[2].u.unsignedValue;666 frame->save(exec, exec->codeBlock()->liveCalleeLocalsAtYield(liveCalleeLocalsIndex));667 END();668 }669 670 SLOW_PATH_DECL(slow_path_resume)671 {672 BEGIN();673 JSValue generator = OP(1).jsValue();674 GeneratorFrame* frame = jsCast<GeneratorFrame*>(generator.get(exec, exec->propertyNames().generatorFramePrivateName));675 unsigned liveCalleeLocalsIndex = pc[2].u.unsignedValue;676 frame->resume(exec, exec->codeBlock()->liveCalleeLocalsAtYield(liveCalleeLocalsIndex));677 END();678 }679 680 647 SLOW_PATH_DECL(slow_path_create_lexical_environment) 681 648 {
Note:
See TracChangeset
for help on using the changeset viewer.