Commit Graph

4526 Commits

Author SHA1 Message Date
rmacnak@google.com b68bc10c6c Create the local MirrorSystem with internal code.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25601 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-30 01:09:05 +00:00
rmacnak@google.com 47f7d23626 Ensure FunctionTypeMirrors have a proper reflectee and implement ClassMirror.superinterfaces with internal code. Remove some unnecessary fields and constructor arguments.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25599 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-30 00:29:52 +00:00
rmacnak@google.com 844a406c8a Implement reflect() with Dart code, InstanceMirror.type and ClosureMirror.function with internal code.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25594 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-29 23:57:31 +00:00
johnmccutchan@google.com 2e4754ecf5 Add Float32x4List.fromList to runtime implementation and some tests
R=zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25586 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-29 21:32:06 +00:00
johnmccutchan@google.com 10969ab342 Inline two argument shuffle operations on IA32 and X64.
R=vegorov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25580 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-29 18:57:35 +00:00
mlippautz@google.com 5f4e6e6000 Remove dead code from native mirrors library.
BUG=
R=rmacnak@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25576 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-29 17:49:04 +00:00
fschneider@google.com 3933db4a7b Simplify allocation stub for closures.
The compiler never generates code for allocating implicit static closures
using the allocation stub.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25573 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-29 16:56:39 +00:00
fschneider@google.com 6a8aa6f073 Reland r25551: Allow inlining of closures with a context change.
Review URL: https://codereview.chromium.org//21087002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25567 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-29 15:23:41 +00:00
fschneider@google.com 5da27dd763 Revert r25551 to help figure out mysterious build bot timeouts.
TBR=ricow@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25558 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-29 12:33:40 +00:00
fschneider@google.com 678dff7ea7 Allow inlining of closures with a context change.
This CL removes the remaining missing cases when inlining closure
calls.

In order to benefit for code using forEach, I added GrowableObjectArray.forEach
to the functions that should always be inlined.

I also renamed BuildLoadContext/BuildStoreContext helpers in the flow
graph builder to better match what they do.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25551 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-29 09:44:02 +00:00
zra@google.com dad3270d95 Implements far branch targets for MIPS.
This change adds a flag --mips-far-branches, which when set causes
relative branches to be converted to absolute branches by determining
the PC, adding the branch offset to it, and using the jr or jalr
instruction to jump if the branch test passes.

This procedure clobbers the assembler temporary TMP, so TMP can no
longer be used in a branch test or in the branch delay slot of a
relative branch. Because TMP can't be used in a branch test, a
new temporary is introduced CMPRES2. This change replaces TMP with
CMPRES1 or another register where TMP can no longer be used.

Tests that were failing due to a too-far relative have the
--mips-far-branches flag set.

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25543 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-26 23:30:32 +00:00
srdjan@google.com 14a3cb0cfd Make sure that ICData always contains valid data (non-null values).
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25535 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-26 20:17:04 +00:00
rmacnak@google.com bd07e14c9a Make ClassMirror.constructors an internal native and lazy.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25533 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-26 18:29:38 +00:00
regis@google.com b55b249409 Delay resolution of redirecting factory targets in order to avoid class
finalization cycles (issue 12041).
Ensure that a super class is finalized before the class extending it.

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25532 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-26 18:18:56 +00:00
rmacnak@google.com 6318625f35 Re-enable VM mirror toString tests. Fix some long lines.
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25530 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-26 18:09:33 +00:00
srdjan@google.com 3d6b2fc18e Allow equality operation on mixed double/smi arguments.
Fix a bug in relational operations in 64 bit mode: if ICData specifies double and Smi as possible arguments, we generate code for double and unbox or convert to double the inputs. These works only if smi can fit into the double. Current solution for 64-bit architecture is to disallow two smi-s as input to a polymorphic comparison instruction (equality, relational).

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25522 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-26 16:48:46 +00:00
whesse@google.com e550079125 dart:io | Fix handling of exceptions from onBadCertificate callback.
BUG=
R=sgjesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25519 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-26 13:39:18 +00:00
rmacnak@google.com b0cd678f0c Implement ClassMirror.superclass with internal code for ordinary (but not function type) classes. Resolves issue 5794 and issue 9434.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25508 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-25 22:45:07 +00:00
mlippautz@google.com 4415c965d1 BUG=
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25499 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-25 21:10:09 +00:00
rmacnak@google.com 670a0345ca Wrap lazy compilation errors when parsing metadata. Addresses the poor error reporting in issue 12027.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25498 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-25 20:49:59 +00:00
asiva@google.com dcb6850f87 Fix for issue 11680
- implicitly store a full stack trace in Error objects when they are thrown.
- the shlFromInt on Mints and Bigints was trying to allocate a new OutOfMemory
  exception objects instead of using the pre-allocated exception object.
  Made the implementation of these methods native so that they can use the
  pre-allocated object.
