Commit Graph

2477 Commits

Author SHA1 Message Date
srdjan@google.com e01b80da2c Report error in APIs if type is malformed instead of crashing. Example:
Dart_FunctionReturnType: malformed type encountered: 'file:///sources/dartall/dart/pkg/intl/lib/intl.dart': Error: line 235 pos 10: cannot resolve class name 'dynamic' from 'Intl'
Review URL: https://codereview.chromium.org//11099049

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13500 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-10 20:54:49 +00:00
srdjan@google.com cd3a59cbdc Fix a crash in compiler.
Review URL: https://codereview.chromium.org//11087062

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13496 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-10 20:27:33 +00:00
srdjan@google.com 5158c55cce Trace intrinsified native calls for doubles.
Review URL: https://codereview.chromium.org//11087061

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13494 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-10 20:15:48 +00:00
zerny@google.com 22e619ff31 Recursive inlining.
Due to large performance regressions on dart2js the default depth is set to 1, i.e., we only inline the first level of calls by default. The depth can be changed with the inlining_depth_threshold flag.

R=kmillikin@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13471 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-10 13:18:40 +00:00
fschneider@google.com 483f813769 Slightly improved register constraints for mint add and sub.
Review URL: https://codereview.chromium.org//11099034

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13462 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-10 10:49:06 +00:00
zerny@google.com 5200dfb8b1 Remove slow assert from VM.
Replaced slow-asserts with verify-compiler and removed vm/assert.h

R=srdjan@google.com
BUG=5720

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13456 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-10 08:03:28 +00:00
srdjan@google.com 4ad647121f Fix build breakage, removed arguments twice instead of once.
Review URL: https://codereview.chromium.org//11092038

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13448 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-09 22:40:54 +00:00
srdjan@google.com c83fd716e4 Implement SmiToInt and DoubleToInt. All necessary tests are in tests/language/arithmetic_test.dart
Review URL: https://codereview.chromium.org//11098009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13443 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-09 21:43:10 +00:00
asiva@google.com 5737ead7e3 Add more options to the help message in verbose mode.
Review URL: https://codereview.chromium.org//11094027

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13437 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-09 20:12:32 +00:00
blois@google.com c9f164aed4 Improving path.relativeTo to add support for a broader set of absolute paths.
I had made a last minute change in my previous CL (changing from a string operation to using hasTrailingSeparator), but forgot to test it.

First change is the original, second has the fix.

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13435 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-09 19:58:10 +00:00
asiva@google.com 517ff06459 Instead of aborting with an assert, exit with an error when we get an OOM
while handling messages. This is a temporary solution until we have the
isolate error handling mechanism in place (for issue 1403).
Review URL: https://codereview.chromium.org//10915295

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13433 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-09 19:49:11 +00:00
srdjan@google.com 8e7aee9048 Address Florian's comments.
Review URL: https://codereview.chromium.org//11090027

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13427 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-09 18:46:25 +00:00
blois@google.com 5ec7bcc034 Revert "Improving relative path support."
This reverts commit 13422 which broke VM win & mac.

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13423 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-09 17:02:51 +00:00
blois@google.com 95aabfc319 Improving relative path support.
I'm looking to modify our HTML tests to use relative paths and it was mentioned that I should be using Path.relativeTo- this change fixes relativeTo to handle the cases that I need.

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13422 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-09 16:48:48 +00:00
sgjesse@google.com 66b7a2c9c9 Addressed drive by comments
DBC from ager@ on http://codereview.chromium.org/11066041/.

R=ager@google.com

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13415 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-09 14:07:42 +00:00
fschneider@google.com b38daebd36 Faster 64-bit left-shift for ia32.
This CL adds a fast left-shift that operates on unboxed mints.
(64-bit integers) to the ia32 optimizing compiler.
Review URL: https://codereview.chromium.org//11085004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13408 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-09 11:59:44 +00:00
iposva@google.com 78c30b0775 - Update status files for failing tests.
Review URL: https://codereview.chromium.org//11093013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13387 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-09 00:47:42 +00:00
iposva@google.com 5f2f50f960 Land http://codereview.chromium.org/11047027/ for Matthias:
Implement export clause in VM 

Implement export namespace support in VM compiler. 

Missing functionality: ensuring that a name is only re-exported once.
Review URL: https://codereview.chromium.org//11028084

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13384 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-09 00:14:42 +00:00
regis@google.com 06aa06f542 Include method name in NoSuchMethodError.toString().
Review URL: https://codereview.chromium.org//11092014

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13382 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-08 23:21:16 +00:00
regis@google.com 6c7a1f30fd Look up getter in super call (issue 3621).
Review URL: https://codereview.chromium.org//11088014

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13376 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-08 21:37:34 +00:00
fschneider@google.com 5f2bdb2f7d Fix bug with missing unboxed mint-to-double conversion.
In case of a mixed integer/double operation that has a mint
input, the corresponding conversion from unboxed mint to unboxed
double was missing.

