Added test to ensure rendering feedback loops are disallowed.
Add tests for using constant expressions in the loop condition.
Ternary Operators in Initializers

This test verifies initializers with ternary operators correctly initialize all variables.

Test fragment shaders are of the form:
    void main() {
        {type} i = {initializer}, j = {ternary test using i that succeeds} ? : {green} : {black};
        gl_FragColor = vec4(...); // Emit green so that test will pass
    }
The fragment shader must compile and link with the default vertex shader. J must be able to use the values of I as well as have its own values properly initialized.
Merge pull request #705 from RafaelCintron/ternaryOperatorsInInitializers

Ternary Operators in Initializers
Merge pull request #704 from c0d1f1ed/constant-expression-loop-condition

Add tests for using constant expressions in the loop condition.
Added edge case to feedback loop test to allow bindings to inactive texture units
Merge pull request #703 from toji/feedback_loop

Added test to ensure rendering feedback loops are disallowed.
Add WebGL Shader Translator utility

It enables the user to input a WebGL shader and will output the shader as
it will be passed to the platform shader compiler.
Fix missing type for createShader type parameter
Merge pull request #706 from NVIDIA/shader-spec-fix

Fix missing type for createShader type parameter
Merge pull request #707 from NVIDIA/webgl-translate-shader-util

Add WebGL Shader Translator utility
Fix up missing getExtensions in WebGL Shader Translator utility
Merge pull request #708 from NVIDIA/fix-shader-translator

Fix up missing getExtensions in WebGL Shader Translator utility
Copied spec text for clientWaitSync from OpenGL ES 3.0 spec. Per WebGL F2F, mandated that implementations enforce a low but unspecified maximum timeout. Stated that applications should not use clientWaitSync to block execution.
Fixed glFenceSync man page link.
Merge pull request #709 from kenrussell/fence-sync-link

Fixed glFenceSync man page link.
Add test for struct nesting of variable names

This test verifies that defining a typename in a new scope when the typename is the name of a variable that hides a typename declaration succeeds for all combinations of GLSL types.

Example fragment shader is of the form:
  struct S { $(outer_type) u; };
  void main() {
      S S;   // This is legal, 'S' as a typename is defined in another scope.
      {
          struct S { $(inner_type) a; };  // This is legal as well, 'S' is now defined as a variable name in an ancestor scope
          S newvar;
          newvar.a = $(initializer);
          gl_FragColor = $(fragColor);
      }
  }
Merge pull request #711 from RafaelCintron/structNestingofVariablenames

Add test for struct nesting of variable names
Merge pull request #710 from kenrussell/client-wait-sync

Copied spec text for clientWaitSync from OpenGL ES 3.0 spec. Per WebGL F...
bindAttribLocation with aliasing

This test verifies combinations of valid, active attribute types cannot be bound to
the same location with bindAttribLocation.

Per the OpenGL spec: It is possible for an application to bind more than one attribute
name to the same location. This is referred to as aliasing. This will only work if
only one of the aliased attributes is active in the executable program, or if no path
through the shader consumes more than one attribute of a set of attributes aliased to
the same location.

vertex shaders take the form:
precision mediump float;
attribute $(type_1) a_1;
attribute $(type_2) a_2;
void main() {
    gl_Position = $(gl_Position_1) + $(gl_Position_2);
}