Commit Graph

15405 Commits

Author SHA1 Message Date
srdjan@google.com e2b463fb3c More shared code.
Review URL: https://chromiumcodereview.appspot.com//10500005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8254 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-04 16:08:19 +00:00
vegorov@google.com 7c54679534 Implement AllocateContextComp, ChainContext, CloneContext on ia32
R=fschneider@google.com
BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8253 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-04 15:54:56 +00:00
vegorov@google.com 411b4cfa96 Implement LoadVMField, StoreVMField, AllocateObjectWithBoundsCheck, InstantiateTypeArguments on ia32.
R=fschneider@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8251 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-04 15:31:13 +00:00
vegorov@google.com dc45a91a4e Avoid reading RawObject::class_ directly in the runtime.
Instead rely on tags_ and perform lookups through isolate's class table where appropriately.

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8244 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-04 10:29:00 +00:00
hausner@google.com c39f48340d Add string encoding to wire protocol
Also, add command to retrieve the source text of a given script.
Review URL: https://chromiumcodereview.appspot.com//10496006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8220 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-02 00:07:12 +00:00
srdjan@google.com 9353e807f2 Submit reviewed Florian's Cl: https://chromiumcodereview.appspot.com/10447143/
Review URL: https://chromiumcodereview.appspot.com//10466004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8212 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-01 18:51:00 +00:00
srdjan@google.com e409cd4ec6 Implement optimized unary ops for ia32 as well. Fix a crash in disassembler.
Review URL: https://chromiumcodereview.appspot.com//10453110

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8211 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-01 18:38:35 +00:00
srdjan@google.com 51e6952dc6 FlowGraphCompiler is not a visitor any longer. Start consolidating shared code between the x64 and ia32 compilers into a FlowGraphCompilerShared. Idea would to use the FlowGraphCompilerShared type from shared code, and FlowGraphCompiler from machine specific code.
Review URL: https://chromiumcodereview.appspot.com//10447133

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8207 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-01 18:09:40 +00:00
fschneider@google.com 5f8d4a1b6b Temporarily disable FlowGraphOptimizer on ia32 to make tests pass with --use_new_compiler on.
Once we ported all instructions produced by the FlowGraphOptimizer to ia32 we
can remove this code again.
Review URL: https://chromiumcodereview.appspot.com//10462004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8200 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-01 15:55:01 +00:00
regis@google.com 5784831399 Port CopyParameters() to new ia32 compiler.
Use same function order as in x64.
Review URL: https://chromiumcodereview.appspot.com//10451109

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8196 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-01 15:26:07 +00:00
vegorov@google.com b57c0890b7 Add DISALLOW_COPY_AND_ASSIGN to InstructionWithInputs.
TBR=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8190 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-01 11:09:27 +00:00
fschneider@google.com 4b49403042 Remove unused function GeneratePreEntryCode from ia32 code generator.
It is never invoked and can therefore be removed.
Review URL: https://chromiumcodereview.appspot.com//10449106

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8187 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-01 09:28:31 +00:00
asiva@google.com 6dddbda1c2 Refactor snapshot writing code in preparation for the change to remove recursive calls to WriteObject and ReadObject.
Review URL: https://chromiumcodereview.appspot.com//10446112

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8181 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-01 00:15:30 +00:00
asiva@google.com 2aa35548da Use memmove instead of a loop to read bytes.
Review URL: https://chromiumcodereview.appspot.com//10446104

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8180 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 23:50:32 +00:00
hausner@google.com f6c776dcbe Eliminate unary plus with hex literals
The spec says unary + is only allowed with integer and floating point literals, not with hex literals. Somebody noticed that the VM accepted
+0x10 as well.

Consequently, the Math.parseInt(str) library function should fail with
a BadNumberFormatException if it is called with a hex number that is preceded by a +.

Fixes issue 1540.

