Commit Graph

229 Commits

Author SHA1 Message Date
turnidge@google.com 2803d78dfd Change the zone allocation api.
Instead of passing a size in bytes to the allocation function, we now
have a templatized Alloc function:

  zone->Alloc<Type>(len)

This is better for security, as we can check for integer overflow in
the size computation before performing the allocation.  Before, we
often failed to check this.
Review URL: https://chromiumcodereview.appspot.com//10836061

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10254 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-03 21:51:44 +00:00
ager@google.com 4531c0c770 Remove old isolate API and update all code in the repository to use
the new API.

R=kasperl@google.com,sigmund@google.com,turnidge@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10210 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-03 07:24:29 +00:00
kasperl@google.com 9125b3451e Refactor the way we emit no such method handlers so it's easier to optimize it later.
Avoid adding duplicate JavaScript functions (may occur if we have
multiple different typed selectors in play or if the same library
shows up multiple times in the library map).

R=floitsch@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10162 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-02 13:18:17 +00:00
turnidge@google.com 0be1610389 Fix a problem that wasn't found on my mac builds... :-(.
Review URL: https://chromiumcodereview.appspot.com//10836059

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10134 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-01 18:43:23 +00:00
turnidge@google.com 8b68d343c7 Enforce length/size limits for variable size heap object in order to
avoid overflow.

For each variable size heap object, compute the maximum number of
elements and use that in the ::New functions to avoid overflow.  If a
bad length/size reaches a ::New function, that is a FATAL error -- the
problem should have been caught earlier by the dart api or by the
library code.

Add "border guards" in the dart api and in library calls which cause
new variable size heap objects to be allocated.  We check for invalid
length/size and throw explanatory error messages.
Review URL: https://chromiumcodereview.appspot.com//10782016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10130 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-01 18:22:30 +00:00
rmacnak@google.com 2035aa43b9 Renamed some variables in the mirror implementation from raw* to wrapped* to
avoid confusion with the VM's special meaning for raw.
Review URL: https://chromiumcodereview.appspot.com//10831102

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10099 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-31 23:51:06 +00:00
rmacnak@google.com 2353835d5b Added InterfaceMirror.newInstance().
Review URL: https://chromiumcodereview.appspot.com//10834056

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10020 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-30 17:48:47 +00:00
ajohnsen@google.com d0585730ec Rename MathNatives_2atan to MathNatives_atan2.
The comment doesn't appear to be valid anymore.

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10012 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-30 13:31:50 +00:00
rmacnak@google.com 99ad7f4170 Added ClosureMirror to dart:mirrors. Added Dart_ClosureFunction to the
embedding API. ClosureMirrors currently implement answering the closure's
function and applying the closure.
Review URL: https://chromiumcodereview.appspot.com//10800065

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9860 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-24 17:59:12 +00:00
ajohnsen@google.com 96b8387429 Always set inserted range in List.insertRange.
This fixes a bug where myList.insertRange(x, y, null) would fail to set
the new range to null.

BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9855 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-24 17:01:17 +00:00
asiva@google.com ec7f44f025 Create frequently used symbols in the vm isolate
- Avoids the need for doing a NewSymbol on these everytime
- saves space as they get shared by isolates
Review URL: https://chromiumcodereview.appspot.com//10783035

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9834 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-24 00:01:50 +00:00
rmacnak@google.com e0931044c0 Added getField/setField to ObjectMirror. For InstanceMirrors, this get/sets
fields; for InterfaceMirrors, static fields; for LibraryMirrors, top-level 
fields.
Review URL: https://chromiumcodereview.appspot.com//10704259

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9832 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-23 22:53:52 +00:00
floitsch@google.com 6b389aee00 Fix printing of dates with year 0.
Review URL: https://chromiumcodereview.appspot.com//10790099

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9799 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-23 08:35:27 +00:00
regis@google.com 318edd938c Hide names of internal classes from the user by mapping them to the documented
interfaces they implement.
Review URL: https://chromiumcodereview.appspot.com//10800002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9748 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-18 21:51:27 +00:00
cshapiro@google.com 9c0c15ea7c Improve the error messages for IndexOutOfRangeException.
Review URL: https://chromiumcodereview.appspot.com//10786045

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9729 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-18 00:33:23 +00:00
rmacnak@google.com 3d1c598ed5 Add a limited version of ParameterMirrors that can only tell whether they are
optional. Add Dart_FunctionParameterCounts. Drop passing isSimpleValue to
instance mirrors: they can compute this on the Dart-side.
Review URL: https://chromiumcodereview.appspot.com//10778005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9683 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-16 22:05:16 +00:00
regis@google.com b86a40f48f Fix type checking of void type.
Fix library and tests accordingly.
Add new test.
Disable new test for dart2js.
Disable some now failing co19 tests (new issue 158 filed).
Hide internal VM String types from user (not complete).
Review URL: https://chromiumcodereview.appspot.com//10787021

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9681 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-16 21:34:07 +00:00
regis@google.com dc96874999 Revert fix for type checking of void type, because some top level tests fail.
Review URL: https://chromiumcodereview.appspot.com//10784020

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9673 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-16 19:05:38 +00:00
regis@google.com a8ceb243f6 Fix type checking of void type.
Fix library and tests accordingly.
Add new test.
Disable new test for dart2js.
Disable some now failing co19 tests (new issue 158 filed).
Hide internal VM String types from user (not complete).
Review URL: https://chromiumcodereview.appspot.com//10704216

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9672 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-16 18:05:55 +00:00
rmacnak@google.com 79e17e7cb0 Replaced simpleValue with more general reflectee. hasSimpleValue is retained internally for the sake of safe printing: mirrors should not assume their reflectees toString will return quickly and without error.
Review URL: https://chromiumcodereview.appspot.com//10702186

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9637 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-13 16:56:13 +00:00
turnidge@google.com e48dd76856 Some small changes to make the vm dart:mirrors somewhat closer to the
source mirror implementation by Johnni.

