Commit Graph

5255 Commits

Author SHA1 Message Date
hausner@google.com 2f0d13af3b Fix yield statements in catch blocks
This is a partial fix for issue 22300. The VM no longer setfaults when
using yield in try statements. Yield in catch blocks work. What’s still
not working right is if a value is yielded before an exception is
propagated to the caller.

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43707 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-12 00:12:07 +00:00
asiva@google.com ea16b41a0b Fix race condition an isolate is being added to the isolate list before the name for the isolate is setup, the service isolate starts registering the isolate and accesses the name which is NULL.
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43706 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-11 23:39:43 +00:00
regis@google.com 163f1c2244 Improve _toInt64() and _toUint64() conversions in TypedData.
Add missing conversions of exponent and modulus in Bigint.modPow().
Fix typos in Bigint Classic reduction (modPow tests coming in later cl).
Address a few more TODOs.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43697 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-11 20:57:33 +00:00
fschneider@google.com f7a97fa4d4 VM: Fix slow-path deoptimization environment.
The number of pushed arguments needs to be accounted for.

BUG=dartbug.com/22331
R=vegorov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43681 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-11 13:34:15 +00:00
rmacnak@google.com 4de5f89b99 Rename IsConstructor to IsGenerativeConstructor.
This matches the terminology in the spec, and it avoids confusion with the function kind kConstructor, which indicates either a generative constructor or a factory constructor.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43673 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-11 00:59:19 +00:00
asiva@google.com 58c14696fb Fix a windows build issue
../../dart/runtime/vm/flags.cc:58:26: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal]
        OS::Print("%s: %"Pu64" (%s)\n", name_, *this->uint64_ptr_, comment_);

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43669 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-10 21:30:28 +00:00
hausner@google.com 8e7752f56b Fix bug in processing of latent breakpoints
Debugger hangs when encountering a url that has no match
in any of the loaded libraries.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43662 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-10 19:11:56 +00:00
koda@google.com c2da2d9830 Make ASAN/MSAN ignore Dart frames.
Frames initialized by generated code are unknown to ASAN/MSAN, so we must explicitly mark it as initialized.

For some (unknown) reason, this only caused failures on the build bot.

TBR=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43661 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-10 18:43:27 +00:00
regis@google.com d50fe1db24 Make instruction counter in simulators 64-bit (issue 22302).
This requires supporting uint64_t flag values.

R=zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43660 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-10 17:41:01 +00:00
johnmccutchan@google.com 20efd2f0c4 Add Log::VPrint and remove duplicated code.
BUG=
R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43624 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 23:28:47 +00:00
johnmccutchan@google.com 420aa94c56 Split profiler.cc into profiler.cc and profiler_service.cc
BUG=
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43623 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 23:22:19 +00:00
srdjan@google.com 81d8099650 Redesign inlining interval computation.
Review URL: https://codereview.chromium.org//904763003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43622 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 23:11:05 +00:00
johnmccutchan@google.com 23763129a5 Fix missing new lines in disassembly
BUG=
R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43621 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 22:58:16 +00:00
turnidge@google.com e1f31e1513 Add a working command line debugger to Observatory.
Try it!

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43618 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 22:03:31 +00:00
johnmccutchan@google.com 74469b2a9f Use printf("%s", str); to avoid glibc assertion
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43614 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 21:28:54 +00:00
johnmccutchan@google.com ddbefcab7e Fix disassembly comments
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43610 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 20:57:41 +00:00
johnmccutchan@google.com 635ba4bbd9 Port flow_graph*, disassembler to ISL_Print
BUG=
R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43609 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 20:49:32 +00:00
johnmccutchan@google.com fee26a9bbb Fix Linux build
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43605 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 19:06:55 +00:00
johnmccutchan@google.com a6483aefd1 Per isolate Log with block support
BUG=
R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43604 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 18:54:20 +00:00
vegorov@google.com e5f3e69eeb Add --print-flow-graph-filter to allow filtering debugging output.
Extend filtering pattern with % symbol: xyz% matches names that end at "...xyz".

