Commit Graph

598 Commits

Author SHA1 Message Date
johnmccutchan@google.com 727d29d6b6 Refactor VM service IDs:
- IDs are strings which can be concatenated together like paths.
- Isolate ID is now "/isolates/XXX"
- Function, field, class, library, and script IDs are now stable.
- Introduce <type-ref> tags.

R=turnidge@google.com

Review URL: https://codereview.chromium.org//98253009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31358 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-20 22:35:55 +00:00
regis@google.com b5a2dea566 Convert InstantiatedTypeArguments to TypeArguments upon canonicalization.
R=iposva@google.com

Review URL: https://codereview.chromium.org//106793007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31325 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-20 09:20:55 +00:00
asiva@google.com a576fec3c0 Allow the native resolver to setup whether it needs the Dart API scope to
be setup automatically or not when a native function is invoked.
This would allow the embedder to treat some native functions as leaf
functions whose invocation can be very light.

R=hausner@google.com, zra@google.com

Review URL: https://codereview.chromium.org//117723002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31286 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-19 17:47:56 +00:00
fschneider@google.com f7149b05c8 Fix bug in double unboxing.
The state bit that record if a field is unboxed or not has to be checked
in unoptimized code as well, since that code does not change when deoptimizing.

I also compacted the kind_bits bit field in the Field class to start from bit 0.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//106623006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31229 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-18 15:46:39 +00:00
asiva@google.com 64a261fbbd Changes to interpret the optimizable bit based on whether the function
is native or not.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//101753005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31207 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-17 22:07:41 +00:00
iposva@google.com e100129f8e - Use canonicalized type of non-parameterized classes when
available.
- Do not attempt to make types for objects of Context.

R=fschneider@google.com, regis@google.com

Review URL: https://codereview.chromium.org//102053010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31194 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-17 16:59:14 +00:00
fschneider@google.com 6abd6e326e Add mutable double boxes for fields.
This allows the optimizing compiler to generate unboxed loads/stores
to fields containing double values. The double value is stored
in a reusable double object.

Unboxed loads/stores are generated for optimized code. Unoptimized code
allocates a new double on loads. To avoid performance regressions
for fields that are only written few times (e.g. only in the constructor)
I put a heuristic in place that
compares the usage count of setters and getters. Unboxed operations
are only generated if the setter is invoked a significant amount of
times (threshold is 10% of getter invocations).

The CL is so big because it changes the way LocationSummmary
is allocated: We now have a bit to generate different summaries
for optimized and unoptimized code.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//99573005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31164 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-16 15:11:31 +00:00
turnidge@google.com 365cde2ecb Add GrowableObjectArray::ToUserCString().
Prints a decent representation of a list, subject to length
constraints.  Prints the length of the list if it is truncated.

e.g.

[]
[1,2,3]
["0123456789",...](length:4)

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//100603011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31144 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-13 19:36:40 +00:00
regis@google.com fb6d24945f Introduce class TypeRef in the VM to fully support recursive types.
Fix issues 15244, 15148, 14869, 14000, and 13688 (was closed, but fragile).

Note that the current solution is not final as it may not be correct in more
complex cases not yet covered by language tests.
The final solution will require a 'trail' instead of a simple mark bit to
prevent operations involving recursive types to diverge.

R=asiva@google.com

Review URL: https://codereview.chromium.org//103913005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31087 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-11 22:51:19 +00:00
turnidge@google.com 21b867f851 Add an instance view page to the vmservice.
We can use this view to browse the field values of objects and explore
the heap a bit.

----------

Add field lists to the class and instance view pages.

Add field-ref and instance-ref elements.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//110703002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31074 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-11 18:03:42 +00:00
turnidge@google.com 29b080a4b1 Add Instance::ToUserCString.
-----

Often ToCString returns a representation which would be weighty or
unsightly to users.  Instance::ToUserCString tries to return a
representation that will be more familiar to end users.

ToUserCString will be used in the vmservice to produce interesting
instance preview strings w/o calling toString.  No doubt we will find
other uses for it too.

For example, strings are represented more as they would be in a user
program, with quotes and escapes: ("this\nis\ta\n\ntest") instead of (this
is        a

test).

I intend to add better representations for short lists and maps
later, e.g. ([1,2]) instead of (Instance(length:2) of '_GrowableList').
I've added some tests to track current behavior.

Fix a problem where the vm internal names for private classes were
leaking out through ToCString.  This is problematic because Dart's
default toString relies on ToCString (which surprised me).  This fix
will be user-visible and, darn it, it's the right thing to do.  For
example, before toString (in Dart) might yield:

  Instance of '_MyPrivateClass@43df89GARBAGE4389'

Now it will yield:

  Instance of '_MyPrivateClass'

