JavaScript 自体あまり慣れてはいないんですが、モダンスタイルはじわじわ勉強していくことにして。とりあえず手頃なベクトルライブラリが必要なので glMatrix と Sylvester を試してみました。どっちも割といい感じです。
webGL に渡す行列設定程度なら、glMatrix が手軽でいいかな。

    var proj = mat4.create();
    mat4.identity(proj);
    mat4.ortho(-1, 1, 1, -1, -1, 1, proj);
    var mv = mat4.create();
    mat4.identity(mv);
    var mvp = mat4.create();
    mat4.multiply(mv, proj, mvp);

    gl.uniformMatrix4fv(program.mvMatrix, false, mv);
    gl.uniformMatrix4fv(program.projMatrix, false, proj);
    gl.uniformMatrix4fv(program.mvpMatrix, false, mvp);

こんな感じ?ユニフォーム変数の方は事前にシェーダから拾っておきます。

    program.mvpMatrix = gl.getUniformLocation(program, "mvpMatrix");
    program.mvMatrix = gl.getUniformLocation(program, "mvMatrix");
    program.projMatrix = gl.getUniformLocation(program, "projMatrix");


glMatrix を自分で拡張してもいいんですが、ツールっぽいものを作って gl呼び出しと別に演算するなら Sylvester 使った方が早そうです。ま、これくらいは自分で作ってもいいですね。