///<reference path='references.ts' />

module TypeScript {
    export class SyntaxNode implements ISyntaxNodeOrToken {
        public parent: ISyntaxElement;
        private __kind: SyntaxKind;
        public data: number;

        constructor(data: number) {
            if (data) {
                this.data = data;
            }
        }

        public kind(): SyntaxKind {
            return this.__kind;
        }
    }
}
///<reference path='references.ts' />

module TypeScript {
    export class SyntaxNode implements ISyntaxNodeOrToken {
        public parent: ISyntaxElement;
        private __kind: SyntaxKind;

        constructor(public data: number) {
        }

        public kind(): SyntaxKind {
            return this.__kind;
        }
    }
}
--- 
+++ 
@@ -4,8 +4,12 @@
     export class SyntaxNode implements ISyntaxNodeOrToken {
         public parent: ISyntaxElement;
         private __kind: SyntaxKind;
+        public data: number;
 
-        constructor(public data: number) {
+        constructor(data: number) {
+            if (data) {
+                this.data = data;
+            }
         }
 
         public kind(): SyntaxKind {
Save a fair amount of space while compiling by not storing data in nodes unnecessarily.
