Commit Graph

151 Commits

Author SHA1 Message Date
asiva@google.com a61ffc6210 Fix a pretty blatant GC bug (was the cause of all the weird crashes on windows).
Review URL: https://chromiumcodereview.appspot.com//10025033

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6726 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-19 05:30:30 +00:00
asiva@google.com d807f2a7dd Initialize tags back to 0 before using it.
Review URL: https://chromiumcodereview.appspot.com//10021046

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6711 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-18 21:50:15 +00:00
hausner@google.com 475fbca314 Implement implicit interfaces
Amazingly, this small change is all it seems to take to implement
implicit interfaces.
Review URL: https://chromiumcodereview.appspot.com//10103009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6607 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-16 22:21:54 +00:00
turnidge@google.com e5022d70d4 Add fast paths for Smi values in the dart embedding api.
This speeds up the UseDartApi microbenchmark by 30%.  Thanks to Carl
for suggesting this.
Review URL: https://chromiumcodereview.appspot.com//10052027

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6602 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-16 20:30:37 +00:00
regis@google.com 85e4a9c054 Do not require type class to be finalized when performing a type test.
However, make sure that the interfaces are resolved (issue 2523).
A later change will cleanup interface resolution code.
Review URL: https://chromiumcodereview.appspot.com//10050034

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6446 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-12 00:18:43 +00:00
regis@google.com 113c4b6626 Add missing calls to class finalizer in various tests.
Make 'sentinel' and 'transition_sentinel' instances of class Null.
Review URL: https://chromiumcodereview.appspot.com//10034019

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6421 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-11 18:12:28 +00:00
srdjan@google.com d154a7ffce Try/catch in new compiler. Added try index to appropriate instructions. If any instruction throws an exception, the try index tells us which catch entry the exception belongs to.
Review URL: https://chromiumcodereview.appspot.com//10014006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6389 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-10 23:22:40 +00:00
asiva@google.com 8f208ad7ca Wire GrowableArray to use the internal VM object.
This also fixes issue (5526318 : Make access to GrowableArray objects through the dart api more efficient)
Review URL: https://chromiumcodereview.appspot.com//10012042

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6341 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-09 21:50:53 +00:00
asiva@google.com 2d3775a1b1 Resubmit change 6302 after fixing the compiler warning on older GCC compiler versions:
Change 6302 description:
- Wire the stack frame iterator to use stack maps for traversing objects if
there are stack maps in the code object. If there are no stack maps it still
does the old style stack frame traversal between fp and sp looking for tagged
pointers.
- Added a mechanism to be able to iterate over the code space and look for a
particular object.
Review URL: https://chromiumcodereview.appspot.com//10030001

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6331 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-09 18:20:23 +00:00
asiva@google.com c79da818cc Revert change 6302 until the compiler warning is addressed.
Review URL: https://chromiumcodereview.appspot.com//10025003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6304 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-07 02:04:28 +00:00
asiva@google.com c27cec5b6e - Wire the stack frame iterator to use stack maps for traversing objects if there are stack maps in the code object. If there are no stack maps it still does the old style stack frame traversal between fp and sp looking for tagged pointers.
- Added a mechanism to be able to iterate over the code space and look for a particular object.

- Remove registration of code objects into the code index table.
Review URL: https://chromiumcodereview.appspot.com//9791048

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6302 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-07 01:44:48 +00:00
srdjan@google.com 1125846660 When checking against non-parametrized types use a cache to hold result tuples (class, result). That cache is stored in the instruction stream. Currently implemented for instanceof, ia32 only. Should migrate to other type tests and architectures.
70x improvement on a benchmark (similar to what is seen in html _unwrap).
Review URL: https://chromiumcodereview.appspot.com//10010029

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6281 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-06 16:05:55 +00:00
regis@google.com 9ff0afa50e Do not require upper bounds to be resolved and finalized before comparing them
between the expected and actual factory class (issue 2431).
Add test.
Review URL: https://chromiumcodereview.appspot.com//10008017

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6236 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-05 18:11:42 +00:00
turnidge@google.com e610ab662b Revert my last change due to problems on other platforms.
Review URL: https://chromiumcodereview.appspot.com//9968088

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6129 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-03 17:51:20 +00:00
turnidge@google.com 11d29be5e1 Detect recursion during compilation of const constructors.
We now give a message like this:

    Illegal recursion in const constructor 'A.'.
