Created
November 22, 2011 06:05
-
-
Save munificent/1385015 to your computer and use it in GitHub Desktop.
Dart Compilation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ********** Library dart:core ************** | |
// ********** Natives dart:core ************** | |
// ********** Code for Object ************** | |
// ********** Code for BadNumberFormatException ************** | |
function BadNumberFormatException() {} | |
// ********** Code for top level ************** | |
function print(obj) { | |
if (typeof console == 'object') { | |
if (obj) obj = obj.toString(); | |
console.log(obj); | |
} else { | |
write(obj); | |
write('\n'); | |
} | |
} | |
// ********** Library dart:coreimpl ************** | |
// ********** Code for NumImplementation ************** | |
NumImplementation = Number; | |
// ********** Code for StringImplementation ************** | |
StringImplementation = String; | |
StringImplementation.prototype.contains = function(pattern, startIndex) { | |
return this.indexOf(pattern, startIndex) >= 0; | |
} | |
// ********** Code for top level ************** | |
// ********** Library hello ************** | |
// ********** Code for HelloDartTest ************** | |
function HelloDartTest() {} | |
HelloDartTest.testMain = function() { | |
print("Hello, Darter!"); | |
} | |
// ********** Code for top level ************** | |
function main() { | |
HelloDartTest.testMain(); | |
} | |
main(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | |
// for details. All rights reserved. Use of this source code is governed by a | |
// BSD-style license that can be found in the LICENSE file. | |
// Simple test program invoked with an option to eagerly | |
// compile all code that is loaded in the isolate. | |
// Compiled using frog, the in-progress self-hosted compiler: | |
// dart/frog$ ./frogsh --out=hello.js --compile-only samples/hello.dart | |
class HelloDartTest { | |
static testMain() { | |
print("Hello, Darter!"); | |
} | |
} | |
main() { | |
HelloDartTest.testMain(); | |
} |
Doesn't print() overwrite window.print() in browser implementations? Why do this?
Yeah, you're correct. In this example the output is stomping on window.print. I asked one of our compiler guys and he says this bug is fixed now. It should be renaming functions that collide with ones on window. (The other option the compiler could take is to wrap everything in a big function. The choice between the two is mostly a performance one and we haven't tried comparing yet.)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
To everyone checking this out, you can minimize the above all the way down to:
main() => print("hello, Darter!");