Permalink
Fetching contributors…
Cannot retrieve contributors at this time
469 lines (462 sloc) 10.2 KB
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="14.1.1">
<zoom_level>10</zoom_level>
<element>
<id>UMLClass</id>
<coordinates>
<x>390</x>
<y>70</y>
<w>160</w>
<h>30</h>
</coordinates>
<panel_attributes>Object.prototype
bg=#cceecc</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLNote</id>
<coordinates>
<x>390</x>
<y>0</y>
<w>160</w>
<h>50</h>
</coordinates>
<panel_attributes>[[Prototype]] of
Object.prototype is null
bg=#ffeeee</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>390</x>
<y>140</y>
<w>160</w>
<h>100</h>
</coordinates>
<panel_attributes>Function.prototype
--
@@hasInstance()
apply()
bind()
call()
bg=#cceecc</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>480</x>
<y>90</y>
<w>30</w>
<h>70</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;10.0;50.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>390</x>
<y>270</y>
<w>160</w>
<h>60</h>
</coordinates>
<panel_attributes>%Generator%
--
@@toStringTag =
"GeneratorFunction"
bg=#cceecc</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>480</x>
<y>230</y>
<w>30</w>
<h>60</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;10.0;40.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>390</x>
<y>420</y>
<w>160</w>
<h>50</h>
</coordinates>
<panel_attributes>&lt;&lt;callable&gt;&gt;
function *g1() { yield; }</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>480</x>
<y>320</y>
<w>30</w>
<h>120</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;10.0;100.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>40</x>
<y>180</y>
<w>160</w>
<h>60</h>
</coordinates>
<panel_attributes>&lt;&lt;constructor&gt;&gt;
&lt;&lt;callable&gt;&gt;
Function
bg=#cceecc</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>130</x>
<y>150</y>
<w>280</w>
<h>50</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>260.0;10.0;10.0;10.0;10.0;30.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>40</x>
<y>270</y>
<w>160</w>
<h>60</h>
</coordinates>
<panel_attributes>&lt;&lt;constructor&gt;&gt;
&lt;&lt;callable&gt;&gt;
%GeneratorFunction%
bg=#cceecc</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>130</x>
<y>230</y>
<w>30</w>
<h>60</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;10.0;40.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>190</x>
<y>300</y>
<w>220</w>
<h>40</h>
</coordinates>
<panel_attributes>lt=&lt;-&gt;
m2=constructor
m1=prototype</panel_attributes>
<additional_attributes>10.0;10.0;200.0;10.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>740</x>
<y>190</y>
<w>160</w>
<h>50</h>
</coordinates>
<panel_attributes>%IteratorPrototype%
--
@@iterator() : object
bg=#cceecc</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>740</x>
<y>270</y>
<w>160</w>
<h>120</h>
</coordinates>
<panel_attributes>%GeneratorPrototype%
--
@@toStringTag =
"Generator"
--
next() : object
return()
throw()
bg=#cceecc</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>540</x>
<y>70</y>
<w>300</w>
<h>140</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;280.0;10.0;280.0;120.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>740</x>
<y>420</y>
<w>160</w>
<h>30</h>
</coordinates>
<panel_attributes>g1.prototype</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>740</x>
<y>500</y>
<w>160</w>
<h>30</h>
</coordinates>
<panel_attributes>g1()</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>810</x>
<y>230</y>
<w>30</w>
<h>60</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;10.0;40.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>810</x>
<y>380</y>
<w>30</w>
<h>60</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;10.0;40.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>810</x>
<y>440</y>
<w>30</w>
<h>80</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;10.0;60.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>540</x>
<y>430</y>
<w>220</w>
<h>40</h>
</coordinates>
<panel_attributes>lt=-&gt;
m1=prototype</panel_attributes>
<additional_attributes>10.0;10.0;200.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>540</x>
<y>450</y>
<w>220</w>
<h>70</h>
</coordinates>
<panel_attributes>lt=&lt;.
</panel_attributes>
<additional_attributes>10.0;10.0;200.0;50.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>190</x>
<y>310</y>
<w>220</w>
<h>130</h>
</coordinates>
<panel_attributes>lt=&lt;.
</panel_attributes>
<additional_attributes>10.0;10.0;200.0;110.0</additional_attributes>
</element>
<element>
<id>UMLNote</id>
<coordinates>
<x>570</x>
<y>200</y>
<w>150</w>
<h>90</h>
</coordinates>
<panel_attributes>%Generator% is an
ordinary object that
serves as the abstract
constructor of
Generator instances.
bg=#ffeeee</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>540</x>
<y>230</y>
<w>50</w>
<h>60</h>
</coordinates>
<panel_attributes>lt=.</panel_attributes>
<additional_attributes>10.0;40.0;30.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>480</x>
<y>40</y>
<w>30</w>
<h>50</h>
</coordinates>
<panel_attributes>lt=.</panel_attributes>
<additional_attributes>10.0;30.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>540</x>
<y>300</y>
<w>220</w>
<h>40</h>
</coordinates>
<panel_attributes>lt=&lt;-&gt;
m2=constructor
m1=prototype</panel_attributes>
<additional_attributes>10.0;10.0;200.0;10.0</additional_attributes>
</element>
<element>
<id>UMLNote</id>
<coordinates>
<x>230</x>
<y>430</y>
<w>140</w>
<h>60</h>
</coordinates>
<panel_attributes>A typical generator
function. It is not a
constructor.
bg=#ffeeee</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>360</x>
<y>440</y>
<w>50</w>
<h>30</h>
</coordinates>
<panel_attributes>lt=.</panel_attributes>
<additional_attributes>10.0;10.0;30.0;10.0</additional_attributes>
</element>
<element>
<id>UMLNote</id>
<coordinates>
<x>40</x>
<y>350</y>
<w>180</w>
<h>190</h>
</coordinates>
<panel_attributes>%GeneratorFunction%
and %Generator% do not
have global names.
%GeneratorFunction% is
essentially a subclass of
Function and is structured
as if it were declared as:
class extends Function { }
bg=#ffeeeee</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>130</x>
<y>320</y>
<w>30</w>
<h>50</h>
</coordinates>
<panel_attributes>lt=.</panel_attributes>
<additional_attributes>10.0;10.0;10.0;30.0</additional_attributes>
</element>
<element>
<id>UMLNote</id>
<coordinates>
<x>340</x>
<y>500</y>
<w>380</w>
<h>120</h>
</coordinates>
<panel_attributes>Each Generator Function has an associated prototype
that does not have a constructor property. Hence a
generator instance does not expose access to its generator
function.
But the prototype may be used to add additional
behavior to its generator function's instances.
bg=#ffeeee</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>710</x>
<y>510</y>
<w>50</w>
<h>30</h>
</coordinates>
<panel_attributes>lt=.</panel_attributes>
<additional_attributes>10.0;10.0;30.0;10.0</additional_attributes>
</element>
<element>
<id>Text</id>
<coordinates>
<x>350</x>
<y>380</y>
<w>90</w>
<h>30</h>
</coordinates>
<panel_attributes>instanceof
style=wordwrap</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Text</id>
<coordinates>
<x>670</x>
<y>470</y>
<w>90</w>
<h>30</h>
</coordinates>
<panel_attributes>instanceof
style=wordwrap</panel_attributes>
<additional_attributes/>
</element>
</diagram>