Review URL: https://chromiumcodereview.appspot.com//9965081

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6128 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-03 17:32:39 +00:00
regis@google.com 5282e44fb2 Use null type argument vector instead of vector of Dynamic for a generic raw
type when possible.
Fix type finalization of type parameters (always finalize in the context of the
class being parameterized and not in the enclosing class where the type
parameter is used).
Fix wrong generic optimization and added a test (a generic type instantiated
from a raw instantiator is not always raw).
Added printing of type argument vectors.
Review URL: https://chromiumcodereview.appspot.com//9939003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6068 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-30 22:16:52 +00:00
srdjan@google.com f1bad6571d Improve checked mode a little (more to come in a different CL).
Review URL: https://chromiumcodereview.appspot.com//9854030

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5847 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-26 18:23:37 +00:00
hausner@google.com 356870a3c8 Stop ignoring compilation errors on compile_all
When compiling all code, stop compiling after the first error.
Previously, we ignored compilation errors.

This was a feature wish so we can detect errors in libraries.
In fact, there are errors in the library, e.g. references
to non-existing top-level functions in utf16 code. And possibly
others. If this code gets checked in, any tests that depends on
--compile_all will break.

First problem:

'dart:utf': Error: line 607 pos 7: identifier 'is16BitCodeUnit' is not declared in this scope
  if (is16BitCodeUnit()) {
      ^

If I hack that, the next one is:

'dart:utf': Error: line 613 pos 9: identifier 'utf16CodeUnitsToCodepoints' is not declared in this scope
        utf16CodeUnitsToCodepoints(codeunits, 0, null, replacementCodepoint));
        ^

Didn't investigate any more than that...
Review URL: https://chromiumcodereview.appspot.com//9836064

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5835 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-26 15:51:25 +00:00
asiva@google.com d0d0cec4fc Fix for issue 2233
- Fixed the bigint instance allocation path when full snapshots are read.

- JSRegExp objects are only serialized/deserialized in a message snapshot and
hence do not need that special path. There is an assertion in JSRegExp to
ensure that these objects are not part of a full snapshot.
Review URL: https://chromiumcodereview.appspot.com//9835074

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5802 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-24 02:42:56 +00:00
asiva@google.com e360e4d1c9 Second set of changes for implementation of stack map support.
- Added functionality to be able to build stack maps in the compiler and register them into the Code object during Code finalization.
- Merged code_generator_ia32_test.cc and code_generator_x64_test.cc into code_generator_test.cc as the two files were identical.
Review URL: https://chromiumcodereview.appspot.com//9721006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5764 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-23 01:27:35 +00:00
hausner@google.com feafdf0e06 Properly recognize closures when setting breakpoints
Local functions and function literals are unknown to the VM
until the enclosing function is compiled. This change introduces
a list of known closures per class, and a function to look up
the innermost closure at a given token index.

The debugger now checks whether there are newly discovered
closures when a function containing a pending breakpoint is
compiled. If necessary, the breakpoint is set to the inner
function.
Review URL: https://chromiumcodereview.appspot.com//9716004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5599 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-16 22:28:57 +00:00
asiva@google.com 9ca9e8fbd4 Fix for issue 2124 - Dart VM crashes on windows
The Array::MakeArray was incorrectly accessing the class_ field before it was initialized.
Review URL: https://chromiumcodereview.appspot.com//9700079

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5552 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-16 03:58:06 +00:00
asiva@google.com f120af8463 First step towards implementing stack map descriptions for the optimizing compiler.
Add a RawBitmap object and a bitmap builder.
Review URL: https://chromiumcodereview.appspot.com//9701010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5502 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-15 00:18:05 +00:00
cshapiro@google.com f4c5dd4db3 Implement prologue weak persistent handles.
Prologue weak persistent handles are similar to weak persistent
handles but exhibit different behavior during garbage collections that
invoke the prologue and epilogue callbacks.  While weak persistent
handles always weakly reference their referents, prologue weak
persistent handles weakly reference their referents only during a
garbage collection occurs that invokes the prologue and epilogue
callbacks.  During all other garbage collections, prologue weak
persistent handles strongly reference their referents.