(as an aside, do those single-quotes around the class name add any
meaning here?)

Massage the output of ToString for GrowableObjectArray to be more
consistent with other instance ToString output.  This should not be user
visible, as lists define a reasonable toString.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//100833005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30996 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-09 19:47:23 +00:00
fschneider@google.com cd54507fc2 Mark native functions when they are created.
Until now the parser marked native functions as native when parsing.

This may be too late for some functions. E.g. the native typed list
constructor may not be invoked because the intrinsic code is executed
instead (unless for example new-space allocation fails).

This causes missing type information when optimizing functions using
those recognized factory functions like Uint8List._new.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//99373002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30846 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-04 10:32:43 +00:00
johnmccutchan@google.com 589ea683c3 List scripts in library and display script source
BUG=
R=iposva@google.com

Review URL: https://codereview.chromium.org//59283007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30732 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-27 19:54:52 +00:00
johnmccutchan@google.com ff20eb09b0 Support Bigint parameters in Int32x4 constructor
https://code.google.com/p/dart/issues/detail?id=15130

R=srdjan@google.com

Review URL: https://codereview.chromium.org//88983004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30686 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-26 23:46:27 +00:00
zra@google.com daf539e2f9 Fixes a couple problems with GC of unoptimized code.
1. Instead of making a pass before the Marking phase,
   this change does not visit code pointers in functions
   during marking. Then after marking, if the code has
   still not been marked, code pointers in functions
   are nulled out.
2. Since code pointers in functions may be nulled out,
   functions are no longer used as proxies for code in
   deoptimization info.

R=iposva@google.com, srdjan@google.com

Review URL: https://codereview.chromium.org//70183010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30600 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-23 00:17:28 +00:00
regis@google.com d1e945994e Improve type test and type equality for generics (issue 15148).
R=srdjan@google.com

Review URL: https://codereview.chromium.org//81363002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30546 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-21 21:30:51 +00:00
regis@google.com db2cec593d Distinguish between malformed and malbounded types more efficiently using the
recently introduced LanguageError 'kind' field.

R=hausner@google.com

Review URL: https://codereview.chromium.org//75713002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30383 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-18 23:31:12 +00:00
rmacnak@google.com af3f18fa84 Add an API function to get a debugger stack trace from an error handle.
BUG=http://dartbug.com/14322
R=asiva@google.com

Review URL: https://codereview.chromium.org//51793002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30323 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-15 23:42:23 +00:00
regis@google.com 2a355a7bb6 Lazily format LanguageError messages (fix issue 15069).
R=iposva@google.com

Review URL: https://codereview.chromium.org//68113028

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30308 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-15 18:54:24 +00:00
regis@google.com 694401d38e Rename mixin typedef to mixin application alias in VM.
R=hausner@google.com, rmacnak@google.com

Review URL: https://codereview.chromium.org//71693003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30277 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-14 17:42:39 +00:00
johnmccutchan@google.com 70483ee91e Add ability for Function to generate source
BUG=
R=hausner@google.com

Review URL: https://codereview.chromium.org//60993002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30239 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-13 18:09:41 +00:00
regis@google.com e3da5e16e4 Check type bounds of redirecting factories (issue 14699).
Add tests for malbounded redirecting factories.
Clean up bound checking code and type error reporting code.

R=hausner@google.com

Review URL: https://codereview.chromium.org//66033006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30177 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-11 22:59:48 +00:00
iposva@google.com 256e2ca73b - Avoid deep recursions when executing type tests.
Review URL: https://codereview.chromium.org//58923002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29873 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-05 04:45:14 +00:00
johnmccutchan@google.com 29c01044bc This is the final breaking change in dart:typed_data needed for Dart 1.0. We need this change because the ECMAScript SIMD specification only includes Int32x4 and Int32x4List and our types must match.
R=srdjan@google.com

Review URL: https://codereview.chromium.org//56023004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29849 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-04 21:56:59 +00:00
asiva@google.com 48e5bebfe3 Compute next field offset correctly.
R=iposva@google.com

Review URL: https://codereview.chromium.org//56033002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29818 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-04 16:51:48 +00:00
fschneider@google.com 91ca330ac8 VM: Fix initialization of statics in presence of exceptions.
In a static- or top-level variable v

var v = expr
static v = expr

If the initializer expression expr throws, the VM throws a
CyclicInitializationError when loading v afterwards, even though
this has nothing to do with cyclic initialization.

I'm changing the way implicit static getters and static initializers are
compiled. Static initializers are invoked from static getters.

They look as follows:

get:v {
  if (field.value === transition_sentinel) {
    field.value = null;
    throw new CyclicInitializationError();
  }
  if (field.value === sentinel) {
    field.value = transition_sentinel;
    init:v();
  }
  return field.value;
}


