Commit Graph

419 Commits

Author SHA1 Message Date
rmacnak@google.com 8ebdd7f9d8 Make LibraryMirror.members an internal native and lazy.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25451 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-24 23:51:15 +00:00
johnmccutchan@google.com cebd147b39 Add two argument shuffle operations to Float32x4
R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25443 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-24 21:29:45 +00:00
rmacnak@google.com c745da73af Make ClassMirror.members internal-native and lazy.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25384 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 23:54:16 +00:00
mlippautz@google.com 9d367d788d Local change to make the type getter lazy.
This change adds the last piece missing to inline functionality of CreateMethodMirror and its parameters. (Separate CL.)

BUG=
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25325 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 00:39:28 +00:00
rmacnak@google.com 9c4fef756b Implement VariableMirror creation with non-API code. To break circular initialization, have them find their type lazily.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25317 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-22 23:05:54 +00:00
mlippautz@google.com b3cb27a829 Since returnType is represented by a mirror, we make it lazy. We do not use a lazy mirror anymore, but instead create a type mirror upon first access.
CreateTypeMirror is already factored out of MethodMirror_return_type since it is needed by others mirrors (future CLs). Also introduces CreateMirror() which will be used in future CLs.

BUG=
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25252 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-19 23:17:47 +00:00
johnmccutchan@google.com 522a7ef504 Add all 256 shuffle methods to Float32x4
R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25227 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-19 17:03:09 +00:00
rmacnak@google.com 448dbb1017 Make the ClassMirrors created through reflectClass() find their owners (libraries) lazily.
Remove an unused parameter that was threaded through a number of mirror creation functions.

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25193 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-19 00:44:36 +00:00
mlippautz@google.com 61bae883ed If we have the owner mirror at creation time (which right now is a lazy mirror), we will use it. Eventually lazy mirrors will go away and we will not have to resolve() in dart code anymore.
If we don't have it, for example for a nested closure, we set it null and construct it lazily at access time.

Example:

outer() {
  inner() {}
  var closureMirror = reflect(inner);
  print(closureMirror.function.owner);  // Should be a MethodMirror on outer, that is constructed lazily.
}

Since we need to be able to construct the chain of owners (back up to library), we need to handle all cases in the lazy creation.

The CL also adds wrappers that can be called with native objects. At some point these wrapper will create the mirrors without referring to the ones using embedded API.

BUG=
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25186 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-18 22:04:57 +00:00
rmacnak@google.com 31145d5478 Implement metadata as an internal native. Be honest about which mirrors don't yet support metadata introspection.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25126 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-17 21:50:54 +00:00
rmacnak@google.com 39bf0aca44 Implement the invoke methods (invoke, getField, setField, newInstance, apply) as internal natives.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25024 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-15 21:14:43 +00:00
mlippautz@google.com 3b5ba678cd Add a MirrorReference reflectee to MethodMirrors. Name getter now refers to
internal function object, providing a name for for all cases and not only for
the ones a name has been provided in the constructor.

Fixes http://dartbug.com/6335

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24872 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-10 01:08:19 +00:00
rmacnak@google.com bba532bc7d Add a MirrorReference reflectee for ClassMirrors. Rewrite the name accessor in terms of it, at least for the non-special cases.
(This is a continuation of 18562005.)

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24826 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-08 22:05:15 +00:00
iposva@google.com 56b0fc10a7 Reland r24563 and r24564 with fixes cumbersome API leading to leaks.
- Add a WeakTable to the VM. This is used to remember the
  native peers registered through the Dart C API as well
  as assigning identity hashcodes to objects when needed.
- Use the hashcode to lookup entries in the Expando.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24822 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-08 21:41:05 +00:00
iposva@google.com fb06bcdff3 - Revert r24564 and r24563 due to unexplained malloc corruption.
Review URL: https://codereview.chromium.org//18051007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24565 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-28 00:27:25 +00:00
iposva@google.com 9c9989d2f6 - Add a WeakTable to the VM. This is used to remember the
native peers registered through the Dart C API as well
  as assigning identity hashcodes to objects when needed.