Review URL: https://chromiumcodereview.appspot.com//9655011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5445 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-13 23:41:59 +00:00
turnidge@google.com e61a02c10d Implement spawnFunction from the new isolate api.
Still need to implement spawnUri, which will be the more difficult one.
Review URL: https://chromiumcodereview.appspot.com//9691005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5441 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-13 22:05:08 +00:00
regis@google.com d74c2008be Fix type check to perform a subtype test at top level instead of an
assignability test. This only makes a difference when assigning an instance of
a function type.
Fix a bad language test.
Disable a bad co19 test (issue 99 filed).
Change error message for dynamic type error.
Review URL: https://chromiumcodereview.appspot.com//9664029

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5413 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-13 16:16:12 +00:00
iposva@google.com a6dd90f000 - Make RawICData a subclass of RawObject and not RawInstance.
Review URL: https://chromiumcodereview.appspot.com//9691024

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5379 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-13 01:26:39 +00:00
turnidge@google.com ff26341fd6 Heartbeat implementation of dart:mirrors.
Add the skeleton for the dart:mirrors library in all the appropriate
places.  The only thing we can do right now is ask an Isolate for its
debugName.  Add a few tests.
Review URL: https://chromiumcodereview.appspot.com//9420038

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5370 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-12 23:51:03 +00:00
srdjan@google.com 8d524a5a23 Implement factory call.
Review URL: https://chromiumcodereview.appspot.com//9664023

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5331 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-12 16:22:50 +00:00
regis@google.com 33bd965e2a Generate a dynamic type error when creating an instance with a bound error.
Review URL: https://chromiumcodereview.appspot.com//9665013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5250 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-09 21:15:11 +00:00
asiva@google.com 588aaf6530 Use GrowableObjectArray in ic-data.
Review URL: https://chromiumcodereview.appspot.com//9630003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5189 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-08 19:23:24 +00:00
turnidge@google.com d70bc0e65f Adds new apis Dart_GetField/Dart_SetField.
These are intended to replace Dart_{Get,Set}{Static,Instance}Field.

---

Mess with Library::PrivateName.

Add field/function lookup to Library.
Review URL: https://chromiumcodereview.appspot.com//9616044

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5124 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-07 21:15:58 +00:00
asiva@google.com e4d024664e Add a first class GrowableObjectArray type in the VM and use it internally in the VM at all spots were we use GrowableArray first and then copy the contents into an Array object.
Next step is to use this type in growable_array.dart
Review URL: https://chromiumcodereview.appspot.com//9594028

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5109 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-07 19:14:02 +00:00
floitsch@google.com 5f5f63ff1c Implement BigintOperations::ToDecimalCString.
Review URL: https://chromiumcodereview.appspot.com//9536016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5068 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-07 08:25:32 +00:00
regis@google.com f4ddc43cdf Generate dynamic type errors according to spec.
Fix a few bad tests.
Turn a couple negative tests in multi-tests.
Triage a few co19 failing tests.

Still to do:
Check bounds of generic types at runtime in checked mode.
Stop reporting bounds error in new operator as a compile time error.
Review URL: https://chromiumcodereview.appspot.com//9615035

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5064 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-07 02:23:12 +00:00
srdjan@google.com 17537cf230 Fix crash in inline cache: forgot to GC properly RawICData. Various cleanups.
Review URL: https://chromiumcodereview.appspot.com//9567023

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4832 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-01 22:02:41 +00:00
regis@google.com 72529efec7 Check type argument bounds of interfaces in type tests (work in progress).
Add a new test.
Fix broken tests.
Review URL: https://chromiumcodereview.appspot.com//9565016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4819 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-01 19:54:19 +00:00
srdjan@google.com a53b86a6bd Fix Issue 1844: Throw exception instead of crashing if the size of allocated array is too large (or negative).
Review URL: https://chromiumcodereview.appspot.com//9549008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4774 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-01 00:03:03 +00:00
cshapiro@google.com cbe6cf6b0c Guard calls to ByteAddr when a ByteArray copy length is 0.
It is permitted to specify a start index equal to the array length
when the copy length is 0.  This runs afoul of an assertion in
ByteAddr that validates 0 <= index < length.  Consistent with other
methods to retrieve a raw element address, we now guard this call with
an implicit check for this boundary condition by ensuring length is
greater than zero.

In addition, some simple unit tests for ByteArray::Copy have been added.

BUG=1891

Review URL: https://chromiumcodereview.appspot.com//9560001

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4772 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-29 23:51:01 +00:00
asiva@google.com 33d2e2fe26 Changes to shrink the token stream representation from two words to one word.
On standalone dartium which has about 50000 tokens in the libraries (core, coreimpl, builtin, io etc.) this reduces the heap size by about 180kb. The size of the standalone snapshot buffer reduces by about 72kb.

Also moved the keyword symbol table to the object store so that it does not have to repopulated on every script compilation. Should benefit regular user script load times.
Review URL: https://chromiumcodereview.appspot.com//9462003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4734 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-29 02:46:29 +00:00
regis@google.com 47724a8491 Add support for malformed types and postpone some related errors from compile
time to execution time.