init:v {
  try {
    field.value = expr;
  } catch {
    if (field.value === transition_sentinel) {
      field.value = null;
    }
    rethrow;
  }
}

BUG=http://dartbug.com/5802
TEST=language/lazy_static3_test,
language/throwing_lazy_variable_test,
co19/Language/12_Expressions/30_Identifier_Reference_A08_t02

R=hausner@google.com

Review URL: https://codereview.chromium.org//54713003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29797 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-04 10:08:47 +00:00
fschneider@google.com a037e4874b Fix bug with guarded fields and deserialization.
Since deserialization does not involve the normal object construction
procedure, any values written there won't be reflected in the guarded field
type. This results in incorrect optimized code because deoptimization of
dependent code objects in not triggered.

This CL adds tracking of field types and guarded list length when creating
objects via deserialization.

R=iposva@google.com

Review URL: https://codereview.chromium.org//50243004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29741 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-01 10:39:09 +00:00
fschneider@google.com ce9573722c VM: Fix checked mode crash (issue 13831).
The AST for static getters differs between parsing the first time, and
subsequent parsings. This leads to a mismatch in deoptimization-ids
between the optimized and the unoptimized code.

This CL avoids creating different ASTs for the same static getters. To allow
better inlining of these getters, the initialization expression is wrapped in a
hidden static initializer-function. As a result the size of such getters is
constant and does not depend on the initializer expression.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//51123003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29680 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-31 16:49:55 +00:00
johnmccutchan@google.com 8a0fd8ce4d Add Uint32x4List to typed_data
R=asiva@google.com, srdjan@google.com, vsm@google.com

Review URL: https://codereview.chromium.org//51333005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29639 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-31 04:57:38 +00:00
lrn@google.com 41ff075e31 Remove deprecated dart:utf library.
BUG= http://dartbug.com/12843
R=fschneider@google.com, sgjesse@google.com

Review URL: https://codereview.chromium.org//48133002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29537 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-30 12:25:02 +00:00
whesse@google.com 3b54950144 Remove dart:platform library.
This reverts commits r29154, r29244, r29251, r29268, and r29272.
The dart:io Platform class will not be moved to a dart:platform library.

R=ajohnsen@google.com

Review URL: https://codereview.chromium.org//50573002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29435 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-29 11:33:34 +00:00
regis@google.com 20badfb06e Register synthesized mixin application classes in the library and reuse them
when possible (fix issue 14318).

R=asiva@google.com, hausner@google.com, rmacnak@google.com

Review URL: https://codereview.chromium.org//42723003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29276 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-25 19:46:32 +00:00
lrn@google.com 3a01260611 Remove dart:json
BUG= http://dartbug.com/12843
R=floitsch@google.com, fschneider@google.com

Review URL: https://codereview.chromium.org//40323002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29240 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-25 10:30:34 +00:00
iposva@google.com 6267207e64 - Account for hidden frames when concatenating throw and
catch traces.

R=asiva@google.com

Review URL: https://codereview.chromium.org//41503004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29218 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-24 22:08:33 +00:00
zra@google.com 039a4c4078 Disconnects code objects from infrequently used unoptimized functions.
Every 30 seconds (configurable by --code-collection-interval),
before a MarkSweep collection, this change halves a function's
usage count if it is unoptimized. If the function's usage count
reaches 0 as a result of this halving, it sets the function's
code pointers to null. Then, if the code object isn't marked
during the MarkSweep, it will be collected.

This change also checks for null code pointers in various
places, and recompiles/reconnects code if needed.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//27802002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29209 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-24 21:26:15 +00:00
ajohnsen@google.com 28efa85e19 Add empty dart:platform library.
dart:platform will be a library that contains information about the runtime
platform. While it's not written in stones, this is examples of properties that
may be queried:

- OS
- Browser
- Browser version
- Dart Version
- numberOfProcessors
- pathSeparator
- Native or JS VM

BUG=
R=ahe@google.com, asiva@google.com, floitsch@google.com, iposva@google.com, kasperl@google.com

Review URL: https://codereview.chromium.org//32683002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29154 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-24 06:56:36 +00:00
iposva@google.com d369b7a0c9 - Ensure that the token stream from generated source matches the
original token stream in the presence of combinations of
  multiline string and string interpolation. If not this will
  cause mismatches when accessing code snippets, e.g when
  reporting parser errors or assertions.
- Ensure that ScanAll and ScanTo are in sync when adding or
  counting tokens.
- Added unit test for multiline strings and interpolation.
- Expanded GenerateSource unit test to iterate through all
  loaded libraries.
- Do not report columns for compilation errors in snapshotted
  code.
- Do not report columns from exceptions and errors when dealing
  with snapshotted code.