- Add the MirrorSystem interface
- Add a simple TypeMirror
Review URL: https://chromiumcodereview.appspot.com//10700149

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9612 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-12 20:40:06 +00:00
srdjan@google.com e74f5a721b Implement more intrinisification for x64 (not as inlined code but as header of the target).
Review URL: https://chromiumcodereview.appspot.com//10701147

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9573 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-11 22:37:41 +00:00
ajohnsen@google.com acc78cebae Use native copy between internal/external bytearrays.
BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9510 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-10 13:58:30 +00:00
turnidge@google.com 22fb45f640 Implement method and variable reflection in dart:mirrors.
Review URL: https://chromiumcodereview.appspot.com//10687004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9493 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-09 23:57:08 +00:00
floitsch@google.com 4a4532d205 Fix int.compareTo.
In particular we want:
 0.compareTo(-0.0) => 1

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9459 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-09 07:57:29 +00:00
regis@google.com d95cbc8d7f Use VM type cast and save handles.
Review URL: https://chromiumcodereview.appspot.com//10693071

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9317 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-02 21:42:53 +00:00
regis@google.com 0532a90a2f Implement type cast in the VM.
Review URL: https://chromiumcodereview.appspot.com//10659005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9070 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 17:23:11 +00:00
cshapiro@google.com 00b6963338 Fix some warnings in the core library identified by the static analyzer.
This foray uncovered a latent bug in the byte array view constructor and
its use of default arguments.  That bug has been corrected and new tests
have been added to the test suite.

BUG=2136

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9013 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 04:27:57 +00:00
iposva@google.com 0fd25118b9 - Move the Timer interface to the dart:isolate library so that it
is accessible from both client and standalone program.
- Enable a way for the embedder to provide the implementation of
  the Timer interface.
- Update tests.
Review URL: https://chromiumcodereview.appspot.com//10532123

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8987 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-21 16:17:21 +00:00
floitsch@google.com a51dc25968 Make isUtc a getter, change some method names in Date. Weekday is now 1 based.
isUtc is now a getter.
Date.hours -> Date.hour
Date.minutes -> Date.minute
Date.seconds -> Date.second
Date.milliseconds -> Date.millisecond
Date.fromEpoch -> Date.fromMillisecondsSinceEpoch
Date.value -> Date.millisecondsSinceEpoch
Date.MON == 1 (up to Date.SUN == 7).

Fixes issue 3444, 1985.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8899 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-20 11:43:46 +00:00
hausner@google.com a7f542becb Remove obsolete String + code
Review URL: https://chromiumcodereview.appspot.com//10562038

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8810 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-18 18:00:25 +00:00
cshapiro@google.com fdb1c60bf1 Document the ByteArray types and reconcile with the implementation.
BUG=1499

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8738 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-15 20:16:58 +00:00
floitsch@google.com dd61a23829 Reapply "Refactor Date implementation in VM."
This reapplies fixed versions of commit 7542 and commit 8544.
Original review URLs:
https://chromiumcodereview.appspot.com//10533068
https://chromiumcodereview.appspot.com//10544109

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8655 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-14 13:05:22 +00:00
turnidge@google.com 312702a5ac Second local mirrors CL.
Implement a few chunks of new mirror functionality.  Many changes, notably:

- Added currentIsolateMirror() to provide non-async access to the
  local isolate mirror.

- Added mirrorOf(o) to provide access to local instance mirrors.

- Fleshed out InstanceMirror, InterfaceMirror, and LibraryMirror to
  various degrees.

- Added the MirroredError hierarchy, which lets the user handle Dart
  errors of various sorts from invocation, etc.