This CL converts a unboxed mint to a double by first boxing,
and then unboxing. Currently, we deoptimize in case the result
does not fit into a smi because we can only optimize mixed
smi/double operations and not yet mint/double operations.

BUG=dart:5721
TEST=tests/language/mint_arithmetic.dart
Review URL: https://codereview.chromium.org//11017017

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13372 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-08 20:20:53 +00:00
ager@google.com 70216ab4cd Hide internal details of VM string implementation.
R=lrn@google.com,srdjan@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13352 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-08 13:00:33 +00:00
sgjesse@google.com 0a95ca17a6 Fix another issue with r13348
Add missing const.

TBR=ajohnsen@google.com

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13351 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-08 12:58:56 +00:00
sgjesse@google.com 2eb693a104 Fix error in in r13348
The name of a constructor cannot be the same as the name of a member
declared in the immediately enclosing class.

TBR=ajohnsen@google.com

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13350 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-08 12:46:13 +00:00
sgjesse@google.com aa7652cccf Add support for HTTP proxy in the HTTP client
An HttpClient instance now has the property findProxy. This
property can be set to a function which can return the proxy
configuration encoded in a string in the same format as is used
by browser PAC (proxy auto-config) scripts.

Currently only the first proxy in the list will be used. I will
address trying multiple proxies in a separate CL.

Also fixed a HTTP input stream bug revealed by the tests. If an
input stream from either a HttpRequest or HttpClientResponse
object is retreived after all data in the body has been received
the HTTP input stream would call the onClosed callback.

R=ajohnsen@google.com

BUG=dart:5468
TEST=tests/standalone/io/http_proxy_test.dart

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13348 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-08 12:19:14 +00:00
efortuna@google.com 2262eaa5ed Reapply r13292 WITH a fix to dartc test status for apply_test.dart
Review URL: https://codereview.chromium.org//11035069

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13335 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-05 23:42:27 +00:00
asiva@google.com ceed3e5beb - Add support to interrupt a running isolate with the following command:
<===  InterruptCmd = "{" RequestId "," command ":" interrupt "," params ":" "{" isolateId ":" Integer "}" "}"
===>  InterruptCmdResp = "{" RequestId "}"

- Send isolate events over to the debugger client in the following format:
===>  "{" event ":" isolate "," params ":" "{" reason ":" created "," id ":" Integer "}" "}"
===>  "{" event ":" isolate "," params ":" "{" reason ":" shutdown "," id ":" Integer "}" "}"
===>  "{" event ":" paused "," params ":" "{" reason ":" interrupted "," callFrames ":" StackTrace "}" "}"

- Added id ";" Integer, to params in all paused events messages

- create per isolate debugger message queues, instead of the global static one

- Add 'i' command in ddbg to exercise the interrupt feature

- Add support for handling isolave event messages in ddbg
Review URL: https://codereview.chromium.org//11028040

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13333 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-05 23:10:28 +00:00
efortuna@google.com 461f7fb95e Revert r13292. This is when the first failure showed up on dartc, but dartc
didn't actually turn red. Investigating why.
Review URL: https://codereview.chromium.org//11081002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13330 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-05 23:05:20 +00:00
regis@google.com 3a45259cc5 Implement new scope rules for type variables (issue 5230).
Fix tests.
Review URL: https://codereview.chromium.org//11030056

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13316 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-05 20:29:02 +00:00
tball@google.com 76d7c9b105 Renamed Zone->StackZone, BaseZone->Zone, in preparation for changing isolate->get_zone() to return what was called the BaseZone instead of its wrapper. The GetBaseZone() methods were not renamed, to help the next CL.
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13314 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-05 19:52:55 +00:00
fschneider@google.com 3efefbd582 Faster 64-bit right-shift for the ia32 compiler.
Review URL: https://codereview.chromium.org//11027060

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13295 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-05 14:42:00 +00:00
lrn@google.com 181dc5d3b4 Add apply method signature to Function class.
This does not include an implementation for any backend. The
current implementation throws a NotImplementedException when
called.

BUG=5419

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13292 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-05 12:57:51 +00:00
iposva@google.com c8df70b904 Fix bug 5575:
- Remove residue of typed arrays from dart:core.
Review URL: https://codereview.chromium.org//11031063

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13274 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-05 06:52:42 +00:00
srdjan@google.com f78f482326 Restore x64 performance by reinstering an accidentally deleted LoadClassId instruction.
Review URL: https://codereview.chromium.org//11033032

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13257 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 20:20:17 +00:00
hausner@google.com be9679261e Better error message for const loop variables
issue 5629

The new error message is:


