1a6d1eca32
Allow members of patch classes to be annotated with @patch. The VM ignores the annotation. I simply replaces the original method if the name matches, or reports an error if field names match. Adding a bit is_patched to members to do more checking remains a TODO. There are currently no unused bits available, and I don’t want to increase the size of Function objects for this. BUG= R=asiva@google.com Review URL: https://codereview.chromium.org/2230383003 .
25 lines
763 B
Dart
25 lines
763 B
Dart
// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
import 'dart:_internal';
|
|
|
|
@patch class UserTag {
|
|
@patch factory UserTag(String label) {
|
|
return new _UserTag(label);
|
|
}
|
|
@patch static UserTag get defaultTag => _getDefaultTag();
|
|
}
|
|
|
|
|
|
class _UserTag implements UserTag {
|
|
factory _UserTag(String label) native "UserTag_new";
|
|
String get label native "UserTag_label";
|
|
UserTag makeCurrent() native "UserTag_makeCurrent";
|
|
}
|
|
|
|
@patch UserTag getCurrentTag() => _getCurrentTag();
|
|
UserTag _getCurrentTag() native "Profiler_getCurrentTag";
|
|
|
|
UserTag _getDefaultTag() native "UserTag_defaultTag";
|