From 5148b474f35942f75fb7ca2f04f3b3b99ac316d5 Mon Sep 17 00:00:00 2001 From: romdotdog <70765447+romdotdog@users.noreply.github.com> Date: Fri, 30 Jul 2021 16:01:23 -0400 Subject: [PATCH 1/4] fix --- src/compiler.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/compiler.ts b/src/compiler.ts index e035cab8ca..593279e5d8 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -10067,7 +10067,11 @@ export class Compiler extends DiagnosticEmitter { /** Evaluates a boolean condition, determining whether it is TRUE, FALSE or UNKNOWN. */ evaluateCondition(expr: ExpressionRef): ConditionKind { - assert(getExpressionType(expr) == TypeRef.I32); + let type = getExpressionType(expr); + if (type == TypeRef.Unreachable) + return ConditionKind.UNKNOWN; // invalid expression given + + assert(type == TypeRef.I32); var module = this.module; var evaled = module.runExpression(expr, ExpressionRunnerFlags.Default); if (evaled) { From e17fb835f45d7a71436ae7b17e3dd25d4114e508 Mon Sep 17 00:00:00 2001 From: romdotdog <70765447+romdotdog@users.noreply.github.com> Date: Fri, 30 Jul 2021 16:01:40 -0400 Subject: [PATCH 2/4] test --- tests/compiler/unknown-bool-ident.json | 7 +++++++ tests/compiler/unknown-bool-ident.ts | 1 + tests/compiler/unknown-bool-ident.untouched.wat | 0 3 files changed, 8 insertions(+) create mode 100644 tests/compiler/unknown-bool-ident.json create mode 100644 tests/compiler/unknown-bool-ident.ts create mode 100644 tests/compiler/unknown-bool-ident.untouched.wat diff --git a/tests/compiler/unknown-bool-ident.json b/tests/compiler/unknown-bool-ident.json new file mode 100644 index 0000000000..477c385745 --- /dev/null +++ b/tests/compiler/unknown-bool-ident.json @@ -0,0 +1,7 @@ +{ + "asc_flags": [ + ], + "stderr": [ + "TS2304: Cannot find name 'unknown_var'." + ] +} diff --git a/tests/compiler/unknown-bool-ident.ts b/tests/compiler/unknown-bool-ident.ts new file mode 100644 index 0000000000..ac0475e50e --- /dev/null +++ b/tests/compiler/unknown-bool-ident.ts @@ -0,0 +1 @@ +if (1 <= unknown_var) {} \ No newline at end of file diff --git a/tests/compiler/unknown-bool-ident.untouched.wat b/tests/compiler/unknown-bool-ident.untouched.wat new file mode 100644 index 0000000000..e69de29bb2 From 3edad22668e83e5ae2acdaf62e146463ff43a92a Mon Sep 17 00:00:00 2001 From: romdotdog <70765447+romdotdog@users.noreply.github.com> Date: Fri, 30 Jul 2021 17:27:44 -0400 Subject: [PATCH 3/4] add EOF --- tests/compiler/unknown-bool-ident.json | 3 ++- tests/compiler/unknown-bool-ident.ts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/compiler/unknown-bool-ident.json b/tests/compiler/unknown-bool-ident.json index 477c385745..9808373e96 100644 --- a/tests/compiler/unknown-bool-ident.json +++ b/tests/compiler/unknown-bool-ident.json @@ -2,6 +2,7 @@ "asc_flags": [ ], "stderr": [ - "TS2304: Cannot find name 'unknown_var'." + "TS2304: Cannot find name 'unknown_var'.", + "EOF" ] } diff --git a/tests/compiler/unknown-bool-ident.ts b/tests/compiler/unknown-bool-ident.ts index ac0475e50e..2b6c3b4f05 100644 --- a/tests/compiler/unknown-bool-ident.ts +++ b/tests/compiler/unknown-bool-ident.ts @@ -1 +1,2 @@ -if (1 <= unknown_var) {} \ No newline at end of file +if (1 <= unknown_var) {} +ERROR("EOF"); \ No newline at end of file From cfd526baf3903ab70aa339a868af20bff06df30e Mon Sep 17 00:00:00 2001 From: Roman F <70765447+romdotdog@users.noreply.github.com> Date: Sat, 31 Jul 2021 10:20:24 -0400 Subject: [PATCH 4/4] remove comment from phone --- src/compiler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler.ts b/src/compiler.ts index 593279e5d8..a4e33bf342 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -10069,7 +10069,7 @@ export class Compiler extends DiagnosticEmitter { evaluateCondition(expr: ExpressionRef): ConditionKind { let type = getExpressionType(expr); if (type == TypeRef.Unreachable) - return ConditionKind.UNKNOWN; // invalid expression given + return ConditionKind.UNKNOWN; assert(type == TypeRef.I32); var module = this.module;