Program: 72705
Project: 72705
Buggy source:
/** 
 * Send the current value of the state of this actor to the output.
 * @exception IllegalActionException If calling send() or super.fire()throws it.
 */
@Override public void fire() throws IllegalActionException {
  super.fire();
  for (  PortParameter portParameter : attributeList(PortParameter.class)) {
    portParameter.update();
  }
  if (_pendingCallbacks != null) {
    while (!_pendingCallbacks.isEmpty()) {
      Function function=_pendingCallbacks.remove(0);
      function.call(_context,_scope,function,_EMPTY_ARGS);
    }
  }
synchronized (this) {
    if (_outputTokens != null) {
      for (      IOPort port : _outputTokens.keySet()) {
        HashMap<Integer,List<Token>> tokens=_outputTokens.get(port);
        for (        Map.Entry<Integer,List<Token>> entry : tokens.entrySet()) {
          List<Token> queue=entry.getValue();
          if (queue != null) {
            for (            Token token : queue) {
              port.send(entry.getKey(),token);
            }
          }
        }
      }
      _outputTokens.clear();
    }
  }
  _inputTokens.clear();
  for (  IOPort input : this.inputPortList()) {
    if (input == scriptIn) {
      continue;
    }
    HashMap<Integer,Token> tokens=new HashMap<Integer,Token>();
    for (int i=0; i < input.getWidth(); i++) {
      if (input.hasToken(i)) {
        tokens.put(i,input.get(i));
      }
    }
    _inputTokens.put(input,tokens);
  }
  try {
    if (scriptIn.getWidth() > 0 && scriptIn.hasToken(0)) {
      String scriptValue=((StringToken)scriptIn.get(0)).stringValue();
      _compiledScript=_context.compileString(scriptValue,getName(),1,null);
      _compiledScript.exec(Context.getCurrentContext(),_scope);
      Object initializeFunction=_scope.get("String_Node_Str",_scope);
      if (initializeFunction instanceof Function) {
        ((Function)initializeFunction).call(Context.getCurrentContext(),_scope,_global,null);
      }
    }
    Object fireFunction=_scope.get("String_Node_Str",_scope);
    if (fireFunction instanceof Function) {
synchronized (JavaScript.this) {
        _inFire=true;
        try {
          ((Function)fireFunction).call(Context.getCurrentContext(),_scope,_global,_EMPTY_ARGS);
        }
  finally {
          _inFire=false;
        }
      }
    }
  }
 catch (  WrappedException ex) {
    Throwable original=ex.getWrappedException();
    throw new IllegalActionException(this,ex,"String_Node_Str" + ex.lineNumber() + "String_Node_Str"+ original.getMessage());
  }
}

Fixed version (ground truth):
/** 
 * Send the current value of the state of this actor to the output.
 * @exception IllegalActionException If calling send() or super.fire()throws it.
 */
@Override public void fire() throws IllegalActionException {
  super.fire();
  for (  PortParameter portParameter : attributeList(PortParameter.class)) {
    portParameter.update();
  }
  if (_pendingCallbacks != null) {
    while (!_pendingCallbacks.isEmpty()) {
      Function function=_pendingCallbacks.remove(0);
      function.call(_context,_scope,function,_EMPTY_ARGS);
    }
  }
synchronized (this) {
    if (_outputTokens != null) {
      for (      IOPort port : _outputTokens.keySet()) {
        HashMap<Integer,List<Token>> tokens=_outputTokens.get(port);
        for (        Map.Entry<Integer,List<Token>> entry : tokens.entrySet()) {
          List<Token> queue=entry.getValue();
          if (queue != null) {
            for (            Token token : queue) {
              port.send(entry.getKey(),token);
            }
          }
        }
      }
      _outputTokens.clear();
    }
  }
  _inputTokens.clear();
  for (  IOPort input : this.inputPortList()) {
    if (input == scriptIn) {
      continue;
    }
    if (input instanceof ParameterPort) {
      continue;
    }
    HashMap<Integer,Token> tokens=new HashMap<Integer,Token>();
    for (int i=0; i < input.getWidth(); i++) {
      if (input.hasToken(i)) {
        tokens.put(i,input.get(i));
      }
    }
    _inputTokens.put(input,tokens);
  }
  try {
    if (scriptIn.getWidth() > 0 && scriptIn.hasToken(0)) {
      String scriptValue=((StringToken)scriptIn.get(0)).stringValue();
      _compiledScript=_context.compileString(scriptValue,getName(),1,null);
      _compiledScript.exec(Context.getCurrentContext(),_scope);
      Object initializeFunction=_scope.get("String_Node_Str",_scope);
      if (initializeFunction instanceof Function) {
        ((Function)initializeFunction).call(Context.getCurrentContext(),_scope,_global,null);
      }
    }
    Object fireFunction=_scope.get("String_Node_Str",_scope);
    if (fireFunction instanceof Function) {
synchronized (JavaScript.this) {
        _inFire=true;
        try {
          ((Function)fireFunction).call(Context.getCurrentContext(),_scope,_global,_EMPTY_ARGS);
        }
  finally {
          _inFire=false;
        }
      }
    }
  }
 catch (  WrappedException ex) {
    Throwable original=ex.getWrappedException();
    throw new IllegalActionException(this,ex,"String_Node_Str" + ex.lineNumber() + "String_Node_Str"+ original.getMessage());
  }
}