code: def __init__(self, name: str, prg: str, bufs: int = 0, vars: int = 0):
      self.name, self.prg = name, ctx.program(
          vertex_shader=vertex_shader, fragment_shader=prg
      )
  
file_path: tinygrad/extra/backends/ops_webgl.py
imports: import numpy
  import functools
  from tinygrad.dtype import dtypes, ImageDType
  from tinygrad.device import Compiled, Allocator
  from tinygrad.codegen.kernel import LinearizerOptions, OptOps
  from tinygrad.renderer.cstyle import uops_to_cstyle
  from tinygrad.renderer.cstyle import GLSLLanguage
  import moderngl
label_desc: Use image node_id 1 to create a new WebGLProgram object  with example: obj = WebGLProgram(name, prg, bufs, vars)