Bridging the Gap Between WebGL and ESSL