- Remove length field from TokenDescriptor. It was unused.
- Remove TokenStream::ComputeTokenPosition. It was unused.

R=fschneider@google.com, hausner@google.com

Review URL: https://codereview.chromium.org//36323003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29110 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-23 19:08:36 +00:00
rmacnak@google.com de7c68ce3a Test for OscillatorNode.type=. Fix bug in StringGetPeerHelper when passed an immediate object. Fix asserts when getting typed data address to allow for empty arrays.
BUG=http://dartbug.com/11984
R=asiva@google.com, vsm@google.com

Review URL: https://codereview.chromium.org//28973003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29049 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-23 00:12:09 +00:00
rmacnak@google.com 58c1759454 Generic instantiations of mixins and interfaces. Equality of type parameters.
BUG=http://dartbug.com/14113
BUG=http://dartbug.com/14114
R=regis@google.com

Review URL: https://codereview.chromium.org//27610002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28768 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-17 00:16:34 +00:00
asiva@google.com 4ee18d0673 - Rearrange bits in the bitfields to get better compaction, this reduces
initial snapshot size by about 500 bytes.
- Fix initialization problem with redirecting factory bit

R=rmacnak@google.com, srdjan@google.com

Review URL: https://codereview.chromium.org//26565006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28736 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-16 17:40:07 +00:00
regis@google.com 2f900dab13 Cache number of type arguments in class object instead of recalculating it.
Reduce size of num_native_fields field in class object.

R=asiva@google.com

Review URL: https://codereview.chromium.org//26682003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28670 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-15 18:31:31 +00:00
srdjan@google.com 2f0a906dbf Cleanups, refactoring in anticipation of new string interpolation nodes. Removed unnecessary code.
R=hausner@google.com

Review URL: https://codereview.chromium.org//27006003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28619 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-14 23:21:52 +00:00
rmacnak@google.com 564fbb68dd Add proper API for creating private symbols wrt a library.
BUG=http://dartbug.com/13355
BUG=http://dartbug.com/12358
R=ahe@google.com, asiva@google.com, gbracha@google.com

Review URL: https://codereview.chromium.org//24631003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28551 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-11 20:56:14 +00:00
regis@google.com fcadf9fdd6 Overlap type arguments of a type with the type arguments of its super type
when possible. Overlapping may be partial.
Add flag --overlap-type-arguments controlling this optimization for debugging
and performance measurement (default is true).

R=hausner@google.com

Review URL: https://codereview.chromium.org//26955002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28539 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-11 18:36:25 +00:00
rmacnak@google.com 8a0d62f5f9 Substitution for type variables in mirrors on instantiated generics.
BUG=http://dartbug.com/12282
BUG=http://dartbug.com/13808
R=gbracha@google.com, regis@google.com

Review URL: https://codereview.chromium.org//26344006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28495 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-11 01:51:11 +00:00
rmacnak@google.com 6ed9f2c17f Implement constructor kinds in the VM mirrors.
BUG=http://dartbug.com/13798
R=asiva@google.com, hausner@google.com

Review URL: https://codereview.chromium.org//26436004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28416 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-09 20:40:11 +00:00
regis@google.com 79b9edbf2a Do not share type arguments of mixin types, but clone them to avoid finalization
errors when cycles are involved (issue 13688).
Add regression test.

R=hausner@google.com

Review URL: https://codereview.chromium.org//25569002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28107 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-01 18:26:05 +00:00
srdjan@google.com 30197aab9d Improve performance of string buffer by modifying concatAll native to allow growable array and an interval. Eliminate unnecessary check for String elements in release mode.
R=asiva@google.com

Review URL: https://codereview.chromium.org//25087006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28102 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-01 16:48:12 +00:00
jacobr@google.com 636d137f66 Fix for issue where external one byte strings cannot be escaped. This occured in practice when requesting all library names for a Polymer.dart example The likely reason why the issue occurs in this case but not others is that some of the libraries are generated using data urls. Added some tests for EscapeSpecialCharacters as it did not have any tests.
BUG=
R=hausner@google.com

Review URL: https://codereview.chromium.org//25344002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28073 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-01 00:08:01 +00:00
mlippautz@google.com 1941e151ea Improve code coverage generation.
- Remove function name from output.
- Remove column from output (side effect: We can use fast version of
  GetTokenLocation())
- Insert HANDLESCOPES
- Fold source file entries where easily possible, i.e., fold consecutive entries
  created by functions in the same source file.
- Change format to

  [{
     "source": "...",
     "hits": [<line>,<hitcount>, ...]
   }, ... ]

BUG=
R=iposva@google.com

Review URL: https://codereview.chromium.org//24654003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28030 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-27 23:22:49 +00:00