8145344: Add SHA1 and SHA-224 to preferred provider list for solaris-sparc
Reviewed-by: vinnie, jnimeh
Nasgen is a tool for processing Java classes that implement nativeJavaScript objects. It does so by looking for thecom.oracle.nashorn.objects.annotations.ScriptClass annotation and otherannotations in that package.For each class "C", nasgen instruments the original class and generatestwo additional classes: a "C$Prototype" class for the JavaScriptprototype object, and a "C$Constructor" class for the JavaScriptconstructor function.Each class instrumented or generated by nasgen contains a private static"$nasgenmap$" field of type com.oracle.nashorn.runtime.PropertyMap andstatic initializer block to initialize the field to the object'sJavaScript properties.Members annotated with @Function, @Property, @Getter, and @Setter aremapped to the $Constructor, $Prototype, or main class, depending on thevalue of the annotation's 'where' field. By default, @Property, @Getter,and @Setter belong to the main class while @Function methods withoutexplicit 'where' field belong to the $Prototype class. The @Constructorannotation marks a method to be invoked as JavaScript constructor.Nasgen enforces all @Function/@Getter/@Setter/@Constructor annotatedmethods to be declared as static. Static final @Property fields remainin the main class while other @Property fields are moved to respectiveclasses depending on the annotation's 'where' value. For functionsmapped to the $Prototype or $Constructor class, nasgen also generatesgetters and setters prefixed by G$ and S$, respectively.Nasgen-generated classes are hidden from normal ClassLoaders by givingthem a ".clazz" file name extension instead of the standard ".class"extension. This allows script classes to be loaded independently by eachNashorn context through the com.oracle.nashorn.runtime.StructureLoaderclass loader.