- Use the hashcode to lookup entries in the Expando.

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24563 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-28 00:01:47 +00:00
gbracha@google.com c78462c2ad Changes to mirrors in support of metadata access at runtime.
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24050 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-14 21:12:58 +00:00
srdjan@google.com 7797d39362 Added Object._cid getter, optimized it. Added to (some) classes a static final _clCid. Use those to test for exact type in VM's libraries.
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22695 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-14 18:16:44 +00:00
srdjan@google.com ab188d327c Improve performance of String.fromCharCodes by implementing it in Dart. Add tow internal natives to Dart in order to be able to allocate and fill a String. Next step is to implement String.concatAll in Dart as well and to inline String._setAt operation (currently intrinsified).
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22399 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-03 23:48:10 +00:00
johnmccutchan@google.com df712e164e Inline Float32x4 constructors
Review URL: https://codereview.chromium.org//13936009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22055 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-25 22:03:05 +00:00
asiva@google.com 6955ed0244 Add endian parameter to the get/set functions in ByteData.
Review URL: https://codereview.chromium.org//14332002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21688 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-18 18:19:43 +00:00
iposva@google.com 5b369cc1c4 - Implement reflectClass.
Review URL: https://codereview.chromium.org//14118011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21610 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-17 10:11:21 +00:00
iposva@google.com 54d56ca5d8 - Add synchronous mirror API. Resurrects invoke, apply, newInstance,
getField and setField as synchronous calls that accept isolate-local
  object as arguments.

Originally reviewed as https://codereview.chromium.org/14044007/

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21591 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-16 23:19:30 +00:00
srdjan@google.com 60e57ecfe1 Optimizes 'as' operation in similar way as 'instanceof': collect type feedback in unoptimized mode and try to convert it to a simple classcheck in optimized code.
Review URL: https://codereview.chromium.org//13190014

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20783 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-02 15:30:14 +00:00
asiva@google.com 2f7ca6843f Remove support for 'dart:scalarlist' in the Dart VM.
Review URL: https://codereview.chromium.org//13139002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20680 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-29 18:33:54 +00:00
johnmccutchan@google.com d516a7acde Review changes
Review URL: https://codereview.chromium.org//12982010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20559 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-27 14:44:15 +00:00
johnmccutchan@google.com e07063f389 Revert 12534006
Review URL: https://codereview.chromium.org//13093005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20526 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-26 17:40:25 +00:00
johnmccutchan@google.com 7b1d3b9134 Port SIMD types from dart:scalarlist to dart:typeddata.
Review URL: https://codereview.chromium.org//12534006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20522 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-26 16:50:26 +00:00
asiva@google.com 453e8fe924 Add the native intrinsic TypedData_setRange to optimize the setRange call when the destination and source of setRange are of the same typeddata type.
Review URL: https://codereview.chromium.org//12881006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20078 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-15 13:33:11 +00:00
lrn@google.com a5a93492d9 Change VM's string-buffer patch to use a Uin16Array as backing buffer.
Review URL: https://codereview.chromium.org//12421002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19679 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-08 10:21:52 +00:00
asiva@google.com 3f14a14ee7 Implement 'dart:typeddata' directly in the VM instead of using 'dart:scalarlist'
Review URL: https://codereview.chromium.org//12544015

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19656 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-07 21:50:33 +00:00
asiva@google.com 3c90369ba6 Add functionality to get full stack trace when exceptions are thrown.
This should address the issue raised in 7813.

