Details

    • Type: Sub-task
    • Status: Resolved
    • Priority: P3
    • Resolution: Duplicate
    • Affects Version/s: 8u60
    • Fix Version/s: None
    • Component/s: core-libs
    • Labels:
      None

      Description


      Four different programs seem to cause this failure

      jjs> function f(){ try { Object; } catch(x if x >>>=0) { throw x2; } finally { } } f()
      Exception in thread "main" java.lang.AssertionError
         at jdk.nashorn.internal.ir.Symbol.getSlot(Symbol.java:563)
         at jdk.nashorn.internal.codegen.MethodEmitter.load(MethodEmitter.java:953)
         at jdk.nashorn.internal.codegen.MethodEmitter.emitLocalVariableConversion(MethodEmitter.java:2519)
         at jdk.nashorn.internal.codegen.MethodEmitter.beforeJoinPoint(MethodEmitter.java:2492)
         at jdk.nashorn.internal.codegen.CodeGenerator.enterThrowNode(CodeGenerator.java:2981)
         at jdk.nashorn.internal.ir.ThrowNode.accept(ThrowNode.java:80)
         at jdk.nashorn.internal.ir.Node.accept(Node.java:265)
         at jdk.nashorn.internal.ir.Block.accept(Block.java:178)
         at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57)
         at jdk.nashorn.internal.ir.Block.accept(Block.java:425)
         ...


      jjs> function f(){ try { return; } catch(x) { return x ^= 0; } finally { throw 0; } } f()
      Exception in thread "main" java.lang.AssertionError
         at jdk.nashorn.internal.ir.Symbol.getSlot(Symbol.java:555)
         at jdk.nashorn.internal.codegen.MethodEmitter.load(MethodEmitter.java:953)
         at jdk.nashorn.internal.codegen.MethodEmitter.emitLocalVariableConversion(MethodEmitter.java:2519)
         at jdk.nashorn.internal.codegen.MethodEmitter.beforeJoinPoint(MethodEmitter.java:2492)
         at jdk.nashorn.internal.codegen.CodeGenerator.enterThrowNode(CodeGenerator.java:2981)
         at jdk.nashorn.internal.ir.ThrowNode.accept(ThrowNode.java:80)
         at jdk.nashorn.internal.ir.Node.accept(Node.java:265)
         at jdk.nashorn.internal.ir.Block.accept(Block.java:178)
         at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57)
         at jdk.nashorn.internal.ir.Block.accept(Block.java:425)
         ...


      jjs> function f(){ try { return; } catch(x) { return x ^= Object; } finally { throw Object; } } f()
      Exception in thread "main" java.lang.AssertionError
         at jdk.nashorn.internal.ir.Symbol.getSlot(Symbol.java:558)
         at jdk.nashorn.internal.codegen.MethodEmitter.load(MethodEmitter.java:953)
         at jdk.nashorn.internal.codegen.MethodEmitter.emitLocalVariableConversion(MethodEmitter.java:2519)
         at jdk.nashorn.internal.codegen.MethodEmitter.beforeJoinPoint(MethodEmitter.java:2492)
         at jdk.nashorn.internal.codegen.CodeGenerator.enterThrowNode(CodeGenerator.java:2981)
         at jdk.nashorn.internal.ir.ThrowNode.accept(ThrowNode.java:80)
         at jdk.nashorn.internal.ir.Node.accept(Node.java:265)
         at jdk.nashorn.internal.ir.Block.accept(Block.java:178)
         at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57)
         at jdk.nashorn.internal.ir.Block.accept(Block.java:425)
         ...

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                attila Attila Szegedi
                Reporter:
                lagergren Marcus Lagergren
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: