| Index: dart/frog/leg/ssa/codegen.dart
|
| diff --git a/dart/frog/leg/ssa/codegen.dart b/dart/frog/leg/ssa/codegen.dart
|
| index 222ced5db3b35fc15fb38744d745150a70897a4d..9898eedbea91b91dc9da966a5020f7f769987656 100644
|
| --- a/dart/frog/leg/ssa/codegen.dart
|
| +++ b/dart/frog/leg/ssa/codegen.dart
|
| @@ -633,7 +633,8 @@ class SsaCodeGenerator implements HVisitor {
|
| use(node.index);
|
| buffer.add(' >= ');
|
| use(node.length);
|
| - buffer.add(") throw 'Out of bounds'");
|
| + buffer.add(") ");
|
| + generateFail('ioore', node.index);
|
| }
|
|
|
| visitIntegerCheck(HIntegerCheck node) {
|
| @@ -641,7 +642,17 @@ class SsaCodeGenerator implements HVisitor {
|
| use(node.value);
|
| buffer.add(' !== (');
|
| use(node.value);
|
| - buffer.add(" | 0)) throw 'Illegal argument'");
|
| + buffer.add(" | 0)) ");
|
| + generateFail('iae', node.value);
|
| + }
|
| +
|
| + void generateFail(String helperName, HInstruction argument) {
|
| + Element helper = compiler.findHelper(new SourceString(helperName));
|
| + compiler.registerStaticUse(helper);
|
| + buffer.add(compiler.namer.isolateAccess(helper));
|
| + buffer.add("(");
|
| + use(argument);
|
| + buffer.add(")");
|
| }
|
|
|
| void addIndentation() {
|
|
|