目次詳細目次前章次章要素属性プロパティ

付録 E: ECMAScript 言語束縛

目次

この付録は規定である。

この付録では SVG DOM がどのように ECMAScript 言語環境 [ECMA-262] に公開されるかについて述べる。 This appendix describes how to expose the SVG DOM to an ECMAScript language environment [ECMA-262].

他の仕様で定義されるインタフェース並びに例外がどのように ECMAScript 言語環境に公開されるかについては、関連する仕様を参照のこと: For descriptions of how interfaces and exceptions defined in other specifications are to be exposed to an ECMAScript language environment, consult the relevant specification:

E.1 例外

SVG DOM は1個の例外 SVGException を定義し,次のように ECMAScript 言語環境に公開する。 The SVG DOM defines a single exception, SVGException, which is exposed to an ECMAScript language environment as follows.

ECMAScript グローバルオブジェクトは、次のプロパティを伴うオブジェクトを値にとる,名前 "SVGException" のプロパティを持つ: The ECMAScript global object has a property named "SVGException" whose value is an object with the following properties:

SVGException であるホストオブジェクトは、自身, あるいはその prototype チェインのどこかで,これら3個のプロパティを持つ。 そのようなホストオブジェクトは、 SVGExceptioncode 例外メンバに対応するプロパティとして, Number を値にとる,名前 "code" の読み取り専用プロパティも持つ。 A host object that is an SVGException also has these three properties on itself, or somewhere in its prototype chain. Every such host object also has a read only property named "code" whose value is a Number, corresponding to the code exception member on SVGException.

E.2 定数

SVG DOM にて定義される,1個以上の定数を定義するどのインタフェースに対しても、そのインタフェースの名前と同じ名前のプロパティが ECMAScript グローバルオブジェクト上に存在し,それらの各定数に対応する読み取り専用プロパティを持つオブジェクトを,その値としてとる。 これらの読み取り専用プロパティは、対応する定数と同じ名前を持ち,それらの定数と同じ Number 値をとる。 For every interface defined in the SVG DOM that has one or more constants defined on it, there exists a property on the ECMAScript global object whose name is the name of the interface, and whose value is an object with a read only property for each of the constants. The name of each of these read only properties is the name of the corresponding constant, and the value is a Number with the same value as that of the constant.

定数が定義されているインタフェースを実装するホストオブジェクトは、それ自身, あるいはその prototype チェインのどこかで,それらの定数に対応するプロパティを持つ。 A host object that implements an interface with constants defined on it has, on itself or somewhere in its prototype chain, these properties that correspond to the constants.

E.3 型

下の表に SVG DOM で利用されている IDL プリミティブ型に対応する ECMAScript 型を挙げる。 The following table gives the corresponding ECMAScript type for the IDL primitive types used in the SVG DOM.

IDL 型ECMAScript 型
booleanBoolean
floatNumber
longNumber
unsigned shortNumber
unsigned longNumber
DOMStringString

ECMAScript Number が IDL 整数型( long, unsigned short, unsigned long )の属性に対応するプロパティに代入されたり, あるいは IDL 整数型の引数をとる操作に渡される際に、その Number 値がその型の整数の範囲に収まらない場合のふるまいは未定義である。 When an ECMAScript Number is assigned to a property that corresponds to an attribute of an IDL integer type (long, unsigned short or unsigned long), or it is passed as an argument passed to an operation for which the argument type is an IDL integer type, then behavior is undefined if the Number value is not an integer within the range of that type.

インタフェース型に対しては、そのインタフェースを実装するホストオブジェクトが利用される。 For an interface type, a host object that implements the given interface is used.

E.4 オブジェクト

与えられたインタフェースを実装するホストオブジェクトは、そのインタフェースとそのすべてのスーパーインタフェース(そのインタフェースが継承しているインターフェース)にて定義される操作/属性に対応するプロパティを、自身, あるいはその prototype チェインの中に持つ。 A host object that implements a given interface has properties on itself, or in its prototype chain, that correspond to the operations and attributes defined on that interface and all its superinterfaces.

属性に対応するプロパティは属性が読み取り専用である場合、読み取り専用になり,名前もその属性と同じになる。 プロパティを取得する際には、上の 節に示した表に従う型の値が返される。 プロパティを設定する際には、それが読み取り専用でないならば, 節に示した表に従う型の値に対してのみ,ふるまいが定義される。 A property that corresponds to an attribute is read only if the attribute is read only, and has a name that is the same as the name of the attribute. When getting the property, a value of a type according to the Types section above is returned. When setting the property, if it is not read only, then behavior is defined only if a value of a type according to the Types section is assigned to it.

例えば aSVGLength インタフェースを実装するホストオブジェクトとする場合、次の文の評価においては: For example, if a is a host object that implements the SVGLength interface, then evaluating the statement:

a.valueAsString = "10";

のふるまいは定義されるが、次の文の評価におけるふるまいは未定義である: has defined behavior, but evaluating the statement:

a.valueAsString = 10;

does not.

操作に対応するプロパティは、その操作と同じ名前の Function オブジェクトを,その値にとる。 その Function からの返り値の型は、上の 節に示される表に従う。 Function が呼び出された際のふるまいは、引数の個数が正しく, かつ 各引数が 節に示される表に従い, かつ 呼び出しに伴う this 値が Function を取得したオブジェクトと同じである場合に限り,定義される。 A property that corresponds to an operation has a name that is the same as the name of the operation, and has a value that is a Function object. The value returned from the Function is of a type according to the table in the Types section above. When calling the Function, behavior is only defined if the correct number of arguments is passed, and the type of each argument is the type according to the Types table. Also, behavior is only defined for invoking the Function with a this value that is equal to the object from which the Function was obtained.

例えば、 L1, L2SVGPointList インタフェースを実装する別々のホストオブジェクトとし, pSVGPoint インタフェースを実装するホストオブジェクトとする。 このとき,次の文が評価される際のふるまいは定義される: For example, if L1 and L2 are two distinct host objects that implement the SVGPointList interface and p is a host object that implements the SVGPoint interface, then evaluating the following statement has defined behavior:

L1.insertItemBefore(p, 0);

しかしながら,次の文が評価される際のふるまいは未定義である: Evaluating any of the following statements, however, does not:

L1.insertItemBefore(p, '0');
L1.insertItemBefore(p, -1);
L1.insertItemBefore(p, 0.5);
L1.insertItemBefore(p);
L1.insertItemBefore(p, 0, 0);
L1.insertItemBefore({ x: 10, y: 20 }, 0);
L1.insertItemBefore.call([], p, 0);
L1.insertItemBefore.call(L2, p, 0);
目次詳細目次前章次章要素属性プロパティ