This change exposed that the dart2js core library implementation is
falsely accepting +0xNNN hex numbers. I filed issue 3333.
Review URL: https://chromiumcodereview.appspot.com//10456060

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8177 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 22:35:29 +00:00
asiva@google.com 6ce890f75a 1. Restructure some of the builtin library processing code.
Review URL: https://chromiumcodereview.appspot.com//10388242

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8175 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 21:09:17 +00:00
srdjan@google.com 755790f46f Adding unary op optimizations, missing assembly operations.
Review URL: https://chromiumcodereview.appspot.com//10440099

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8174 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 20:38:55 +00:00
hausner@google.com 0c66cef0d9 Bigger stepping granularity in debugging
- Single step now steps to a safe point on the next line.
- Step into no longer steps into library code.
- Each library has a flag that specifies whether one
  can step into its code.

Later I will add an API to set the per-library flag. Currently
it's set to true for the top-level library and to false for
all other libraries.
Review URL: https://chromiumcodereview.appspot.com//10442088

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8173 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 20:17:34 +00:00
srdjan@google.com b7e454aafe Real fix for breakage: if type in DECLARE_FLAG differs from DEFINE_FLAG, windows compiler is the only one who complains. Bravo!
Review URL: https://chromiumcodereview.appspot.com//10459053

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8171 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 18:09:11 +00:00
srdjan@google.com 3cfd446af9 Hopefully fix currently unexplainable windows failures.
Review URL: https://chromiumcodereview.appspot.com//10443111

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8169 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 17:50:30 +00:00
srdjan@google.com b4b68ef347 Move ReturnInstr to new scheme (x64 and ia32) and implement more code in new ia32 compiler.
Review URL: https://chromiumcodereview.appspot.com//10458050

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8166 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 17:24:23 +00:00
regis@google.com 395d3ba587 Insert closure calls in conditional expression of assert (issue 1584).
Review URL: https://chromiumcodereview.appspot.com//10446102

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8164 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 15:57:06 +00:00
vegorov@google.com fbc6c59a99 Move Throw and ReThrow to the location based code generation.
R=fschneider@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8163 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 15:52:39 +00:00
regis@google.com 31180a540e Check upper bounds of factory class type parameters when instantiating an
interface (issue 1380).
Review URL: https://chromiumcodereview.appspot.com//10441115

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8162 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 15:51:36 +00:00
vegorov@google.com 9125248ea2 In generated code for x64 don't load object's class directly from class_ field.
Instead look it up in class table by class index taken from object's tags.

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8159 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 15:35:14 +00:00
iposva@google.com bee192cbe4 - Rename class index to class id.
- Remove unused method.
Review URL: https://chromiumcodereview.appspot.com//10441111

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8148 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 12:41:37 +00:00
regis@google.com e0d223b30b Address review comments in commited cl (issue 10460002).
Review URL: https://chromiumcodereview.appspot.com//10448079

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8144 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 08:31:30 +00:00
vsm@google.com 129369184a Skip failing test on DRT
TBR=turnidge

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8139 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 05:08:40 +00:00
cshapiro@google.com 2a3cb499af Ignore the growth policy when fragmentation prevents allocation.
Review URL: https://chromiumcodereview.appspot.com//10458054

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8138 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 04:20:16 +00:00
cshapiro@google.com b43a525cdb Implement growth policy for old space using time and space signals.
Review URL: https://chromiumcodereview.appspot.com//10442073

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8136 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 02:49:56 +00:00
hausner@google.com a07ebcc268 Clarify error message when illegally accessing 'this'
Fix bug 3185
Review URL: https://chromiumcodereview.appspot.com//10447102

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8134 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-30 23:41:33 +00:00
srdjan@google.com 742a716dc7 Fix a bug in ia32 shift left , implemented more inlined binary operations in x64.
Review URL: https://chromiumcodereview.appspot.com//10440082

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8119 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-30 17:35:20 +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
srdjan@google.com d0686c5a52 Started new compiler for ia32. Getters and setters can be intrinsified within the new compiler.
Review URL: https://chromiumcodereview.appspot.com//10458027

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8116 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-30 16:57:19 +00:00
srdjan@google.com 60cb692878 Do pops instead of addq(RSP when possible).
Review URL: https://chromiumcodereview.appspot.com//10458033

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8110 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-30 16:05:10 +00:00
srdjan@google.com d8f4aa2fd0 Use temporary variable for StoreIndexed that returns a value.
Review URL: https://chromiumcodereview.appspot.com//10448059

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8109 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-30 15:55:46 +00:00
regis@google.com 820d955669 Move ExtractConstructorTypeArguments and CatchEntry to new location template.
Review URL: https://chromiumcodereview.appspot.com//10459023

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8107 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-30 15:13:54 +00:00
regis@google.com 841467f0c7 Move CreateArray and CreateClosure to new location template.
Review URL: https://chromiumcodereview.appspot.com//10460002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8104 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-30 13:47:24 +00:00
vegorov@google.com 858b6d53e1 In generated code for ia32 don't load object's class directly from class_ field.
Instead look it up in class table by class index taken from object's tags.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8101 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-30 12:25:49 +00:00
vegorov@google.com 992a296306 When generate snapshot use tags_ instead of class_ to store object ids.
This is step towards removal of class_ field.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8098 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-30 11:42:55 +00:00
ager@google.com 501a0dd907 Add test that passes invalid arguments to socket methods and fix
issues encountered.

