| breakЗавершает текущий цикл или конструкции switch и label и передает управление на следующий вызов 
  Аргументы
      
labelИдентификатор метки, которой помечен прерываемый оператор/конструкция. Не обязательно для циклов и switch
 
 
  Описание, примеры
      Пример: простой пример 
for(i=0; i<10; i++) {
    if (i==5) break;
}
alert(i) // 5
В языке javascript оператор breakдает возможность прерывать выполнение сразу на несколько уровней. Для этого используется метка label: 
top:
for(i=0; i<10; i++) {
  for(j=0; j<15; j++) {
    if (i==5 && j==5) break top;
  }
}
alert(j+i); // 10
Помеченным может быть не только цикл/switch, но и блок: 
top: 
{
  a=5
  break top
  a=10
}
alert(a); // 5
Единственное ограничение и отличие breakот не существующего в javascriptgoto: вызовbreakдолжен находится внутри помеченного оператора, чтобы прервать его управление. | 
У Вас в коде похоже markdown не работает (видимо так метка и break должны выделяться bold'ом во втором примере).
не работает
var xp=300, yp=650;
window.onload = function() {
var drawingCanvas = document.getElementById('smile');
var canvas=document.getElementById("smile")
var x=canvas.getContext("2d");
hiddenImg= new Image();
hiddenImg.src= "tank1.jpg";
x.drawImage(hiddenImg,xp,yp);
document.getElementById('left').onmousedown =function() {
while(true){
xp--;
x.drawImage(hiddenImg,xp,yp);
document.getElementById('left').onmouseup =function() {
break;
}
}
}
}
Если я не ошибаюсь, то break работает, но заканчивает работу блока функции в которой он находится, т.е. прекращает работу onmouseup, а не onload.