Commit Graph

1150 Commits

Author SHA1 Message Date
srdjan@google.com 97021b5861 Add class id constants fields to dart:_internal class 'ClassID'. Use the fields in the library (more uses to come).
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37628 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-23 22:41:59 +00:00
floitsch@google.com 7a20438bb8 Update timer and adjust frequency.
BUG= http://dartbug.com/19435
BUG= http://dartbug.com/19082
R=lrn@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37586 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-23 09:33:59 +00:00
srdjan@google.com d44423b766 Add VM internal Dart class 'ClassID' used to manage class-ids of known classes. Next CL: add constant fields corresponding to each class id (smiCid, oneByteStringCid, etc).
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37567 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-20 20:56:55 +00:00
regis@google.com 32f3e11d99 Cleanup of error and warning reporting.
R=hausner@google.com, srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37468 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-18 22:30:34 +00:00
srdjan@google.com ee210974f6 Reduce default capacity of growable list from 4 to 2 elements. Improves performance.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37421 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 20:49:47 +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
hausner@google.com 312c13be73 Fix deferred load code in checked mode
Review URL: https://codereview.chromium.org//336903003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37335 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-13 23:04:07 +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
lrn@google.com 1ec6c5c1db Revert "Add "last" setter to List."
After discussion, we decided not to change the List interface for something that is just a convenience.

Also revert "Mark pkgbuild/pkg/collection as failing when using repository packages"

R=sgjesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37307 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-13 09:40:22 +00:00
rmacnak@google.com da3b61d764 Add missing demangling to the VM's NoSuchMethodError. Ensure the VM's NoSuchMethorErrors for reflective invocation match those for non-reflective invocation.
Fix bug in VM demangling of setters.
Fix bug where test was not covering invocation on classes as intended.

BUG=http://dartbug.com/18042
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37294 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-12 22:53:00 +00:00
fschneider@google.com 8621f8bda9 VM: Remove explicit field initialization with null from library classes.
It is redundant since fields are implicitly null-initialized.

R=ajohnsen@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37261 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-12 10:59:20 +00:00
lrn@google.com f528beb9f2 Add "last" setter to List.
This allows assigning directly as `list.last = value` instead of
having to use the longer `list[list.length - 1] = value`.
It's just an abbreviation, like `list.last` is for reading.

If you use a List as a stack (which is a perfectly good use of it),
modifying the last element like this is a natural operation.

R=sgjesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37255 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-12 08:11:22 +00:00
rmacnak@google.com ce490637b2 Censor dart:_blink and dart:builtin from the enumeration of libraries in the isolate and from import lists. Note we are not censoring dart:_internal.
For the moment, this doesn't seem to break any language invariants, but that may happen if
a) the censored libraries start producing instances, whose classes would claim to have no library
b) types from the censored libraries are used in type annotations in the privileged libraries that can import them, resulting in types other than dynamic that claim to belong to no library

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37238 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-11 17:58:17 +00:00
rmacnak@google.com 7f84fb2b7f Implement an LRU cache in dart:_internal and use it for the getter/setter caches in the VM's mirrors.
BUG=http://dartbug.com/18445
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37059 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-06 00:45:01 +00:00
regis@google.com eef5589182 Add javascript compatibility warnings for integer values and integral double
values that are not identical, but equal.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37017 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-04 23:14:03 +00:00
regis@google.com 139187ae5f Add javascript compatibility warnings for strings that are not identical, but
equal. The vm does not canonicalize all strings as javascript does.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37013 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-04 20:47:54 +00:00
lrn@google.com 01897bf44d Revert "Ensure that failure to start an isolate all end up in the future."
Review URL: https://codereview.chromium.org//312123002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36986 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-04 09:40:29 +00:00
lrn@google.com c2aa45f121 Ensure that failure to start an isolate all end up in the future.
Isolate.spawnUri can fail in many ways.
Any problem that prevents calling "main" on a loaded isolate
should end up as IsolateSpawnException in the future returned by
Isolate.spawnUri.

This CL ensures that failure to look up main is handled correctly,
and adds more tests.

R=sgjesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36982 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-04 08:42:39 +00:00
fschneider@google.com fc7d8c61ba Make compile-time constants in _IntegerImplementation.compareTo const.
Review URL: https://codereview.chromium.org//298203002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36864 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-02 11:10:06 +00:00
srdjan@google.com ee8543f057 Intrinsify [] for ExternalUint8 and Uint8 typed data. Gives significant speedup when compiling Hello.dart in unoptimized code.
R=zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36833 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-30 19:49:35 +00:00
rmacnak@google.com 3b5ff25469 Lay waste to ClosureMirror.findInContext.
BUG=http://dartbug.com/18741
R=gbracha@google.com, iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36704 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-27 19:35:58 +00:00
lrn@google.com 8e82e840e0 Make methods on isolate external.
R=iposva@google.com, sgjesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36642 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-27 06:14:13 +00:00
lrn@google.com 989709f3a8 Reinstall previous behavior for Set and Queue toString.
A previous change made these omit elements to keep the toString length down.
That could break code that expects the original behavior.

This still avoids using IterableMixinWorkaround.

Add static toString methods on ListBase, SetBase, IterableBase so that users can
get the same behavior as our toString methods, and with the same cycle detection
safety.

Unify all collection toString methods in two methods:
- IterableBase.iterableToShortString
- IterableBase.iterableToFullString

R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36616 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-26 06:08:20 +00:00
lrn@google.com e8247e4b4a Add SetBase/SetMixin.
Depends on adding cloneEmpty method to Set class and toSet creating a clone.

