Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(209)

Unified Diff: tests/language/src/IsFunctionTest.dart

Issue 9666006: Support for "a is Function". (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/language/src/FunctionGetterTest.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/language/src/IsFunctionTest.dart
===================================================================
--- tests/language/src/IsFunctionTest.dart (revision 5239)
+++ tests/language/src/IsFunctionTest.dart (working copy)
@@ -2,47 +2,32 @@
// 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.
-typedef void MyFunctionType();
-
-class A native "*A" {
- setClosure(MyFunctionType f) native;
- check(MyFunctionType f) native;
- invoke() native;
-}
-
-makeA() native { return new A(); }
-
-void setup() native """
-function A() {}
-A.prototype.setClosure = function(f) { this.f = f; };
-A.prototype.check = function(f) { return this.f === f; };
-A.prototype.invoke = function() { return this.f(); };
-makeA = function(){return new A;};
-""";
-
var staticClosure;
staticMethod() => 42;
class B {
var instanceClosure;
+ var nullField;
instanceMethod() => 43;
}
-checkUntyped(a, closure) {
- a.setClosure(closure);
- Expect.isTrue(a.check(closure));
- Expect.equals(closure(), a.invoke());
+checkUntyped(closure) {
+ Expect.isTrue(closure is Function);
}
-checkTyped(A a, MyFunctionType closure) {
- a.setClosure(closure);
- Expect.isTrue(a.check(closure));
- Expect.equals(closure(), a.invoke());
+checkTyped(int closure()) {
+ Expect.isTrue(closure is Function);
}
-main() {
- setup();
+checkTypedNull(int closure()) {
+ Expect.isFalse(closure is Function);
+}
+checkUntypedNull(closure) {
+ Expect.isFalse(closure is Function);
+}
+
+main() {
staticClosure = () => 44;
B b = new B();
b.instanceClosure = () => 45;
@@ -50,21 +35,24 @@
closureStatement() => 46;
var closureExpression = () => 47;
- checkUntyped(makeA(), staticClosure);
- checkTyped(makeA(), staticClosure);
+ checkUntyped(staticClosure);
+ checkTyped(staticClosure);
- checkUntyped(makeA(), staticMethod);
- checkTyped(makeA(), staticMethod);
+ checkUntyped(staticMethod);
+ checkTyped(staticMethod);
- checkUntyped(makeA(), b.instanceClosure);
- checkTyped(makeA(), b.instanceClosure);
+ checkUntyped(b.instanceClosure);
+ checkTyped(b.instanceClosure);
- checkUntyped(makeA(), b.instanceMethod);
- checkTyped(makeA(), b.instanceMethod);
+ checkUntyped(b.instanceMethod);
+ checkTyped(b.instanceMethod);
- checkUntyped(makeA(), closureStatement);
- checkTyped(makeA(), closureStatement);
+ checkUntyped(closureStatement);
+ checkTyped(closureStatement);
- checkUntyped(makeA(), closureExpression);
- checkTyped(makeA(), closureExpression);
+ checkUntyped(closureExpression);
+ checkTyped(closureExpression);
+
+ checkTypedNull(b.nullField);
+ checkUntypedNull(b.nullField);
}
« no previous file with comments | « tests/language/src/FunctionGetterTest.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698