The fuzzing is not as systematic as for some of the other
APIs. However, a lot of checking is going on in the Dart code so
forcing issues required a bit of work making objects act like lists
and integers.

Additionally, fix a memory leak in process implementation.

R=sgjesse@google.com
BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8088 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-30 08:17:25 +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
hausner@google.com eeaa660d52 Introduce library ids and info in the wire protocol
- Library hierarchy (imports, prefixes)
- Global (top-level) variables
- Removing breakpoints
Review URL: https://chromiumcodereview.appspot.com//10447045

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8075 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-29 19:51:51 +00:00
iposva@google.com e41c09b616 Address review comments:
- Remove unnecessary store to local variable.
Review URL: https://chromiumcodereview.appspot.com//10446062

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8073 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-29 18:03:21 +00:00
turnidge@google.com 30452c3c82 Fix Dart_New so that it works with List.
Specifically, when some interface "I" declares a default class "C",
that class "C" may either implement or not implement "I".  It turns
out that the name lookup is supposed to be different in these two
cases.  Before I only handled one of these cases correctly.

Also, it turns out I was passing bogus parameters to factory constructors.
I was supposed to pass type arguments, but instead I was passing the
wrong thing.  Fixed this.

This should fix issue 2971.
Review URL: https://chromiumcodereview.appspot.com//10441034

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8072 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-29 18:00:45 +00:00
fschneider@google.com c474c57ef8 Change three more instructions on x64 to use location-based codegen templates.
This is a straight-forward port of the existing templates. For the future we
may consider refactoring those instructions to be like normal calls with arguments
 pushed on the stack explictly in the IL.
Review URL: https://chromiumcodereview.appspot.com//10456012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8050 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-29 10:55:23 +00:00
sgjesse@google.com 2f1cd20085 Small HTTP server fixes
Make empty responses use content length instead of chunked.
Make the default error handler indicate no content for HTTP 1.1 as well as HTTP 1.0.
Remove unneeded null check.

R=ager@google.com

BUG=none
TEST=HTTP tests

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8044 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-29 09:31:32 +00:00
ajohnsen@google.com 7fa410694b Mark the vm_tests as a RunTime score.
BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8033 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-29 07:26:03 +00:00
srdjan@google.com f624ef7821 Moved InstantiateTypeArgumentsComp and InstanceOfComp.
Review URL: https://chromiumcodereview.appspot.com//10440053

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8010 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-25 18:54:12 +00:00