Вопрос о рекурсии в JavaScript
Во-первых, в первом примере у вас в закомментированной строчке русская буква «х», поэтому после первого запуска write всё ломается. Если написать нормальный x, результат нормальный будет. 

Во-вторых, локальные переменные нужно определять как «var x1=x;», а то, что у вас сейчас написано, — это глобальная переменная x1 (также известная как window.x1). Почитайте про области видимости JS.
draw(context, newx, newy, depth-1); //И продолжаем наше дело :)
draw(context, newx, newy, depth-1);
draw(context, newx, newy, depth-1);

Надо понимать, что до 2ой и 3ей строчки никогда не дойдет.
Если это станет понятно, тогда должно стать ясно, и что с переменными.