Fix Object::Clone.

Exclude header when copying: default value for its tags will be that of a fresh object.
Correct logic for adding the clone to the store buffer.

BUG=21273

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@41055 260f80e4-7a28-3924-810f-c04153c831b5
dart2js: Fast fix for deferred globals.

The fix is not perfect: it uses "arguments[1]" to avoid coming up with a fresh name.

Global variables are still allocated in the main-unit. If they are initialized with a constant value, they drag in that value into the main unit. (see http://dartbug.com/21301). That bug should, however, affect very few users.

BUG= http://dartbug.com/21293
R=cbracken@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@41056 260f80e4-7a28-3924-810f-c04153c831b5
Move `computeNeededConstants` to the code-emitter-task.

R=johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@41057 260f80e4-7a28-3924-810f-c04153c831b5
Write barrier audit: const raw_ptr()

raw_ptr() now returns a const*, and all writes within objects must be routed through a well-defined set of methods on Object.

Note: This also includes writes to non-pointer fields, to enable low-level verification of all writes. Additionally, it allows enforcing a NoGCScope around such writes to protect against moving objects.

Add a bunch of these (now required) NoGCScopes.

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@41058 260f80e4-7a28-3924-810f-c04153c831b5
dart2js: Don't run through members if the class is only for RTI.

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

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