Still to do (once spec is clarified):
- properly handle generic type bounds errors
- properly handle 'instance of' type checks involving malformed types
- fix bad tests
Review URL: https://chromiumcodereview.appspot.com//9515011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4732 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-29 02:14:18 +00:00
asiva@google.com 738f458956 Changes to get rid of dependency on openssl in the dart VM.
(This will enable dartium to be built on the windows platform).
Review URL: https://chromiumcodereview.appspot.com//9481019

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4717 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-28 18:36:39 +00:00
kmillikin@google.com 888a35df7f Add a stubbed-out implementation of FlowGraphCompiler for ia32 and arm.
It bails out if FlowGraphCompiler::CompileGraph is called, all other public
API functions are UNIMPLEMENTED.

R=srdjan@google.com
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com//9479004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4685 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-28 14:17:17 +00:00
floitsch@google.com 3c2b298a75 Implement Double.{toString, toStringAsExponential, toStringAsPrecision}
Also switch to -0.0.

Review URL: https://chromiumcodereview.appspot.com//9113043

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4681 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-28 13:19:50 +00:00
srdjan@google.com f6dfa63c9a Cleaned up usage of Function::code, since it may be misunderstood that it points to the only Code object that belongs to that function. That is not the case, there can be several Code object generated for the same function. "Renamed" "code()" to "CurrentCode()", use unoptimized_code where it is clear that we are using unoptimized code only. If compiled, there is a 1:1 correspondence between function and unoptimized code.
Review URL: https://chromiumcodereview.appspot.com//9475031

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4656 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-28 01:31:44 +00:00
sigmund@google.com ee6a907611 isolates refactor: this change introduces 'dart:isolate' as a library. This is a
big global change, so let me explain in more detail. This refactoring CL does
the following:
- moves all the dart code for isolates in a common library (lib/isolate)

- changes frog to understand 'dart:isolate' imoprts by loading the code from the
  location above.

- changes the vm to undernstand 'dart:isolate' imports by creating a separate
  library that is part of the bootstrap. This follows the same code-structure
  that Todd suggested in his CL introducing the mirror library

- changes dartc to use the shared isolate library as the source of truth for
  type checking. I left around some of the internal js code in dartc so that the
  backend continues to work for apps that don't use isolates.

- changes all tests that use isolates to import the library explicitly (this is a large bulk of the files in this CL)

- changes test status for tests we can't fix in this repo (e.g. co19)

- splits the isolate library code to make it possible to preserve some tests
  without exposing internal types (e.g. tests about
  serialization/deserialization)

- changes the create_sdk script to copy the isolate library to the sdk

- includes the isolate library in dartdoc

I'll wait for at least one lgtm from each area (dartc, vm, frog, sdk)

There is one important pending thing this CL doesn't do:
- update test_runner.dart: This should be updated next time we upload the new
  binaries to tool/testing/bin
- dartium specific changes: Vijay, is there anything I need to do for dartium?

Review URL: https://chromiumcodereview.appspot.com//9422019

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4647 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-27 22:50:44 +00:00
hausner@google.com 6d9abc5e3b StepOver, StepInto, StepOut
Implement single stepping in the debugger.
- Add PC descriptors for function return
- functions to set temporary breakpoints on all
  locations in a function.
- patching/restoring of function return code pattern
- determine call target of instance calls
Review URL: https://chromiumcodereview.appspot.com//9484002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4639 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-27 22:00:28 +00:00
srdjan@google.com a343a49338 Do not count invocations but usage of a function, i.e., increment a function's counter at IC calls and at return operations in unoptimized code. (TODO: increment count at static calls as well). There is no checking at method entry any more. The function counter reporting is not measuring the invocation count but much more how much time we spend in a method. Removed counter at backward branches.
Renamed flags to:
--optimization_counter_threshold (default 2000)
--report_usage_count
Review URL: https://chromiumcodereview.appspot.com//9460015

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4583 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-25 00:33:25 +00:00
srdjan@google.com a54f33bf92 ICData is now a wrapper object that refers to the calling function, target name, ic data array, etc. The old ICData C++ class that wrapped around an Array is removed. The advantage is that the ICData object remains the same, only its ic_data array object is being modified as classes are added..
TODO: store ICData-s into function so that the type feedback can be easily extracted (currently must traverse the unoptimized code).
Review URL: https://chromiumcodereview.appspot.com//9395016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4417 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-22 00:40:03 +00:00
asiva@google.com 3983c61041 Implement capability to use the same library prefix for multiple library imports (currently this is flagged as an error).
e.g:

#import("mylib101.dart", prefix:"mylib");
#import("mylib102.dart", prefix:"mylib");
#import("mylib103.dart", prefix:"mylib");
Review URL: https://chromiumcodereview.appspot.com//9363048

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4289 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-15 20:53:28 +00:00