mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-07 05:15:09 +00:00
5f9abd3366
This patch is based on the patch created by Makoto Kato-san. `Range` and `StaticRange` have common base interface, `AbstractRange`. https://dom.spec.whatwg.org/#abstractrange This interface has simply returns `startContainer`, `endContainer`, `startOffset`, `endOffset` and `collapsed`. Different from the original patch's approach, this patch moves related members in `nsRange` to `AbstractRange` since this approach avoids virtual call cost. Additionally, this patch makes them not throw as declared by the spec. As far as I know, the destruction cost of `ErrorResult` may appear in profile so that we should avoid creating the instance if we can avoid it. Unfortunately, the instance size of `nsRange` becomes larger with this patch. The size is changed from 176 to 184. I.e., now, `nsRange` requires bigger chunk. Differential Revision: https://phabricator.services.mozilla.com/D35140 --HG-- extra : moz-landing-system : lando
22 lines
809 B
Plaintext
22 lines
809 B
Plaintext
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*
|
|
* The origin of this IDL file is
|
|
* https://dom.spec.whatwg.org/#abstractrange
|
|
*
|
|
* Copyright 2012 W3C (MIT, ERCIM, Keio), All Rights Reserved. W3C
|
|
* liability, trademark and document use rules apply.
|
|
*/
|
|
|
|
interface AbstractRange {
|
|
[BinaryName="GetStartContainer"]
|
|
readonly attribute Node startContainer;
|
|
readonly attribute unsigned long startOffset;
|
|
[BinaryName="GetEndContainer"]
|
|
readonly attribute Node endContainer;
|
|
readonly attribute unsigned long endOffset;
|
|
readonly attribute boolean collapsed;
|
|
};
|