function computedPropertyName(context) {
    advance("[");

    // Explicitly reclassify token as a delimeter to prevent its later
    // interpretation as an "infix" operator.
    state.tokens.curr.delim = true;
    state.tokens.curr.lbp = 0;

    if (!state.inES6()) {
      warning("W119", state.tokens.curr, "computed property names", "6");
    }
    var value = expression(context & ~prodParams.noin, 10);
    advance("]");
    return value;
  }
Parse a computed property name within object initializers and class bodies
as introduced by ES2015. For example:

    void {
      [object.method()]: null
    };

@param {number} context - the parsing context

@returns {object} - the token value that describes the expression which
                    defines the property name