Why is this an issue?

Empty statements represented by a semicolon ; are statements that do not perform any operation. They are often the result of a typo or a misunderstanding of the language syntax. It is a good practice to remove empty statements since they don’t add value and lead to confusion and errors.

Noncompliant code example

function doSomething():void {
  ;                                                       // Noncompliant - was used as a kind of TODO marker
}

function doSomethingElse():void {
  trace("Hello, world!");;                     // Noncompliant - double ;
  ...
  for (var i:int = 0; i < 3; trace(i), i++);       // Noncompliant - Rarely, they are used on purpose as the body of a loop. It is a bad practice to have side-effects outside of the loop body
  ...
}

Compliant solution

function doSomething():void {}

function doSomethingElse():void {
  trace("Hello, world!");
  ...
  for (var i:int = 0; i < 3; i++){
    trace(i);
  }
  ...
}