CONSOLE WARNING: Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/. This test ensures WebGL implementations allow proper GLES2 shaders compile and improper ones fail. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". Canvas.getContext PASS context exists Checking various GLSL programs. PASS [vshader/fshaderWithPrecision]: frament shader with precision compiled and linked PASS [vshader/fshaderWithDefaultPrecision]: fragment shader with default precision compiled and linked PASS [vshaderWithDefaultPrecision/fshader]: vertex shader with default precision compiled and linked PASS [vshader/fshaderWithOutPrecision]: fragment shader without precision should fail PASS [vshader/fshaderWithInvalidIdentifier]: fragment shader with gl_ identifier should fail PASS [vshader/fshaderWithGL_ESeq1]: fragment shader that expects GL_ES == 1 should succeed PASS [vshader/fshaderWithGLSLPreprocessorSymbol]: fragment shader that uses GL_ES preprocessor symbol should succeed PASS [vshader/fshaderWithVERSION100PreprocessorSymbol]: fragment shader that uses __VERSION__==100 should succeed PASS [vshader/fshaderWithFragDepth]: fragment shader that uses gl_FragDepth should fail PASS [vshaderWithClipVertex/fshader]: vertex shader that uses gl_ClipVertex should fail PASS [vshader/fshaderWithDefineLineContinuation]: fragment shader that uses has line continuation macro should fail PASS [vshaderWithgl_Color/fshader]: vertex shader that uses gl_Color should fail PASS [vshaderWithgl_ProjectionMatrix/fshader]: vertex shader that uses gl_ProjectionMatrix should fail PASS [vshaderWithAttributeArray/fshader]: vertex shader that uses attribute array should fail as per GLSL page 110, appendix A, section 5 PASS [vshaderWithwebgl_/fshader]: vertex shader that uses _webgl identifier should fail PASS [vshaderWith_webgl_/fshader]: vertex shader that uses _webgl_ identifier should fail PASS [vshaderWithExplicitIntCast/fshader]: vertex shader that explicit int to float cast should succeed PASS [vshaderWithImplicitVec3Cast/fshader]: vertex shader that implicit vec3 to vec4 cast should fail PASS [vshaderWithVersion130/fshader]: vertex shader uses the #version not 100 directive should fail PASS [vshaderWithVersion120/fshader]: vertex shader uses the #version not 100 directive should fail PASS [vshaderWithVersion100/fshader]: vertex shader uses the #version 100 directive should succeed PASS [shaders/implicit/add_int_float.vert/fshader]: implicit cast adding integer to float should fail PASS [shaders/implicit/add_int_mat2.vert/fshader]: implicit cast adding integer to mat2 should fail PASS [shaders/implicit/add_int_mat3.vert/fshader]: implicit cast adding integer to mat3 should fail PASS [shaders/implicit/add_int_mat4.vert/fshader]: implicit cast adding integer to mat4 should fail PASS [shaders/implicit/add_int_vec2.vert/fshader]: implicit cast adding integer to vec2 should fail PASS [shaders/implicit/add_int_vec3.vert/fshader]: implicit cast adding integer to vec3 should fail PASS [shaders/implicit/add_int_vec4.vert/fshader]: implicit cast adding integer to vec4 should fail PASS [shaders/implicit/add_ivec2_vec2.vert/fshader]: implicit cast adding ivec2 to vec2 should fail PASS [shaders/implicit/add_ivec3_vec3.vert/fshader]: implicit cast adding ivec3 to vec3 should fail PASS [shaders/implicit/add_ivec4_vec4.vert/fshader]: implicit cast adding ivec4 to vec4 should fail PASS [shaders/implicit/assign_int_to_float.vert/fshader]: implicit cast assing int to float should fail PASS [shaders/implicit/assign_ivec2_to_vec2.vert/fshader]: implicit cast assigning ivec2 to vec2 should fail PASS [shaders/implicit/assign_ivec3_to_vec3.vert/fshader]: implicit cast assigning ivec3 to vec3 should fail PASS [shaders/implicit/assign_ivec4_to_vec4.vert/fshader]: implicit cast assigning ivec4 to vec4 should fail PASS [shaders/implicit/construct_struct.vert/fshader]: implicit cast from int to float in struct initializer should fail PASS [shaders/implicit/divide_int_float.vert/fshader]: implicit cast of float divided by int should fail PASS [shaders/implicit/divide_int_mat2.vert/fshader]: implicit cast of mat2 divided by int should fail PASS [shaders/implicit/divide_int_mat3.vert/fshader]: implicit cast of mat3 divided by int should fail PASS [shaders/implicit/divide_int_mat4.vert/fshader]: implicit cast of mat4 divided by int should fail PASS [shaders/implicit/divide_int_vec2.vert/fshader]: implicit cast of vec2 divided by int should fail PASS [shaders/implicit/divide_int_vec3.vert/fshader]: implicit cast of vec3 divided by int should fail PASS [shaders/implicit/divide_int_vec4.vert/fshader]: implicit cast of vec4 divided by int should fail PASS [shaders/implicit/divide_ivec2_vec2.vert/fshader]: implicit cast of vec2 divided by ivec2 should fail PASS [shaders/implicit/divide_ivec3_vec3.vert/fshader]: implicit cast of vec3 divided by ivec3 should fail PASS [shaders/implicit/divide_ivec4_vec4.vert/fshader]: implicit cast of vec4 divided by ivec4 should fail PASS [shaders/implicit/equal_int_float.vert/fshader]: implicit cast of int to float in comparision should fail PASS [shaders/implicit/equal_ivec2_vec2.vert/fshader]: implicit cast of ivec2 to vec2 in comparision should fail PASS [shaders/implicit/equal_ivec3_vec3.vert/fshader]: implicit cast of ivec3 to vec3 in comparision should fail PASS [shaders/implicit/equal_ivec4_vec4.vert/fshader]: implicit cast of ivec4 to vec4 in comparision should fail PASS [shaders/implicit/function_int_float.vert/fshader]: implicit cast of int to float in function argument should fail PASS [shaders/implicit/function_ivec2_vec2.vert/fshader]: implicit cast of ivec2 to vec2 in function argument should fail PASS [shaders/implicit/function_ivec3_vec3.vert/fshader]: implicit cast of ivec3 to vec3 in function argument should fail PASS [shaders/implicit/function_ivec4_vec4.vert/fshader]: implicit cast of ivec4 to vec4 in function argument should fail PASS [shaders/implicit/greater_than.vert/fshader]: implicit cast of int to float with greater than should fail PASS [shaders/implicit/greater_than_equal.vert/fshader]: implicit cast of int to float with greater than or equal to should fail PASS [shaders/implicit/less_than.vert/fshader]: implicit cast of int to float with less than should fail PASS [shaders/implicit/less_than_equal.vert/fshader]: implicit cast of int to float with less than or equal to should fail PASS [shaders/implicit/multiply_int_float.vert/fshader]: implicit cast of int to float in multiply should fail PASS [shaders/implicit/multiply_int_mat2.vert/fshader]: implicit cast of int to mat2 in multiply should fail PASS [shaders/implicit/multiply_int_mat3.vert/fshader]: implicit cast of int to mat3 in multiply should fail PASS [shaders/implicit/multiply_int_mat4.vert/fshader]: implicit cast of int to mat4 in multiply should fail PASS [shaders/implicit/multiply_int_vec2.vert/fshader]: implicit cast of int to vec2 in multiply should fail PASS [shaders/implicit/multiply_int_vec3.vert/fshader]: implicit cast of int to vec3 in multiply should fail PASS [shaders/implicit/multiply_int_vec4.vert/fshader]: implicit cast of int to vec4 in multiply should fail PASS [shaders/implicit/multiply_ivec2_vec2.vert/fshader]: implicit cast of ivec2 to vec2 in multiply should fail PASS [shaders/implicit/multiply_ivec3_vec3.vert/fshader]: implicit cast of ivec3 to vec3 in multiply should fail PASS [shaders/implicit/multiply_ivec4_vec4.vert/fshader]: implicit cast of ivec4 to vec4 in multiply should fail PASS [shaders/implicit/not_equal_int_float.vert/fshader]: implicit cast of int to float in not equal comparison should fail PASS [shaders/implicit/not_equal_ivec2_vec2.vert/fshader]: implicit cast of ivec2 to vec2 in not equal comparison should fail PASS [shaders/implicit/not_equal_ivec3_vec3.vert/fshader]: implicit cast of ivec3 to vec3 in not equal comparison should fail PASS [shaders/implicit/not_equal_ivec4_vec4.vert/fshader]: implicit cast of ivec4 to vec4 in not equal comparison should fail PASS [shaders/implicit/subtract_int_float.vert/fshader]: implicit cast of int to float in subtraction should fail PASS [shaders/implicit/subtract_int_mat2.vert/fshader]: implicit cast of int to mat2 in subtraction should fail PASS [shaders/implicit/subtract_int_mat3.vert/fshader]: implicit cast of int to mat3 in subtraction should fail PASS [shaders/implicit/subtract_int_mat4.vert/fshader]: implicit cast of int to mat4 in subtraction should fail PASS [shaders/implicit/subtract_int_vec2.vert/fshader]: implicit cast of int to vec2 in subtraction should fail PASS [shaders/implicit/subtract_int_vec3.vert/fshader]: implicit cast of int to vec3 in subtraction should fail PASS [shaders/implicit/subtract_int_vec4.vert/fshader]: implicit cast of int to vec4 in subtraction should fail PASS [shaders/implicit/subtract_ivec2_vec2.vert/fshader]: implicit cast of ivec2 to vec2 in subtraction should fail PASS [shaders/implicit/subtract_ivec3_vec3.vert/fshader]: implicit cast of ivec3 to vec3 in subtraction should fail PASS [shaders/implicit/subtract_ivec4_vec4.vert/fshader]: implicit cast of ivec4 to vec4 in subtraction should fail PASS [shaders/implicit/ternary_int_float.vert/fshader]: implicit cast of int to float in ternary expression should fail PASS [shaders/implicit/ternary_ivec2_vec2.vert/fshader]: implicit cast of ivec2 to vec2 in ternary expression should fail PASS [shaders/implicit/ternary_ivec3_vec3.vert/fshader]: implicit cast of ivec3 to vec3 in ternary expression should fail PASS [shaders/implicit/ternary_ivec4_vec4.vert/fshader]: implicit cast of ivec4 to vec4 in ternary expression should fail PASS [shaders/misc/non-ascii.vert/fshader]: Non ascii data in source should fail PASS [shaders/misc/non-ascii-comments.vert/fshader]: Non ascii comments in source should succeed PASS [shaders/reserved/_webgl_field.vert/fshader]: use of reserved _webgl prefix as structure field should fail PASS [shaders/reserved/_webgl_function.vert/fshader]: use of reserved _webgl prefix as function name should fail PASS [shaders/reserved/_webgl_struct.vert/fshader]: use of reserved _webgl prefix as structure name should fail PASS [shaders/reserved/_webgl_variable.vert/fshader]: use of reserved _webgl prefix as structure field should fail PASS [shaders/reserved/webgl_field.vert/fshader]: use of reserved webgl_ prefix as structure field should fail PASS [shaders/reserved/webgl_function.vert/fshader]: use of reserved webgl_ prefix as function name should fail PASS [shaders/reserved/webgl_struct.vert/fshader]: use of reserved webgl_ prefix as structure name should fail PASS [shaders/reserved/webgl_variable.vert/fshader]: use of reserved webgl_ prefix as variable should fail PASS successfullyParsed is true TEST COMPLETE