Why am I getting a Syntax error when using "class" in Javascript
<p>I am making a game in javascript, and I'm using making a class to hold all the sprites. However when I try to run it, safari gives me "SyntaxError: Unexpected use of reserved word 'class'". I can't find a reason it should be doing this. Below is my code:</p>

<pre><code>var spritesContext;

//Sprite class
class sprite{
    constructor(imageName, imageX, imageY, imageHeight, imageWidth, context, canvas){
        this.imageName = imageName;
        this.imageX = imageX;
        this.imageY = imageY;
        this.imageHeight = imageHeight;
        this.imageWidth = imageWidth;
        this.canvas = canvas;
        this.context = context;
        spritesContext = context;
        console.log("Sprite constructed");
    }

    draw(){
        var character = new Image();
        character.src = "../Images/" + this.imageName + ".png";
        character.onload = function(){
            spritesContext.drawImage(character, this.imageX, this.imageY, this.imageWidth, this.imageHeight);
            console.log("Inner Draw is working.");
        }
        console.log("Draw is working.");
    }

    function getHeight(){
        return this.imageHeight;
    }

    function getWidth(){
         return this.imageWidth;
    }

    function getX(){
        return this.imageX;
    }

    function getY(){
       return this.imageY;
    }

    function moveUpX(e){
        this.imageX = (this.imageX + e);
    }

    function moveUpY(e){
        this.imageY = (this.imageY + e);
    }

    function moveBackX(e){
        this.imageX = (this.imageX - e);
    }

    function moveBackY(e){
       this.imageY = (this.imageY - e);
    }

    function changeImage(e){
        this.imageName = e;
    }

    function getImage(){
       return this.imageName;
    }

    function changeX(e){
         this.imageX = e;
    }

    function changeY(e){
        this.imageY = e;
    }

}
</code></pre>