'file:/n.dart': Error: line 4 pos 8: Loop variable cannot be 'const'
  for (const i in [1,2,3]) {
       ^
Review URL: https://codereview.chromium.org//11027036

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13255 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 19:42:25 +00:00
srdjan@google.com 717e3c0396 Support for mixed null/smi equality: do not deoptimize, emit same optimized code as if that was smi-equality only.
Moved assert for duplicate class checks into ICData.
Allow CheckClassInstr to check for Smi as well.
Review URL: https://codereview.chromium.org//11048032

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13254 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 19:35:23 +00:00
hausner@google.com ed960e0432 Add catchless catch clauses
The Dart grammar says the catch clause is optional, ie. the following is legal:

try {
  ...
} on String {
  ...
}

Added a test case
Review URL: https://codereview.chromium.org//11051031

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13240 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 16:10:45 +00:00
fschneider@google.com e868adb00c Renaming Unboxed* IL instructions to shorter names.
Since we don't have boxed mint and double operations anymore,
we can use shorter names.
Review URL: https://codereview.chromium.org//11027026

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13237 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 15:54:16 +00:00
sgjesse@google.com 34d3834394 Refactor HttpClient internals to use Uri class for passing connection information
This is in preparation for adding proxy server support.

R=ajohnsen@google.com

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13232 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 14:11:38 +00:00
kmillikin@google.com 9ca8085565 Do not override (lower) the VM's code heap size for benchmarks tests.
R=zerny@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13227 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 13:08:05 +00:00
zerny@google.com c0418b9d52 Don't inline functions above the deoptimization threshold.
Moved deoptimization counter increment code into the PcMarker instruction where it executes on each occurring function in the optimized frame.

R=kmillikin@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13223 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 12:24:25 +00:00
fschneider@google.com f60ebcc5fb Add fast 64-bit bitwise negation to the IA32 optimizing compiler.
Review URL: https://codereview.chromium.org//11043020

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13221 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 12:01:12 +00:00
kmillikin@google.com 932b29c74e Pack deopt ID into the return before and return after deopt instructions.
Pack it into a machine word-sized bit field along with the object table
index.  The commands do not implicitly use the object table index any more,
which allows removing deopt IDs from the object table and pooling function
entries.

R=srdjan@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13214 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 09:03:28 +00:00
fschneider@google.com cb719805d8 Add fast 64-bit integer ADD and SUB to the optimizing compiler.
They operate on unboxed 64-bit integers stored in xmm registers.

I also fixed an issue with some SSE 4 specific assembler
tests where we hit an assert with an empty assembler buffer
when running with --no-use-sse41.
Review URL: https://codereview.chromium.org//11016028

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13211 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 08:50:28 +00:00
regis@google.com 1b8e614d7d Change compile-time errors into dynamic errors in instance creation expression
(issue 3085).
Change compile-time errors into dynamic errors in static getter and setter
calls (issues 3088, 3094).
Fix a crash in flow graph builder for missing static getter (issue 4360).
Add support in VM for NoSuchMethodError.
Remove support in VM for StaticResolutionException.
Add, remove, update related language tests.
Triage related co19 tests.
Review URL: https://codereview.chromium.org//11049038

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13208 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 00:15:38 +00:00
asiva@google.com 6076250adb 1. Create a port when a debugger object is created for an isolate, use this
port as the unique ID to represent an isolate in the debugger message
   format.

2. Switch the Event handler API to use an isolate id instead of the isolate
   object itself.

3. Add a unit test case for isolate debugger event handling with an
   interrupt of isolate to ensure that interrupting the isolate runs
   the interrupt event handler.
Review URL: https://codereview.chromium.org//11052006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13207 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 00:13:37 +00:00
asiva@google.com 862687a987 First step towards support for being able to interrupt a running Dart Isolate
using the debugger API
- restructure the debug connection handler code to allow a native thread
  to accept debug connections and read debug commands
- added a new message queue data structure for being able to dispatch
  debug commands on a per isolate basis
- add framework for generic commands and isolate specific commands.
Review URL: https://codereview.chromium.org//10990089

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13186 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-03 17:13:43 +00:00
zerny@google.com 3ae0b96762 Set previous instruction pointers when building the graph.
R=kmillikin@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13174 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-03 15:05:27 +00:00
fschneider@google.com 7c13f0a7f4 Remove now unused BinaryMintOp from the IL.
It has been replaced with UnboxedMintBinaryOp.
Review URL: https://codereview.chromium.org//11031024

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13172 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-03 14:20:45 +00:00
kmillikin@google.com 8a6dd23f3c Run canonicalization again after constant propagation.
This eliminates smi checks of constant-valued instructions.  Also fix
printing of block numbers in code comments.

R=fschneider@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13170 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-03 11:09:19 +00:00