Change compileWithSourceMap() so it returns an object instead of an Array, and return the SourceMap object.
Change some more "!"s to "not"s.  Make spacing consistent after periods in commnets.