try {
 ...
 ...
} on Object catch(e, s) {
 print(s.fullStackTrace);  // This should print the full stack trace.
}
Review URL: https://codereview.chromium.org//12316116

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19179 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-27 22:47:06 +00:00
johnmccutchan@google.com 2e216391f3 Simd128Float32, Simd128Mask, and Simd128Float32List additions for dart:scalarlist
Review URL: https://codereview.chromium.org//12303013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19001 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-25 21:12:50 +00:00
lrn@google.com 3c0ac360e7 Remove deprecated string features.
Make String.codeUnits return a List.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18960 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-25 10:48:09 +00:00
iposva@google.com c900112af7 - Improve the message for NoSuchMethodErrors that are
determined statically at compile time.
Review URL: https://codereview.chromium.org//12328019

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18848 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-21 18:53:27 +00:00
srdjan@google.com 5a2c48a103 Rename xxxArray_newTransferable natives to xxxList_newTransferable.
Review URL: https://codereview.chromium.org//12039047

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17497 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-23 21:25:39 +00:00
srdjan@google.com 843e48f6f0 Add Dart class for _ExternalUint8ClampedArray and API to allocate it.
Review URL: https://codereview.chromium.org//11881031

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17040 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-15 01:14:17 +00:00
floitsch@google.com 4a7dfd2da3 Big merge from experimental to bleeding edge.
Review URL: https://codereview.chromium.org//11783009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16687 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-07 11:23:16 +00:00
srdjan@google.com 29e06db609 In unoptimized code use call for instanceof instead of inlined checks. This allows us to collect type feedback and to reduce the code size of unoptimized code. Next will be work on type tests as well.
Review URL: https://codereview.chromium.org//11694003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16589 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-02 22:22:39 +00:00
regis@google.com cb27634842 Remove NoSuchMethodErrorImplementation class and use NoSuchMethodError from core
lib instead.
Review URL: https://codereview.chromium.org//11712002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16583 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-02 18:52:28 +00:00
meh@google.com 2c7dfbf982 Implement a native identical function in the VM.
Returns true if objects are the same instance.
Adds an identical closure test (disabled for dart2js pending https://chromiumcodereview.appspot.com/11612022/).

BUG=7378

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16461 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-22 00:12:35 +00:00
meh@google.com 2e1ecb18fe Revert "Implement a native identical function in the VM."
This reverts commit 88a0845aedeed15106dcfc8c658ebed37e7e85dd.

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16460 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 23:58:48 +00:00
meh@google.com 225d9a724b Implement a native identical function in the VM.
Returns true if objects are the same instance.

BUG=7378

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16456 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 22:42:21 +00:00
meh@google.com 51dc889ad7 Revert "Implement a native identical function in the VM."
This reverts commit 93e88749af841a1b381db6351a7196d35edd554e.

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16454 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 21:22:43 +00:00
meh@google.com 5e068fec8f Implement a native identical function in the VM.
Returns true if objects are the same instance.

BUG=7378

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16453 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 20:34:42 +00:00
meh@google.com a1bb3a9e51 Revert "Implement a native identical function in the VM."
This reverts commit c876c29bf4caa810bfc03c8b8908588168d634fe.

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16451 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 20:08:59 +00:00
meh@google.com 55596818ac Implement a native identical function in the VM.
Returns true if objects are the same instance.

BUG=7378

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

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16450 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 19:07:55 +00:00
meh@google.com 38aa3e1dee Revert "Implement a native identical function in the VM."
This reverts commit 0f29c63d64de37beb5f1b927a492687fde6de58a.

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16414 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 01:50:27 +00:00
meh@google.com 585e671819 Implement a native identical function in the VM.
Returns true if objects are the same instance.

BUG=7378

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16412 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 01:14:32 +00:00
meh@google.com 5d390fdf6c Revert "Implement a native identical function in the VM."
This reverts commit b6265dc1f0711711bcd26413826155f338c49c6d.

Merge remote-tracking branch 'git-svn' into revert-identical

Revert "Implement a native identical function in the VM."

This reverts commit b6265dc1f0711711bcd26413826155f338c49c6d.

Merge remote-tracking branch 'git-svn' into identical

Merge remote-tracking branch 'git-svn' into identical

stage for submission

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16402 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-20 21:49:54 +00:00