Introduce typed selectors for getters and setters also for better tree shaking.
FYI: Swarm from 862465 to 848387 (14k saved).
Review URL: https://chromiumcodereview.appspot.com//10191016

git-svn-id: http://dart.googlecode.com/svn/branches/bleeding_edge@6997 260f80e4-7a28-3924-810f-c04153c831b5
Initial web socket server implementation

This implements the web socket protocol as a request handler for
the HTTP server. The HTTP server have been updated with the
ability of getting the socket when a HTTP upgrade request is
processed. This way the web socket implementation is not builtin
to the HTTP server.

The API on the server is:

interface WebSocketConnection {
  void set onMessage(void callback(Object message));
  void set onClosed(void callback(int status, String reason));
  void set onError(void callback(e));

  send(Object message);
  close([int status, String reason]);
}

This API currently does not have any streaming but collects the
entire message before invoking the onMessage callback. The
current browser web socket API
(http://dev.w3.org/html5/websockets/) works the same way. The
underlying web socket protocol can have unbounded messages so
long term this probably have to change. But for now the only
likely client for a web socket server is a browser.

Currently this is missing tests. The implementation has been
tested by running the WebSocketTest.dart script and connecting
using a browser. This testing have been done using Chrome 19 and
Firefox 11.

I will be adding tests in separate change lists.

The SHA-1 and base 64 code (initially written by
ajohnsen@google.com) can be removed when these algorithms is
available in the dart:crypto.

R=ager@google.com, ajohnsen@google.com, vsm@google.com, jacobr@google.com

BUG=dart:2001
TEST=none

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

git-svn-id: http://dart.googlecode.com/svn/branches/bleeding_edge@6998 260f80e4-7a28-3924-810f-c04153c831b5
Better constant fold identity checks. (100 bytes saved on swarm, yeah! :))
Review URL: https://chromiumcodereview.appspot.com//10174040

git-svn-id: http://dart.googlecode.com/svn/branches/bleeding_edge@6999 260f80e4-7a28-3924-810f-c04153c831b5
Avoid "=== true" inside code by calling a function that does this for us.

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

git-svn-id: http://dart.googlecode.com/svn/branches/bleeding_edge@7000 260f80e4-7a28-3924-810f-c04153c831b5
Update test expectations

Disable new dart:io tests where they don't run.

TBR=ager@google.com

BUG=
TEST=

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

git-svn-id: http://dart.googlecode.com/svn/branches/bleeding_edge@7001 260f80e4-7a28-3924-810f-c04153c831b5
Copy frog/scripts/buildbot_annotated_steps.py to utils/compiler/buildbot.py.
Review URL: https://chromiumcodereview.appspot.com//10222021

git-svn-id: http://dart.googlecode.com/svn/branches/bleeding_edge@7002 260f80e4-7a28-3924-810f-c04153c831b5
Fix warnings in file.
Review URL: https://chromiumcodereview.appspot.com//10236004

git-svn-id: http://dart.googlecode.com/svn/branches/bleeding_edge@7003 260f80e4-7a28-3924-810f-c04153c831b5
Revert "Avoid "=== true" inside code by calling a function that does this for us."

This reverts commit 7000.

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

git-svn-id: http://dart.googlecode.com/svn/branches/bleeding_edge@7004 260f80e4-7a28-3924-810f-c04153c831b5
Fix mistake in status file

TBR=ager@google.com

BUG=
TEST=

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

git-svn-id: http://dart.googlecode.com/svn/branches/bleeding_edge@7005 260f80e4-7a28-3924-810f-c04153c831b5
Chrome roll 133876->134075.

git-svn-id: http://dart.googlecode.com/svn/branches/bleeding_edge@7006 260f80e4-7a28-3924-810f-c04153c831b5
Fix summary report count of tests run by test.dart when tests are run on a browser.

BUG=dart:2726
TEST=test.py with browser != none, suite == frog.

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

git-svn-id: http://dart.googlecode.com/svn/branches/bleeding_edge@7007 260f80e4-7a28-3924-810f-c04153c831b5
Add web socket protocol processor test

Unit test of the web socket protocol processor. This test includes
testing splitting a message into several frames.

Fixed the bugs found by adding a test.

R=ager@google.com, ajohnsen@google.com

BUG=dart:2001
TEST=tests/standalone/src/io/WebSocketProtocolProcessorTest.dart

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

git-svn-id: http://dart.googlecode.com/svn/branches/bleeding_edge@7008 260f80e4-7a28-3924-810f-c04153c831b5
Increase test coverage for sha1 and sha256 by using standard test
vectors.

R=sgjesse@google.com
BUG=
TEST=

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

git-svn-id: http://dart.googlecode.com/svn/branches/bleeding_edge@7009 260f80e4-7a28-3924-810f-c04153c831b5
Check the state of the HTTP request and response when handling headers

The HTTP headers object in request and response objects is now marked
as non-mutable when it cannot be changed. An exception will be thrown
if trying to mutate headers when they are not mutable.

Postponed the sending of the headers until either the first byte of
body data is sent or the empty body is indicated. This is to allow
getting the output stream object and still be able to set headers
until the actual body is touched.

Added checking of the number of bytes of body data transmitted when an
explicit content length is specified.

R=ajohnsen@google.com

BUG=none
TEST=tests/standalone/src/io/HttpHeadersState.dart,tests/standalone/src/io/HttpContentLengthTest.dart

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

git-svn-id: http://dart.googlecode.com/svn/branches/bleeding_edge@7010 260f80e4-7a28-3924-810f-c04153c831b5
Make non-expression-condition loops be handled by visitLoopInfo too.

This disables the "traditional" dominator based code generation of loops
(except for do-while loops which aren't implemented yet).

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

git-svn-id: http://dart.googlecode.com/svn/branches/bleeding_edge@7011 260f80e4-7a28-3924-810f-c04153c831b5
Disable pub/pub_test on the vm, it is failing when running from the top level directory.

Bug here:
dartbug.com/2740
Review URL: https://chromiumcodereview.appspot.com//10222022

git-svn-id: http://dart.googlecode.com/svn/branches/bleeding_edge@7012 260f80e4-7a28-3924-810f-c04153c831b5
Reapply "Avoid "=== true" inside code by calling a function that does this for us."

This reapplies a fixed version of commit 7000.
Original CL: https://chromiumcodereview.appspot.com//10140027

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

git-svn-id: http://dart.googlecode.com/svn/branches/bleeding_edge@7013 260f80e4-7a28-3924-810f-c04153c831b5
Add 'lib' test suite to default tests.

R=ricow@google.com
BUG=
TEST=

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

git-svn-id: http://dart.googlecode.com/svn/branches/bleeding_edge@7014 260f80e4-7a28-3924-810f-c04153c831b5
Update expectations for a test that fails in checked mode on the VM.

There is already a bug on file.

R=ajohnsen@google.com
BUG=
TEST=

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

git-svn-id: http://dart.googlecode.com/svn/branches/bleeding_edge@7015 260f80e4-7a28-3924-810f-c04153c831b5
Address review comments from CL 10151014.

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

git-svn-id: http://dart.googlecode.com/svn/branches/bleeding_edge@7016 260f80e4-7a28-3924-810f-c04153c831b5