all tests pass, follows esprima ast