Commit Graph

464 Commits

Author SHA1 Message Date
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