R=sgjesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36478 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-22 09:48:24 +00:00
iposva@google.com b4b4889406 - Refined https://codereview.chromium.org/293963008/
Make compilation VM more fine grained

- Use the isolate where appropriate.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36451 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-21 21:04:03 +00:00
iposva@google.com 5a469c41b3 - Remove unnecessary is-check.
- Other formatting cleanup.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36192 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-14 22:21:48 +00:00
rmacnak@google.com 3939e3e7f5 Improve error messages in MirrorSystem.findLibrary.
BUG=http://dartbug.com/18532
R=gbracha@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36114 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-13 17:20:08 +00:00
rmacnak@google.com d1402873c3 Revert "Improve error messages in MirrorSystem.findLibrary."
Review URL: https://codereview.chromium.org//283593002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36056 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-12 19:41:11 +00:00
rmacnak@google.com 0c696f26ed Improve error messages in MirrorSystem.findLibrary.
BUG=http://dartbug.com/18532
R=gbracha@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36048 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-12 17:52:31 +00:00
regis@google.com dec11d8b7b Add support for javascript incompatibility warnings (work in progress).
For now, warnings are only issued when applicable for type tests, type casts,
and toString.
Fix newly reported lint errors.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36001 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-09 22:42:10 +00:00
johnmccutchan@google.com 6817f45324 Fix return value for makeCurrent
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35979 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-09 16:19:27 +00:00
srdjan@google.com ff45a972b5 Refactor and improve code for pow.
R=zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35946 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-08 22:18:04 +00:00
johnmccutchan@google.com 850074a704 Refactor 'dart:profiler' UserTag API
- Each isolate starts off with a 'Default' UserTag set.
- A null tag cannot be set.
- Calls to clearCurrentTag() should be replaced with a call to UserTag.defaultTag.makeCurrent().
- makeCurrent returns the previously current tag.

This allows for the following pattern to work:

callee() {
  var old = calleeTag.makeCurrent();
  ...
  old.makeCurrent();
}

caller() {
  var old = callerTag.makeCurrent();
  ...
  callee();
  assert(getCurrentTag() == callerTag);
  ...
  old.makeCurrent();
}

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35810 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-06 17:07:26 +00:00
rmacnak@google.com f0d289599c VM: Fix TypedefMirror.isPrivate and TypeVariableMirror.isPrivate.
BUG=http://dartbug.com/18271
R=asiva@google.com, gbracha@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35758 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-05 19:45:58 +00:00
lrn@google.com f449a85d1e Unify error messages for iterables and lists.
Add factory methods that generate the errors thrown for unmodifiable lists,
non-growable lists and iterations with the wrong number of elements.

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35733 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-05 09:26:56 +00:00
asiva@google.com f97858fb06 Move the double isNegative test back to double.cc as it seems to cause some compile issues when it is in object.h
R=zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35695 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-02 16:49:59 +00:00
asiva@google.com 6cd6e8b52a - implement IsNegative for class Double
- move IsZero under class Integer as it is not used in class Double

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35648 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-01 18:26:34 +00:00
iposva@google.com 16e405af4c - Fix for unsuccessful hoisting of CheckSmi in _HashMap.[]=
R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35511 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-28 23:43:19 +00:00
rmacnak@google.com f848586f7f Prevent unbounded growth of the getField/setField closure caches.
BUG=http://dartbug.com/16539
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35433 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-25 17:47:15 +00:00
jacobr@google.com 8fd3f6a789 Workaround stacktrace crasher bug in the VM.
Fix for bug setting breakpoint after app reload.

BUG=
R=hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35401 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-24 20:34:19 +00:00
lrn@google.com 2a93b93c1c Remove unmodifiable map wrappers that could instead use UnmodifiableMapView.
R=sgjesse@google.com

Committed: https://code.google.com/p/dart/source/detail?r=35244

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35361 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-24 08:51:41 +00:00
hausner@google.com 3f40651e3a Support evaluation of expressions in context of a stack frame
This change adds a debugger API function to evaluate an expression
in the context of a particular stack frame. The expression can
refer to local variables accessible in the frame, but it cannot
alter the variables.

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35340 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-23 22:56:23 +00:00
iposva@google.com fd8565b071 - Add a minimal implementation of Capability.
- Make RawReceivePort and SendPort VM internal objects.
- Rationalize the creation of ports and their handling within the VM.

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35325 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-23 19:44:03 +00:00
ajohnsen@google.com ee4ff079f5 Speed up DateTime members, by caching the results.
The result is stored in a list of ints. This turned out to be the most efficient way to store it, compared to packing in ints.

BUG=
R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35303 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-23 06:17:39 +00:00
rmacnak@google.com 7ba8ca5753 Reapply "Mark private functions in dart:* that are native or constructors as not visible (omitted from stack traces and ineligible for reflective enumeration or invocation)."
With fix for uninitialized is_dart_scheme_ when read from snapshot.

BUG=http://dartbug.com/15274
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35289 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-23 00:05:08 +00:00
kevmoo@google.com 696e05cfef VM mirrors: Use UnmodifiableMapView from dart:collection
R=rmacnak@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35274 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-22 18:39:51 +00:00
lrn@google.com 5f34d56f70 Avoid comparing smi to mint in smi.toString().
As it happens 10^10 has 11 digits, not 10.

R=ajohnsen@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35249 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-22 09:26:31 +00:00
lrn@google.com 0e24a1701c Revert "Remove unmodifiable map wrappers that could instead use UnmodifiableMapView."
Some tests fail.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35245 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-22 06:21:24 +00:00
lrn@google.com 04b55abe64 Remove unmodifiable map wrappers that could instead use UnmodifiableMapView.
R=sgjesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35244 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-22 05:53:33 +00:00