Fix bug where x^y failed to bind to y to when y wasn't a number (since it assumed y was a primitive and therefore without context)