R=fschneider@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43598 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 16:26:46 +00:00
fschneider@google.com 56853c6bc9 Undo unnecessary changes to ARM assembler.
R=zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43596 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 16:14:11 +00:00
fschneider@google.com df94b27666 VM: Align implementations of assembler constant pools.
Add Support for adding patchable/non-patchable entries on ARM/MIPS like
already done for x64/ARM64.

R=vegorov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43589 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 11:47:36 +00:00
regis@google.com 62a1d34c36 Clarify result returned by remainder intrinsics.
R=zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43576 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-06 22:42:53 +00:00
koda@google.com f3387ccc3f In this first version, we just track the set of objects and verify that calls to release match. The next step is to copy the data to a side buffer, which is then unmapped on release to catch use-after-release bugs.
Explicitly disallow nested acquires, since the visibility of writes would depend on whether data is acquired in-place.

Also explicitly disallow other access to the data (e.g., trough list accessors) for the same reason.

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43575 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-06 22:31:46 +00:00
koda@google.com 0edad1cc7c Fix Dartium DEBUG failures by ensuring proper scoping within GC prologue/epilogue.
This ensures that the zone-allocating parts of ScavengeVisitor and MarkingVisitor are destroyed before the Dartium GC epilogue deletes the zone in which they were allocating.

(This only explains DEBUG mode failures, caused by the zapping in the GrowableArray destructor, because the values of the arrays are not used after the epilogue runs.)

BUG=dart:22224
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43558 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-06 17:38:39 +00:00
koda@google.com 253de5e60a Fix race condition in Redirection global list using CAS.
Note that a simple Mutex cannot be used, since the profiler may interrupt the thread at any point, and also walks this list.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43557 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-06 15:50:08 +00:00
iposva@google.com 6898a10c93 - Make sure to fail early if an non-stacktrace is passed into the VM
where we expect one.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43546 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-06 09:23:57 +00:00
koda@google.com 96bed4dd79 Add missing call to VerifiedMemory::Accept when initializing Smi field.
BUG=dart:22224
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43533 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-06 00:02:29 +00:00
hausner@google.com 00366dcfa1 Fix Windows build
Review URL: https://codereview.chromium.org//903843002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43522 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-05 21:00:02 +00:00
hausner@google.com a28a13d936 Attempt to fix the Windows build
Review URL: https://codereview.chromium.org//901263002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43518 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-05 19:33:37 +00:00
terry@google.com 06f06cd029 Fixed Window's Debug warning, results in compilation failure.
Reviewers=asiva@google.com

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43517 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-05 19:30:16 +00:00
hausner@google.com 2487c76886 Add support for sync* and yield and yield*
R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43516 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-05 18:36:40 +00:00
turnidge@google.com d554f4fbfe Finish moving service protocol to json rpc.
Service

- Remove support for old-style service requests.

- Drop 'arguments' from JsonStream and ServiceRequestHandler.

- Json-rpc inspired renaming: command->method, options->params all over.

- Implement getFlagList, setFlag, getObjectByAddress.

- Add helpers PrintMissingParamError and PrintInvalidParamError
  to make our error messages more regular.

- Update tests.

- Service_SetSource removed for now.  John will resurrect.

Observatory

- Drop all Deprecated 'get' functions.  We now use json rpc for everything.

- Drop 'link' and 'relativeLink' from ServiceObject -- they were
  ui-specific and they are no longer meaningful anyways.  Use 'id' instead.

- New pages: VMPage, FlagsPage, InspectPage, ErrorPage.  All urls
  used by Observatory are now 'new school' and have a proper
  prefix.  ErrorPage is the new catch-all.

- Pages now use a Uri instead of a url String.  This lets them
  grab query parameters more easily.

- SimplePage replaces IsolateSuffixPage.

