22 std::unique_ptr<Statement> stmt,
23 std::unique_ptr<Expression>
test) {
40 std::unique_ptr<Statement> stmt,
41 std::unique_ptr<Expression>
test) {
45 return std::make_unique<DoStatement>(
pos, std::move(stmt), std::move(
test));
49 return "do " + this->
statement()->description() +
50 " while (" + this->
test()->description() +
");";
const std::unique_ptr< Type > fBool
const BuiltinTypes & fTypes
std::unique_ptr< Expression > & test()
static std::unique_ptr< Statement > Make(const Context &context, Position pos, std::unique_ptr< Statement > stmt, std::unique_ptr< Expression > test)
static std::unique_ptr< Statement > Convert(const Context &context, Position pos, std::unique_ptr< Statement > stmt, std::unique_ptr< Expression > test)
std::string description() const override
std::unique_ptr< Statement > & statement()
void error(Position position, std::string_view msg)
bool DetectVarDeclarationWithoutScope(const Statement &stmt, ErrorReporter *errors=nullptr)
bool strictES2Mode() const