Index: tests/stub-generator/src/MintMakerPromiseWithStubsTest.dart |
=================================================================== |
--- tests/stub-generator/src/MintMakerPromiseWithStubsTest.dart (revision 734) |
+++ tests/stub-generator/src/MintMakerPromiseWithStubsTest.dart (working copy) |
@@ -20,7 +20,7 @@ |
int queryBalance(); |
Purse sproutPurse(); |
- int deposit(int amount, Purse$Proxy source); |
+ Promise<int> deposit(int amount, Purse$Proxy source); |
} |
@@ -57,17 +57,21 @@ |
return _mint.createPurse(0); |
} |
- int deposit(int amount, Purse$Proxy proxy) { |
+ Promise<int> deposit(int amount, Purse$Proxy proxy) { |
if (amount < 0) throw "Ha ha"; |
// Because we are in the same isolate as the other purse, we can |
// retrieve the proxy's local PurseImpl object and act on it |
// directly. Further, a forged purse will not be convertible, and |
// so an attempt to use it will fail. |
- PurseImpl source = proxy.dynamic.local; |
- if (source._balance < amount) throw "Not enough dough."; |
- _balance += amount; |
- source._balance -= amount; |
- return _balance; |
+ Promise<int> balance = new Promise<int>(); |
+ proxy.addCompleteHandler((_) { |
+ PurseImpl source = proxy.dynamic.local; |
+ if (source._balance < amount) throw "Not enough dough."; |
+ _balance += amount; |
+ source._balance -= amount; |
+ balance.complete(_balance); |
+ }); |
+ return balance; |
} |
Mint _mint; |