Chromium Code Reviews| Index: client/html/src/_DOMTypeBase.dart |
| diff --git a/client/html/src/_DOMTypeBase.dart b/client/html/src/_DOMTypeBase.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..85e4b2e0167da12b347dda50c7371b5b37ba688e |
| --- /dev/null |
| +++ b/client/html/src/_DOMTypeBase.dart |
| @@ -0,0 +1,22 @@ |
| +// Copyright (c) 2011, 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. |
| + |
| +class _DOMTypeBase { |
| + final _ptr; |
| + |
| + _DOMTypeBase._wrap(this._ptr) { |
|
nweiz
2012/03/01 21:18:03
Should this be in a dartium-specific directory or
|
| + // We should never be creating duplicate wrappers. |
| + // TODO(jacobr): this boolean value is evaluated outside of the assert |
| + // to work around a mysterious and flaky bug in tip of trunk versions of |
| + // chrome. |
| + bool hasExistingWrapper = _ptr.dartObjectLocalStorage === null; |
| + assert(hasExistingWrapper); |
| + _ptr.dartObjectLocalStorage = this; |
| + } |
| +} |
| + |
| +/** This function is provided for unittest purposes only. */ |
| +unwrapDomObject(_DOMTypeBase wrapper) { |
| + return wrapper._ptr; |
| +} |