- Ensure that it is not possible to allocate new OutOfMemory or StackOverflow
  exception objects.

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25492 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-25 19:28:53 +00:00
johnmccutchan@google.com 53ddd08b84 Allow SIMD types to be used on mips
R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25481 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-25 17:31:19 +00:00
rmacnak@google.com 6ee2707fc6 Address some drive-by comments: equality without hash, types in the instantiation expression.
R=ahe@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25478 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-25 16:37:05 +00:00
srdjan@google.com b38b19ddf5 Optimize division for two Smi-s as well. Gives ~ 15% speedup on NavierStokes.
R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25473 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-25 15:42:26 +00:00
whesse@google.com 8dfb2c71c3 Improve certificate tests that hit google.com.
BUG=
R=sgjesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25463 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-25 09:37:38 +00:00
rmacnak@google.com 4a98a91696 Change the return value of setField to be in line with non-reflective assignments. Complete unwrapping of exceptions for the InstanceMirror invokes. Resolves issue 11219 and issue 11943.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25457 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-25 00:18:42 +00:00
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
mlippautz@google.com db8354cd4b Inline CreateParameterMirrorList() functionality.
BUG=
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25450 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-24 23:35:15 +00:00
srdjan@google.com 21bc801e6a Allocate comments in old space.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25449 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-24 23:20:26 +00:00
rmacnak@google.com 6fcabcdc38 Add a VM benchmark for creating the local MirrorSystem.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25447 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-24 22:06:04 +00:00
srdjan@google.com eb926ff5df Fix a crash in Meteor, debug mode. BitAnd instruction cannot deoptimize, therefore does not allow accessing its deopt_id.
R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25445 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-24 21:56:18 +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
ajohnsen@google.com 4b4f0307ba Add echo and line modes to Stdin.
BUG=https://code.google.com/p/dart/issues/detail?id=8190,https://code.google.com/p/dart/issues/detail?id=9825,https://code.google.com/p/dart/issues/detail?id=11659
R=sgjesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25413 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-24 13:51:55 +00:00
rmacnak@google.com 1a0b3c7871 Make reflective invocations raise NoSuchMethodErrors in the cases where non-reflective invocations do so. Resolves issues 11187 and 11957.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25387 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-24 00:29:17 +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
regis@google.com 7b9a84dfbb Implement more restrictive checking of typedefs illegally referring to
themselves and fix vm issue 9611.
Update a test and add a test.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25382 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 23:17:42 +00:00
srdjan@google.com 5651a2cf78 Optimize double min/max by reducing the code size (reusing left register as result removes the need to copy left into result). Add code for two Smi arguments.
R=regis@google.com, zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25367 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 20:40:31 +00:00
zra@google.com 22c342637c Implements Float32x4 and Uint32x4 instructions for ARM.
R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25358 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 20:02:12 +00:00
asiva@google.com eb88e500d2 Add a new Dart API call Dart_GetNativeFieldOfArgument
which combines Dart_GetNativeArgument and Dart_GetNativeInstanceField

Dartium always gets the receiver by first getting the NativeArgument
corresponding to 0 using Dart_GetNativeArgument and then invokes
Dart_GetNativeInstanceField on the returned handle to get the native
field corresponding to the native DOM element.

When Dartium is changed to use this combined API call the numbers for a
sample Dromaeo-drt benchmark is as follows:

Dromaeo-drt getAttribute runs-per-second 653.0
Dromaeo-drt element_property_access runs-per-second 579.0
Dromaeo-drt setAttribute runs-per-second 396.0
Dromaeo-drt element_property_assignment runs-per-second 539.0

When the old API calls are used:
Dromaeo-drt getAttribute runs-per-second 596.0
Dromaeo-drt element_property_access runs-per-second 528.0
Dromaeo-drt setAttribute runs-per-second 385.0
Dromaeo-drt element_property_assignment runs-per-second 513.49

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25354 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 18:57:05 +00:00
srdjan@google.com 849e8b0385 Make sure that all objects store in the Code object live in old space.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25353 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 18:38:03 +00:00
zra@google.com af23dfc5b2 Increases the number of ARM floating-point registers.
This is to be consistent with VFPv3_D32. Later, we'll detect
VFPv3_D16 at runtime.

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25352 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 18:25:44 +00:00
floitsch@google.com 279849d941 Fix sublist check, add missing methods and add tests for typed data lists.
Somehow these lists were still missing functions (in the VM) and the sublist check was broken (in dart2js).

R=ngeoffray@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25333 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 09:20:05 +00:00
ajohnsen@google.com 2d43c9b0b8 Report correct socket error and use HttpServer:close future in pub.
BUG=
R=sgjesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25332 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 08:59:23 +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
regis@google.com 9581071936 Refactor resolution code in the vm to properly handle ambiguity errors.
Add test.

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25324 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 00:19:39 +00:00
rmacnak@google.com 6c2d006377 Fix a regression in ObjectMirror.setFieldAsync (issue 11898).
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25323 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 00:02:28 +00:00
zra@google.com dd9adc1a86 Adds more SIMD instructions for ARM.
Adds the vnegqs, vabsqs, and vandq instructions.

Also reverts the increase in the number of floating point registers since it is causing crashes on hardware.

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25320 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-22 23:26:12 +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 b58e38269b This change introduces nothing new. It only fixes the native entrypoints to use the right macros.
BUG=
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25315 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-22 22:49:08 +00:00
srdjan@google.com aba435de6a FIx a typo in SIMMIPS min/max and enable min_max_test for SIMMIPS by splitting the main functions into two parts.
R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25314 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-22 22:43:51 +00:00