- We now use gotoLink() or makeLink() to make our navigation
  links.  gotoLink gets some optional parameters to make it
  easier to construct links to ServiceObjects.

- Rework mouse clicks on the heap map to use getObjectByAddress.

- Remove the breakpoint_list.  It wasn't working.  I'll add it back later.

- Silence logging of getIsolateMetric/getVMMetric.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43514 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-05 17:45:52 +00:00
fschneider@google.com 2727257bf8 VM: Fix source location in stack trace of async code.
This eliminates an invalid source position and allows async code
to work with the stack_traces package to a get full async stack chain.

Frames with an invalid location (file.dart:1:1) are now printed without
line/column information (file.dart)

BUG=dartbug.com/22009
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43497 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-05 10:26:27 +00:00
regis@google.com a5ee233d1b Make Bigint instances immutable by removing all setters.
This required rewriting a large portion of bigint.dart.

R=rmacnak@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43492 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-04 23:56:23 +00:00
johnmccutchan@google.com 1426cfc03b Port metrics to RPC
R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43486 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-04 21:27:49 +00:00
zra@google.com 1299ad1485 Allows turning on checked mode on a per-isolate basis
using the embedding API.

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43481 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-04 18:32:48 +00:00
zerny@google.com e449cd0329 Propagate the stack trace of the inner-most throw when using async/await.
This patch does not provide a full async stack trace, it only ensures
that the inner-most stack frame will be the point of the initial throw.

BUG=http://dartbug.com/22009
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43463 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-04 11:54:23 +00:00
johnmccutchan@google.com d9e951d5a3 Port _echo, etc commands to RPC
BUG=
R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43447 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-03 23:17:05 +00:00
turnidge@google.com 91afcbdfc9 Rename the get* methods in preparation for removing them.
Add proper caching to getObject, etc.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43431 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-03 21:47:39 +00:00
johnmccutchan@google.com 9d1bb3aa6b Port type arguments to new RPC protocol
R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43428 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-03 21:26:19 +00:00
turnidge@google.com 3fbbf4edc2 Support root-level json rpc requests in the vm service.
Add getVM and getIsolate rpcs.

Add support for Code objects to getObject.

Begin using getVM, getIsolate, and getObject in the Observatory.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43423 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-03 20:31:11 +00:00
johnmccutchan@google.com 57ea35671c Add getClassList RPC
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43414 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-03 17:59:45 +00:00
fschneider@google.com 75ad2d8253 VM: Improve polymorphic check-class in optimized code.
Sort comparisons by decreasing IC count like we do for polymorphic inlining.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43392 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-03 12:30:51 +00:00
johnmccutchan@google.com 4ebfc3a73f Make Dart_Invoke work for private static functions
Our API documentation states that Dart_Invoke will invoke private functions.

R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43375 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-03 00:37:08 +00:00
turnidge@google.com e65e6fab9d Begin migrating the vm service from a rest-style interface to a json-rpc style interface.
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43370 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-02 23:15:40 +00:00
johnmccutchan@google.com 19792aa4d5 Always use isolate creation callback passed to Dart_Initialize for service isolate startup
BUG=
R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43358 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-02 19:35:57 +00:00
johnmccutchan@google.com 36a1740aa5 Make service lifecycle checks thread safe
RunLoop tests were getting wedged trying to communicate with the vm-isolate that was shutdown before a test isolate started up. dartbug.com/22219

This CL:
* ensures that any 'is the service running' checks are done with a lock held.
* Normalizes trace messages printed from the vm-service.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43348 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-30 22:03:18 +00:00
fschneider@google.com d9be656941 VM: Share closure-call dispatchers.
Instead of caching these in each signature class,
cache them in the common super-class of all closures (_FunctionImpl)

This avoid unecessary polymorphism when invoking.

R=vegorov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43336 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-30 13:06:11 +00:00
johnmccutchan@google.com 172baa03ff Service isolate rework take 2
Review URL: https://codereview.chromium.org//889443002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43306 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-29 18:31:27 +00:00