- Introduce lazy resolvers for interface mirrors and library mirrors.
  These allow us to build the self-referential library/interface
  hierarchy without going mad.

- Added better toStrings all around.

- Extended the isolate_mirror_local_test to cover new functionality.

Other changes that were required or seemed prudent:

- Exposed the error hierarchy to the embedder.  They need to be able
  to distinguish different error types in some situations.  Improved
  the documetation around error handles and error propagation.

- Added new functions to the dart embedding api as required.  Added
  tests for all new dart api functions.
Review URL: https://chromiumcodereview.appspot.com//10538043

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8575 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-12 21:07:49 +00:00
floitsch@google.com eb92af4080 Revert "Refactor Date implementation in VM."
Also revert "Round days-computation to get rid of daylight-savings differences."

This reverts commit 7542 and commit 8544.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8547 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-12 13:44:45 +00:00
floitsch@google.com 17de58fbaf Reapply "Refactor Date implementation in VM."
This reapplies a fixed version of commit 8533.
https://chromiumcodereview.appspot.com//10533068

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8542 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-12 12:04:36 +00:00
floitsch@google.com 02f39238ae Revert "Refactor Date implementation in VM."
This reverts commit 8533.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8535 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-12 10:33:36 +00:00
floitsch@google.com 0e297362a2 Refactor Date implementation in VM.
Less (and simpler) native functions. More precise semantics (for both the
native functions as well as for the Date class itself).

Fixes issue 3201.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8533 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-12 10:24:58 +00:00
floitsch@google.com cde1a8e09a new Date.now() should be in local timezone.
This error probably slipped in during the refactoring.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8483 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-11 08:35:31 +00:00
floitsch@google.com a1e41b060b Reapply "Remove deprecated classes and functions in Date."
This reapplies a fixed version of commit 8445.

Original CL: https://chromiumcodereview.appspot.com//10541050

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8455 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-08 17:32:18 +00:00
floitsch@google.com c046c899a0 Revert "Remove deprecated classes and functions in Date."
This reverts commit 8445.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8446 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-08 16:31:55 +00:00
floitsch@google.com 2c2ee2000f Remove deprecated classes and functions in Date.
Review URL: https://chromiumcodereview.appspot.com//10541050

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8445 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-08 16:01:00 +00:00
turnidge@google.com ede2df7949 Fix type-check failure...
Review URL: https://chromiumcodereview.appspot.com//10449072

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8118 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-30 17:28:28 +00:00
turnidge@google.com ec36e02c28 Remove the partially completed code for remote IsolateMirrors and
replace it with the beginnings of a local (same isolate) IsolateMirror
implementation.

Removed old mirror tests and added two new mirror tests.

Even though mirrors.cc is part of the vm, I chose to implement most of
it using the dart embedding interface instead of our internal
interfaces because the embedding interface was more convenient.
mirrors.cc is basically all new in this CL -- don't pay any attention
to diffs for that file.

Added dart embedding functions required for the functionality in this
CL: Dart_DebugName, Dart_GetNativeInstanceFieldCount,
Dart_RootLibrary, Dart_RegisteredLibraryUrls, and Dart_LibraryName.

Extended or modified some existing dart api functions, primarily to
make them propagate error handles properly.

Added tests for new dart embedding api functionality.

Added the ability to determine if a port is local to the current isolate.

Extended NotImplementedException to accept an optional string
argument.  I wanted to give more descriptive error messages.
Review URL: https://chromiumcodereview.appspot.com//10416050

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8117 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-30 17:07:19 +00:00
turnidge@google.com 830bf04de2 Finalize classes before calling the main for a new isolate.
This fixes bug 2235.
Review URL: https://chromiumcodereview.appspot.com//10444069

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8079 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-29 21:10:42 +00:00
turnidge@google.com 05b5d44b0e spawnUri. Take two. This time I'll wait for Anton before committing :-).
See original change 7756 for description.
Review URL: https://chromiumcodereview.appspot.com//10407042

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7917 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-23 18:32:51 +00:00
floitsch@google.com a88e304d29 Deprecate use of timezones.
Review URL: https://chromiumcodereview.appspot.com//10411057

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7911 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-23 16:07:35 +00:00
floitsch@google.com cc15d26cf7 Reapply "Add support for timezone offset and timezone name."
This reapplies commit 7800.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7805 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-21 16:11:20 +00:00
floitsch@google.com 77ade89e4a Revert "Add support for timezone offset and timezone name."
This reverts commit 7803.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7804 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-21 15:13:46 +00:00
floitsch@google.com 618c649c33 Reapply "Add support for timezone offset and timezone name."
This reapplies commit 7800.
Original CL: https://chromiumcodereview.appspot.com/10383218/

Don't write *foo += x.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7803 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-21 15:07:11 +00:00