<!-- ##### SECTION Title ##### -->
Creating JavaScript classes

<!-- ##### SECTION Short_Description ##### -->
Dealing with Seed class definitions and constructors

<!-- ##### SECTION Long_Description ##### -->
<para>
Defining new Seed classes allows for implementing more complex
behavior than possible with the traditional JavaScript object system
and default class.

When writing Seed modules, it is often the best pattern to define many
of your types through classes and static functions/value.

Please note that inside the finalize callback of a class, it is not
legal to call any method requiring a #SeedContext (with the exception
of protect/unprotect, though it is not guaranteed this will continue
to work with future versions of JSCore).
</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### SECTION Image ##### -->


<!-- ##### ENUM SeedPropertyAttributes ##### -->
<para>

</para>

@SEED_PROPERTY_ATTRIBUTE_NONE: 
@SEED_PROPERTY_ATTRIBUTE_READ_ONLY: 
@SEED_PROPERTY_ATTRIBUTE_DONT_ENUM: 
@SEED_PROPERTY_ATTRIBUTE_DONT_DELETE: 

<!-- ##### ENUM SeedClassAttributes ##### -->
<para>

</para>

@SEED_CLASS_ATTRIBUTE_NONE: 
@SEED_CLASS_ATTRIBUTE_NO_SHARED_PROTOTYPE: 

<!-- ##### TYPEDEF SeedClass ##### -->
<para>

</para>


<!-- ##### MACRO seed_empty_class ##### -->
<para>

</para>



<!-- ##### FUNCTION seed_create_class ##### -->
<para>

</para>

@def: 
@Returns: 


<!-- ##### FUNCTION seed_make_constructor ##### -->
<para>

</para>

@ctx: 
@klass: 
@constructor: 
@Returns: 


