rmacnak@google.com
4de5f89b99
Rename IsConstructor to IsGenerativeConstructor.
...
This matches the terminology in the spec, and it avoids confusion with the function kind kConstructor, which indicates either a generative constructor or a factory constructor.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//910313002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43673 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-11 00:59:19 +00:00
turnidge@google.com
e1f31e1513
Add a working command line debugger to Observatory.
...
Try it!
Review URL: https://codereview.chromium.org//866663003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43618 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 22:03:31 +00:00
koda@google.com
f3387ccc3f
In this first version, we just track the set of objects and verify that calls to release match. The next step is to copy the data to a side buffer, which is then unmapped on release to catch use-after-release bugs.
...
Explicitly disallow nested acquires, since the visibility of writes would depend on whether data is acquired in-place.
Also explicitly disallow other access to the data (e.g., trough list accessors) for the same reason.
R=asiva@google.com
Review URL: https://codereview.chromium.org//905823002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43575 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-06 22:31:46 +00:00
iposva@google.com
6898a10c93
- Make sure to fail early if an non-stacktrace is passed into the VM
...
where we expect one.
Review URL: https://codereview.chromium.org//908433002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43546 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-06 09:23:57 +00:00
zra@google.com
1299ad1485
Allows turning on checked mode on a per-isolate basis
...
using the embedding API.
R=regis@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//883263004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43481 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-04 18:32:48 +00:00
johnmccutchan@google.com
4ebfc3a73f
Make Dart_Invoke work for private static functions
...
Our API documentation states that Dart_Invoke will invoke private functions.
R=turnidge@google.com
Review URL: https://codereview.chromium.org//891053004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43375 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-03 00:37:08 +00:00
johnmccutchan@google.com
172baa03ff
Service isolate rework take 2
...
Review URL: https://codereview.chromium.org//889443002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43306 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-29 18:31:27 +00:00
johnmccutchan@google.com
db271b0477
Revert r43217, r43215, r43208, r43207, and r43202.
...
Reverting because of some isolate spawn issues (on Windows, and pub bots).
Review URL: https://codereview.chromium.org//867113003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43219 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-27 22:56:18 +00:00
johnmccutchan@google.com
66aa470fc6
* Create vm-service isolate at Dart_Initialize time.
...
* Remove Service create callback.
* Simplify creation of service isolate.
* Creation is done on thread pool.
* Use vm-service isolate for loading in standalone embedder.
* Remove import of dart:io from builtin library.
performance changes:
no service isolate:
$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:27 | 100% | +12363 | - 0]
$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:27 | 100% | +12363 | - 0]
always start service isolate (as a thread pool task):
$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:45 | 100% | +12363 | - 0]
$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:44 | 100% | +12363 | - 0]
service does I/O (calls to Dart_LoadScript block until service is running):
$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:55 | 100% | +12363 | - 0]
$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:55 | 100% | +12363 | - 0]
R=asiva@google.com
Review URL: https://codereview.chromium.org//584023004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43202 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-27 19:45:48 +00:00
koda@google.com
0aeee6156e
Add include.
...
Not sure whether this is related to the Debug win32 build failure.
TBR=ricow@google.com
Review URL: https://codereview.chromium.org//837103003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42898 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-15 06:15:22 +00:00
koda@google.com
c7e9e048ed
Rename Thread -> OSThread.
...
It's a collection of static utility methods for primitive operations on OS threads.
Make room in the namespace for upcoming class that will represent all the complex state of a VM thread.
Review URL: https://codereview.chromium.org//796063006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42895 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-15 02:30:07 +00:00
asiva@google.com
ca1c3241c4
Fix for issue 21398.
...
Accept only 'literal-like' objects when sending messages to isolates
spawned using spawnURI. Allow all objects for isolates spawned using
spawnFunction.
R=iposva@google.com
Review URL: https://codereview.chromium.org//834233003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42793 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-12 23:14:30 +00:00
hausner@google.com
fb8004e485
Too much const kills the build
...
Review URL: https://codereview.chromium.org//829993003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42578 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-31 00:26:27 +00:00
hausner@google.com
74694f5a90
Interrupt isolates immediately
...
After requesting the interrupt, send a null message to the isolate
to ensure the isolate runs and detects the interrupt request immediately.
Fixes issue 21047.
R=iposva@google.com
Review URL: https://codereview.chromium.org//789243003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42577 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-31 00:20:39 +00:00
hausner@google.com
f96ae9969e
Support breakpoints in deferred libraries
...
This CL introduces latent breakpoints, which are bp in urls that are
not yet loaded. When the VM loads additional scripts through deferred
libraries, latent breakpoints get set.
R=iposva@google.com
Review URL: https://codereview.chromium.org//808643004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42510 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-19 16:35:37 +00:00
fschneider@google.com
876193b31a
Make CTX allocatable by the register allocator.
...
This change makes CTX available by not caching the current
context while in Dart code. Instead the current context
is held in a local variable (:saved_current_context_var) and
is passed as argument in CTX at calls.
This also simplifies a lot of code in the debugger: As a result,
Isolate::top_context is not needed anymore since the current context
can always be extracted from a Dart frame.
R=vegorov@google.com
Review URL: https://codereview.chromium.org//678763004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41422 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-30 15:42:38 +00:00
turnidge@google.com
c658fa60f9
Fix deadlock that can occur while handling service messages at a breakpoint.
...
Deadlock looks like:
Regular Isolate
-> paused at breakpoint in debug message loop
-> holds debug message queue lock to get message notifications
-> handles an service message
-> waits for portmap lock to send response
Service Isolate
-> receives request for paused isolate
-> holds portmap lock to send message
-> runs custom message notifier to wake debug message loop
-> waits for debug message queue lock
I've solved this by releasing the debug message queue lock while
handling service messages. This requires me to poll for new service
messages after reacquiring the debug message queue lock to make sure I
haven't dropped any notifications.
It's a little weird that the embedder (runtime/bin) needs to be aware
of the locking in the core vm (runtime/vm), but this seemed like the
simplest fix for now.
BUG=
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//629533002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41326 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-27 16:57:21 +00:00
hausner@google.com
2f49f29c38
Await always waits
...
The expression ‘await e’ always suspends the enclosing function. If e does not
evaluate to a an object o of type Future, a new Future is created using Future.value(o).
A small change in the backend allows a return instruction to be followed by
other instructions. In async functions, a return can suspend the function and the
continuation point is in the same code block after the return.
Other small changes:
- More user-friendly error message if async/await is not enabled.
- Programs no longer need to import dart:async when using async/await.
R=fschneider@google.com
Review URL: https://codereview.chromium.org//634603002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41105 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-14 19:58:06 +00:00
rmacnak@google.com
046a81b6b1
Add Dart_IsFuture. To be used in Dartium implementation of Promises.
...
BUG=
R=asiva@google.com
Review URL: https://codereview.chromium.org//585643004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40577 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-22 23:05:58 +00:00
rmacnak@google.com
cefb21b6a3
Narrow String::CharAt from int32_t to uint16_t.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//560113002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40178 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-11 20:55:36 +00:00
regis@google.com
0220e41d72
New bigint implementation in the vm.
...
R=srdjan@google.com
Review URL: https://codereview.chromium.org//509153003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40061 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-09 21:47:44 +00:00
iposva@google.com
adbe016fbc
- Support loading from https.
...
- Remove over-eager assertion.
R=asiva@google.com
Review URL: https://codereview.chromium.org//550003004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40005 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-09 00:10:06 +00:00
iposva@google.com
92f2698abe
- Refactor the way X.fromEnvironment is implemented.
...
- Predefine 'dart.isVM' to be 'true'.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//546053002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39986 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-08 18:23:05 +00:00
ajohnsen@google.com
8c633a390e
Cleanup resource loading of the VM.
...
There is not only one path for loading resources, and it's async.
BUG=
Review URL: https://codereview.chromium.org//529203004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39847 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-04 06:42:01 +00:00
johnmccutchan@google.com
7c7bcbdd29
Make Dart API Dart_IsTypedData work for typed data views
...
BUG=http://dartbug.com/20765
R=asiva@google.com
Review URL: https://codereview.chromium.org//529053002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39752 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-02 16:35:58 +00:00
asiva@google.com
fb5d976edc
Landing change from Zach for adding snapshot version numbers.
...
(Add a version number for full and script snapshots.
Currently the VM version string is used for versioning. This can
potentially be improved to use a version string that tracks the format
of the internal VM structures.)
Review URL: https://codereview.chromium.org//506753003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39612 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-27 18:27:51 +00:00
iposva@google.com
14ecdbd66a
- Separate the thread implementation used in bin/ and vm/
...
to allow us to make VM specific changes.
R=asiva@google.com
Review URL: https://codereview.chromium.org//463993002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39172 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-12 23:19:53 +00:00
rmacnak@google.com
e803f27641
Make Dart_LoadLibrary and Dart_LoadSource take line and column offsets like Dart_LoadScript.
...
BUG=http://dartbug.com/13460
R=hausner@google.com
Review URL: https://codereview.chromium.org//429013002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38801 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-31 21:25:23 +00:00
hausner@google.com
4258c115b4
Handle load errors in deferred code
...
IO errors on the URL of a deferred library are forwarded to the Future
that handles the deferred load. Syntax errors and finalization errors
are lethal, killing the isolate.
Review URL: https://codereview.chromium.org//419103003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38800 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-31 21:09:33 +00:00
iposva@google.com
28c8553cb6
- Fix a lot of warnings generated by -Wshorten-64-to-32
...
when compiling for ia32 on Mac.
R=vegorov@google.com
Review URL: https://codereview.chromium.org//415513002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38499 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-23 14:10:13 +00:00
asiva@google.com
97b903c665
Fix for issue 19817
...
- do not try to finalize classes on every Dart API call which could
potentially result in calls to dart code
- Invoke Dart_FinalizeLoading after all loads are done to ensure that
classes are finalized
R=hausner@google.com
Review URL: https://codereview.chromium.org//411633002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38471 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-22 20:08:15 +00:00
asiva@google.com
a8195aeb5c
Change the Dart API call Dart_FInalizeLoading to accept an additional argument
...
which makes completion of deferred library futures optional.
R=hausner@google.com
Review URL: https://codereview.chromium.org//407143004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38463 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-22 16:56:14 +00:00
asiva@google.com
a323a9c9db
The dart version of typeddata library has changed to be compatible with the dart2js implementation
...
(typeddata does not implement ByteBuffer anymore).
Added new Dart API functions to account for this change.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//392043003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38351 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-17 22:08:07 +00:00
asiva@google.com
a2d7a425c9
- Remove Dart_ReceivePortGetId, Dart_GetReceivePort and Dart_PostMessage.
...
- Change _EventHandler._sendData to use a sendport object instead of a
receiveport object.
R=iposva@google.com
Review URL: https://codereview.chromium.org//359673002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37827 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-30 17:46:26 +00:00
hausner@google.com
4090b57cd8
Defer marking libraries as ‘loaded’
...
Now that loading of libraries and library parts are loaded asynchronously and calls to Dart_LoadLibrary are serialized instead of nested, we must wait until the last load request is satisfied before marking libraries as ‘loaded’.
R=iposva@google.com
Review URL: https://codereview.chromium.org//350923005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37824 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-30 17:11:09 +00:00
fschneider@google.com
bd110db87a
Use range information for optimizing integer boxing and fix bug in range analysis.
...
1. When the input to a BoxInteger operation is in smi-range, we can eliminate
the range check and just perform a smi-tag operation on the input.
2. There was a bug in checking for smi-overflow for range boundaries: Calling Smi::IsValid
with a int64_t argument resulted in silent truncation of the input and therefore a wrong result.
Compiling with -Wconversion would have caught this, but currently we cannot compile with this flag
because of too many broken places.
Instead, I removed Smi::IsValid64 and created one variant Smi::IsValid that is specialized for the
input type with a template parameter. This way calling Smi::IsValid is always safe and will never
result in silent alteration of the input argument.
R=vegorov@google.com
Review URL: https://codereview.chromium.org//353513002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37657 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-24 13:41:48 +00:00
asiva@google.com
51d2a5d219
Fix build breakage.
...
Review URL: https://codereview.chromium.org//345973003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37569 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-20 21:20:30 +00:00
asiva@google.com
9a718b8235
Add a function Dart_AllocateWithNativeFields which allocates an object and sets the native fields in one call.
...
R=srdjan@google.com
Review URL: https://codereview.chromium.org//349643003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37568 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-20 21:08:33 +00:00
zra@google.com
1dc0e2331b
Removes open arrays (e.g. data[0]) from raw objects.
...
Replaces them with data() methods as in RawArray.
R=asiva@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//333773006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37450 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-18 15:58:16 +00:00
hausner@google.com
6cc8cbc53b
Adding embedder API function Dart_FinalizeLoading
...
Embedder must call Dart_FinalizeLoading when all outstanding
load requests are satisfied, to complete the deferred loading
futures.
R=asiva@google.com
Review URL: https://codereview.chromium.org//341543004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37423 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 21:05:30 +00:00
rmacnak@google.com
7ce5c53f0b
Pass around the current isolate in exception handling code.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//326183002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37409 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 18:17:03 +00:00
johnmccutchan@google.com
03854e0e8c
Make TypedList not implement ByteBuffer.
...
BUG=https://code.google.com/p/dart/issues/detail?id=10136
R=asiva@google.com , iposva@google.com
Review URL: https://codereview.chromium.org//339763002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37397 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 14:34:45 +00:00
koda@google.com
9098859cb0
Refactor creation of FinalizablePersistentHandle into proper factory.
...
This exposes an issue (19482) with the API and external size tracking.
BUG=dart:19482
R=asiva@google.com
Review URL: https://codereview.chromium.org//337183002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37381 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-16 23:55:34 +00:00
hausner@google.com
4eac05607f
Lazy loading of deferred libraries
...
Defer reading of source code of deferred libraries until the
Dart code executes the loadLibrary() call.
R=iposva@google.com
Review URL: https://codereview.chromium.org//328923002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37334 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-13 22:43:31 +00:00
vegorov@google.com
4e286b316f
Split GuardField into GuardFieldType and GuardFieldLength instructions.
...
Record expected length offset that matches guarded_cid.
This greatly simplifies code generation and control flow inside these guards.
Fixes the bug that was causing unoptimized code to call into runtime even when guard did not fail.
Add --trace-field-guards flags to trace updates to the state of guarded fields' properties.
BUG=http://dartbug.com/19003
R=fschneider@google.com , johnmccutchan@google.com , zra@google.com
Review URL: https://codereview.chromium.org//304703002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36872 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-02 13:53:53 +00:00
rmacnak@google.com
443faa9700
Add accessors for Maps to the embedding API.
...
(To be used by Dartium.)
R=koda@google.com
Review URL: https://codereview.chromium.org//289553002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36840 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-30 21:49:28 +00:00
asiva@google.com
de6a12ce6a
- Add Dart_EmptyString to return the canonical empty string similar to how
...
Null, True and False are done
- Removed check for current isolate from Dart_Null, Dart_True, Dart_False,
Dart_EmptyString as these are returning singleton objects.
R=regis@google.com
Review URL: https://codereview.chromium.org//302143004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36823 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-30 17:33:15 +00:00
fschneider@google.com
9ba867f748
Add fast path to ListGetAsBytes for byte-size ExternalTypedData.
...
This speeds up deserializing snapshots which come in as ExternalUint8Array.
This API function should be generalized to be fast for all built-in array
types in a future CL.
R=ajohnsen@google.com , iposva@google.com
Review URL: https://codereview.chromium.org//300003006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36671 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-27 13:05:56 +00:00
johnmccutchan@google.com
b3f2fb14d0
Reduce CPU usage when no isolates need to be profiled (e.g. when an isolate calls readLineSync or sleep the isolate owns the thread but is blocked).
...
This CL does the following:
- Introduces two new API entry points: Dart_IsolateBlocked and Dart_IsolateUnblocked.
- The thread interrupter thread goes into a deep sleep if no isolates need to be profiled (not scheduled on a thread or are in a blocking call).
- When an isolate unblocks, the thread interrupter thread resumes regular interrupts.
- dart:io readLineSync and sleep mark that they are making a blocking call.
This fixes https://code.google.com/p/dart/issues/detail?id=18126 reducing CPU usage to 0% when waiting for stdin or sleeping.
R=ajohnsen@google.com , iposva@google.com
Review URL: https://codereview.chromium.org//297183003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36632 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-26 11:53:49 +00:00
hausner@google.com
c6101ca4b5
First step towards asynchronous loading of sources. With this change, sources are read asynchronously in dart code (builtin.dart) and when the i/o future completes, a callback in the VM loads and compiles the script or library code.
...
In a next step, the i/o will be moved to the service isolate so that not all isolates have to import dart:io.
Fallout from this change:
1) Loading has become a tad slower. Will have to investigate why.
2) Errors that happen during loading (file not found, compilation error in an imported library) are no longer reported at the offending import clause. This can be fixed later if necessary by passing the import clause source location to the library tag handler.
Review URL: https://codereview.chromium.org//290713004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36575 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-23 17:43:14 +00:00