?um/p1-90`このsection、
read-modify-write modification functionは、
read-modify-write modification functionのalgorithm stepsがpureなmathematical functionをconstituteすることのverificationを助けるため、以下のeditorial conventionsがrecommendedされる:
fixed-length ArrayBufferは、creation後にbyte lengthがchangeできないArrayBufferである。
resizable ArrayBufferは、
createdされるArrayBuffer objectのkindは、
The abstract operation AllocateArrayBuffer takes arguments ctor (コンストラクタ) and byteLength (非負整数) and optional argument maxByteLength (非負整数または
The abstract operation ArrayBufferByteLength takes arguments arrayBuffer (ArrayBufferまたはSharedArrayBuffer) and order (
The abstract operation ArrayBufferCopyAndDetach takes arguments arrayBuffer (
realloc として実装してもよい。The abstract operation IsDetachedBuffer takes argument arrayBuffer (ArrayBufferまたはSharedArrayBuffer) and returns Boolean. It performs the following steps when called:
The abstract operation DetachArrayBuffer takes argument arrayBuffer (ArrayBuffer) and optional argument key (任意) and returns
ArrayBufferインスタンスのデタッチは、そのバッキングストアとして使用される
The abstract operation CloneArrayBuffer takes arguments sourceBuffer (ArrayBufferまたはSharedArrayBuffer), sourceByteOffset (非負整数), and sourceLength (非負整数) and returns ArrayBufferを含む正常完了またはthrow完了. これは、sourceByteOffset から始まり sourceLength バイト続く範囲にわたって、sourceBuffer のデータのコピーであるデータを持つ新しいArrayBufferを作成する。 It performs the following steps when called:
The abstract operation GetArrayBufferMaxByteLengthOption takes argument options (
The
HostResizeArrayBufferの実装は、次の要件に従わなければならない:
HostResizeArrayBufferの既定の実装は
The abstract operation IsFixedLengthArrayBuffer takes argument arrayBuffer (ArrayBufferまたはSharedArrayBuffer) and returns Boolean. It performs the following steps when called:
The abstract operation IsUnsignedElementType takes argument type (
The abstract operation IsUnclampedIntegerElementType takes argument type (
The abstract operation IsBigIntElementType takes argument type (
The abstract operation IsNoTearConfiguration takes arguments type (a
The abstract operation RawBytesToNumeric takes arguments type (
The abstract operation GetRawBytesFromSharedBlock takes arguments block (
The abstract operation GetValueFromBuffer takes arguments arrayBuffer (ArrayBufferまたはSharedArrayBuffer), byteIndex (非負整数), type (
The abstract operation NumericToRawBytes takes arguments type (
The abstract operation SetValueInBuffer takes arguments arrayBuffer (an ArrayBuffer or SharedArrayBuffer), byteIndex (a non-negative
The abstract operation GetModifySetValueInBuffer takes arguments arrayBuffer (ArrayBufferまたはSharedArrayBuffer), byteIndex (非負整数), type (
ArrayBuffer
extends 句の値として使用できる。指定された ArrayBuffer の動作を継承しようとするサブクラスコンストラクターは、ArrayBuffer.prototype の組み込みメソッドをサポートするために必要な内部状態でサブクラスインスタンスを作成し初期化するため、ArrayBuffer コンストラクターへの super 呼び出しを含めなければならない。このfunctionは、呼び出されたときに以下のstepsを実行する:
ArrayBuffer
このfunctionは、呼び出されたときに以下のstepsを実行する:
ArrayBuffer.prototypeのinitial valueは
このpropertyはattributes { [[Writable]]:
ArrayBuffer[%Symbol.species%]は、set accessor functionが
このfunctionの
ArrayBuffer prototype objectは:
ArrayBuffer.prototype.byteLengthは、set accessor functionが
ArrayBuffer.prototype.constructorのinitial valueは
ArrayBuffer.prototype.detachedは、set accessor functionが
ArrayBuffer.prototype.maxByteLengthは、set accessor functionが
ArrayBuffer.prototype.resizableは、set accessor functionが
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このpropertyはattributes { [[Writable]]:
ArrayBuffer instancesは
[[ArrayBufferData]]が
[[ArrayBufferDetachKey]]が
以下は、
programsは、可能であればdeployment environmentsでtestedされることをrecommendする。available physical memoryの量はhardware devices間でgreatlyに異なる。同様に、virtual memory subsystemsもhardware devices間およびoperating systems間でgreatlyに異なる。64-bit desktop web browserでout-of-memory errorsなしにrunsするapplicationが、32-bit mobile web browserではout of memoryになる可能性がある。
particular maximum sizeの
以下は、
hostがmulti-tenanted(すなわち、多数のECMAScript applicationsをsimultaneouslyにrunsする)である場合、web browserなどで、そのimplementationsがvirtual memoryをreservingすることでin-place growthをimplementすることをchooseするなら、32-bitおよび64-bitの両implementationsは、
hostがMMUのないembedded devices上でrunningするもののようにvirtual memoryを持たない場合、またはhostがcopyingによるresizingのみをimplementする場合、
fixed-length SharedArrayBufferは、creation後にbyte lengthがchangeできないSharedArrayBufferである。
growable SharedArrayBufferは、
createdされるSharedArrayBuffer objectのkindは、
The abstract operation AllocateSharedArrayBuffer takes arguments ctor (a
The abstract operation IsSharedArrayBuffer takes argument obj (an ArrayBuffer or a SharedArrayBuffer) and returns a Boolean. objectがSharedArrayBufferであるかどうかをtestする。 It performs the following steps when called:
The abstract operation IsGrowableSharedArrayBuffer takes argument obj (an ArrayBuffer or a SharedArrayBuffer) and returns a Boolean. objectが
The
HostGrowSharedArrayBufferのimplementationは、以下のrequirementsにconformしなければならない:
上記のsecond requirementは、bufferのcurrent byte lengthがどのように、またはいつreadされるかについてintentionally vagueである。byte lengthはunderlying hardware上のatomic read-modify-write operationを介してupdatedされなければならないため、load-link/store-conditionalまたはload-exclusive/store-exclusive instruction pairsを使用するarchitecturesでは、paired instructionsをinstruction stream内でcloseに保ちたい場合がある。そのため、
これは、0 ≤ newByteLength ≤ buffer.[[ArrayBufferMaxByteLength]]であることがguaranteedされる
HostGrowSharedArrayBufferのdefault implementationは
SharedArrayBuffer
extends 句の値として使用できる。指定された SharedArrayBuffer の動作を継承しようとするサブクラスコンストラクターは、SharedArrayBuffer.prototype の組み込みメソッドをサポートするために必要な内部状態でサブクラスインスタンスを作成し初期化するため、SharedArrayBuffer コンストラクターへの super 呼び出しを含めなければならない。hostがSharedArrayBuffersへのconcurrent accessをprovideしない場合はいつでも、
ArrayBufferとは異なり、SharedArrayBufferはdetachedになることができず、そのinternal [[ArrayBufferData]] slotは決して
このfunctionは、呼び出されたときに以下のstepsを実行する:
SharedArrayBuffer
SharedArrayBuffer.prototypeのinitial valueは
このpropertyはattributes { [[Writable]]:
SharedArrayBuffer[%Symbol.species%]は、set accessor functionが
このfunctionの
SharedArrayBuffer prototype objectは:
SharedArrayBuffer.prototype.byteLengthは、set accessor functionが
SharedArrayBuffer.prototype.constructorのinitial valueは
このmethodは、呼び出されたときに以下のstepsを実行する:
lengthをupdateするcompare-exchangeのspurious failuresは禁止される。new lengthのbounds checkingがpassし、implementationがout of memoryでない場合、
SharedArrayBuffer.prototype.growへのparallel callsはtotally orderedである。例えば、sab.grow(10)とsab.grow(20)という2つのracing callsを考える。2つのcallsのうち一方がraceにwinすることがguaranteedされる。sab.grow(10)へのcallは、たとえsab.grow(20)が先にhappenedしたとしても、決してsabをshrinkしない;その場合は代わりにRangeErrorをthrowする。
SharedArrayBuffer.prototype.growableは、set accessor functionが
SharedArrayBuffer.prototype.maxByteLengthは、set accessor functionが
このmethodは、呼び出されたときに以下のstepsを実行する:
このpropertyはattributes { [[Writable]]:
SharedArrayBuffer instancesは
SharedArrayBuffer instancesは、ArrayBuffer instancesとは異なり、決してdetachedされない。
以下は、
programsは、可能であればdeployment environmentsでtestedされることをrecommendする。available physical memoryの量はhardware devices間でgreatlyに異なる。同様に、virtual memory subsystemsもhardware devices間およびoperating systems間でgreatlyに異なる。64-bit desktop web browserでout-of-memory errorsなしにrunsするapplicationが、32-bit mobile web browserではout of memoryになる可能性がある。
particular maximum sizeの
u8[idx])のbounds-checkingのためのlengthのloadsはsynchronizingではない。一般に、explicit synchronizationがない場合、あるproperty accessがin-boundであることは、同じlengthおよびbyteLength gettersを介したlengthのexplicit loadsはsynchronizingである。
以下は、
grow operationsは
Grown memoryは、そのcreationの瞬間から、parallelなracy accessesに対しても含めて、zeroedにappearしなければならない。これはzero-filled-on-demand virtual memory pages、またはmanualにzeroing memoryする場合はcareful synchronizationによってaccomplishedできる。
growable SharedArrayBuffersの
MMUのないembedded devices上でrunningする
DataView With Buffer Witness Recordは、viewed bufferのcached byte lengthとともにDataViewをencapsulateするために使用される
DataView With Buffer Witness Recordsは、
| Field Name | Value | Meaning |
|---|---|---|
| [[Object]] | a DataView | bufferのbyte lengthがloadedされるDataView object。 |
| [[CachedBufferByteLength]] |
a non-negative |
|
The abstract operation MakeDataViewWithBufferWitnessRecord takes arguments obj (a DataView) and order (
The abstract operation GetViewByteLength takes argument viewRecord (a
The abstract operation IsViewOutOfBounds takes argument viewRecord (a
The abstract operation GetViewValue takes arguments view (an ECMAScript language value), requestIndex (an ECMAScript language value), isLittleEndian (an ECMAScript language value), and type (a
The abstract operation SetViewValue takes arguments view (an ECMAScript language value), requestIndex (an ECMAScript language value), isLittleEndian (an ECMAScript language value), type (a
DataView
extends 句の値として使用できる。指定された DataView の動作を継承しようとするサブクラスコンストラクターは、DataView.prototype の組み込みメソッドをサポートするために必要な内部状態でサブクラスインスタンスを作成し初期化するため、DataView コンストラクターへの super 呼び出しを含めなければならない。このfunctionは、呼び出されたときに以下のstepsを実行する:
DataView
DataView.prototypeのinitial valueは
このpropertyはattributes { [[Writable]]:
DataView prototype objectは:
DataView.prototype.bufferは、set accessor functionが
DataView.prototype.byteLengthは、set accessor functionが
DataView.prototype.byteOffsetは、set accessor functionが
DataView.prototype.constructorのinitial valueは
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このmethodは、呼び出されたときに以下のstepsを実行する:
このpropertyはattributes { [[Writable]]:
DataView instancesは
[[DataView]] internal slotのvalueは、この仕様内では使用されない。そのinternal slotのsimple presenceが、DataView
Atomicsオブジェクトは:
new operatorでAtomicsオブジェクトは、shared memory array cells上でindivisibly(atomically)にoperateするfunctionsと、
ECMAScriptでshared memoryをprogrammingおよびimplementingするためのinformative guidelinesについては、
Waiter Recordは、Atomics.waitまたはAtomics.waitAsyncへのparticular callをdenoteするために使用される
Waiter Recordは、
| フィールド名 | 値 | 意味 |
|---|---|---|
| [[AgentSignifier]] |
an |
Atomics.waitまたはAtomics.waitAsyncをcalledした |
| [[PromiseCapability]] |
a |
Atomics.waitAsyncへのcallをdenoteする場合はresulting promise、そうでなければ |
| [[TimeoutTime]] |
a non-negative |
timeoutがtriggerされ得る最も早い時刻; |
| [[Result]] |
|
callのreturn value。 |
WaiterList Recordは、Atomics.wait、Atomics.waitAsync、およびAtomics.notifyを介する
WaiterList Recordは、
| フィールド名 | 値 | 意味 |
|---|---|---|
| [[Waiters]] |
a |
このWaiterListがassociatedされるlocation上でwaitingしている、Atomics.waitまたはAtomics.waitAsyncへのcalls。
|
| [[MostRecentLeaveEvent]] |
a |
その |
同じ
各WaiterList Recordは、evaluation中にそのWaiterList Recordへのexclusive accessをcontrolするcritical sectionを持つ。一度にsingle
The abstract operation ValidateIntegerTypedArray takes arguments ta (an ECMAScript language value) and waitable (a Boolean) and returns either a
The abstract operation ValidateAtomicAccess takes arguments taRecord (a
The abstract operation ValidateAtomicAccessOnIntegerTypedArray takes arguments ta (an ECMAScript language value) and requestIndex (an ECMAScript language value) and returns either a
The abstract operation RevalidateAtomicAccess takes arguments ta (a
The abstract operation GetWaiterList takes arguments block (a
The abstract operation EnterCriticalSection takes argument waiterList (a
EnterCriticalSectionは、
The abstract operation LeaveCriticalSection takes argument waiterList (a
The abstract operation AddWaiter takes arguments waiterList (a
The abstract operation RemoveWaiter takes arguments waiterList (a
The abstract operation RemoveWaiters takes arguments waiterList (a
The abstract operation SuspendThisAgent takes arguments waiterList (a
Atomics.notifyへのcallを介すること)によってのみ、suspensionからwakeできる。The abstract operation NotifyWaiter takes arguments waiterList (a
The abstract operation EnqueueResolveInAgentJob takes arguments agentSignifier (an
The abstract operation DoWait takes arguments mode (
additionalTimeoutは、power consumptionのreducingやtiming attacksをmitigateするためのtimer resolutionのcoarseningなど、必要に応じてimplementationsがtimeoutsをpadすることを可能にする。このvalueはDoWaitのcallごとに異なってもよい。
The abstract operation EnqueueAtomicsWaitAsyncTimeoutJob takes arguments waiterList (a
The abstract operation AtomicCompareExchangeInSharedBlock takes arguments block (a
The abstract operation AtomicReadModifyWrite takes arguments ta (an ECMAScript language value), index (an ECMAScript language value), value (an ECMAScript language value), and op (a
The abstract operation ByteListBitwiseOp takes arguments op (&, ^, or |), xBytes (a
&なら、^なら、|である。The abstract operation ByteListEqual takes arguments xBytes (a
このfunctionは、呼び出されたときに以下のstepsを実行する:
このfunctionは、呼び出されたときに以下のstepsを実行する:
&, xBytes, yBytes)を返す。このfunctionは、呼び出されたときに以下のstepsを実行する:
このfunctionは、呼び出されたときに以下のstepsを実行する:
このfunctionは、呼び出されたときに以下のstepsを実行する:
このfunctionはoptimization primitiveである。その直観は、size n bytesのdatum上のatomic primitive(compareExchange、load、store、add、sub、and、or、xor、またはexchange)のatomic stepが、Atomics.isLockFree(n)は
Atomics.isLockFree(4)は、すべてのknown relevant hardwareでsupportできるため、常に
このfunctionによってreturnedされるvalueに関わらず、すべてのatomic operationsはatomicであることがguaranteedされる。例えば、それらはoperationの途中でvisible operationがtake placeすること(例:“tearing”)は決してない。
このfunctionは、呼び出されたときに以下のstepsを実行する:
この関数は、待機キュー内でスリープしているいくつかのエージェントに通知する。
呼び出されたとき、次の手順を実行する。
この関数は、呼び出されたとき、次の手順を実行する。
|, xBytes, yBytes) を返す。この関数は、値を待機している間プログラムがスピンループしていることを CPU に示すヒントを提供する。
呼び出されたとき、次の手順を実行する。
このメソッドは、mutex 内の spinlock 高速パスなど、スピン待機ループを実装するプログラムが、値を待機している間スピンしていることを CPU に示すヒントを提供するために設計されている。これはタイミング以外に観測可能な動作を持たない。
実装は、基盤となるアーキテクチャのベストプラクティスがスピンループ内でそのような命令を推奨している場合、pause または yield 命令を実装することが期待される。例えば、Intel 最適化マニュアルは pause 命令を推奨している。
実装には、一時停止する最大時間について、数十から数百ナノ秒程度の内部上限を持つことが推奨される。
関数呼び出しのオーバーヘッドにより、最適化コンパイラーにおけるこのメソッドへのインライン化された呼び出しが、インライン化されていない呼び出しとは異なる時間だけ待機することは妥当である。
この関数は、呼び出されたとき、次の手順を実行する。
この関数は、呼び出されたとき、次の手順を実行する。
この関数は、周囲のエージェントを待機キューに入れ、通知されるか待機がタイムアウトするまでそのエージェントを一時停止し、それらの場合を区別する String を返す。
呼び出されたとき、次の手順を実行する。
この関数は、呼び出し元エージェントが通知されるかタイムアウトに達したときに解決される Promise を返す。
呼び出されたとき、次の手順を実行する。
この関数は、呼び出されたとき、次の手順を実行する。
^, xBytes, yBytes) を返す。このプロパティは属性 { [[Writable]]:
JSONオブジェクトは:
parseおよびstringifyという2つのfunctionsを含む。new operatorでJSON Data Interchange FormatはECMA-404でdefinedされている。このspecificationで使用されるJSON interchange formatは、ECMA-404によってdescribedされるものとexactly sameである。JSON.parseおよびJSON.stringifyのconforming implementationsは、ECMA-404 specificationでdescribedされるexact interchange formatを、そのformatに対するdeletionsやextensionsなしにsupportしなければならない。
このfunctionは、呼び出されたときに以下のstepsを実行する:
このfunctionはJSON text(JSON形式のString)をparseし、ECMAScript language valueをproduceする。JSON formatは、ECMAScript literals、Array Initializers、およびObject Initializersのsyntaxにsimilarなsyntaxでliterals、arrays、およびobjectsをrepresentする。parsing後、JSON objectsはECMAScript objectsとしてrealizedされる。JSON arraysはECMAScript Array instancesとしてrealizedされる。JSON strings、numbers、booleans、およびnullはECMAScript Strings、Numbers、Booleans、および
optional reviver parameterは、resultsをfilterおよびtransformできるfunctionである。parseによってproducedされる各valueについて、reviverは3つのarguments(associated
このfunctionの
The abstract operation ParseJSON takes argument text (a String) and returns either a
JSON.parseのconforming implementationがJSON grammarsをextendすることはpermittedされない。implementationがmodifiedまたはextended JSON interchange formatをsupportしたい場合、different parse functionをdefiningすることによってそうしなければならない。
Valid JSON textはECMAScript
しかし、ParseJSON中には
object内にduplicate name Stringsがある場合、same keyに対するlexically preceding valuesはoverwrittenされる。
JSON Parse Recordは、JSON textからparsedされたvalueのinitial stateをdescribeするために使用される
JSON Parse Recordsは、
| フィールド名 | 値 | 意味 |
|---|---|---|
| [[ParseNode]] | a |
context |
| [[Key]] | a |
[[Value]]がassociatedされる |
| [[Value]] | an ECMAScript language value | [[ParseNode]]のevaluationによってproducedされるvalue。 |
| [[Elements]] | a |
[[Value]]がArrayである場合、これは[[Value]]のelementsにcorrespondingする |
| [[Entries]] | a |
[[Value]]がnon-Array Objectである場合、これは[[Value]]のentriesにcorrespondingする |
The abstract operation CreateJSONParseRecord takes arguments parseNode (a
{"a":"lost","a":"kept"})をspecifyingする場合、resulting ECMAScript objectのcorresponding propertyのvalueは、そのnameを持つlast pairによってspecifiedされる。The abstract operation InternalizeJSONProperty takes arguments holder (an Object), name (a String), reviver (a
このalgorithmは、[[Delete]]または
これは、呼び出されたときに以下のstepsを実行する:
The abstract operation ShallowestContainedJSONValue takes argument root (a
JSON.parse built-in number tokenはnegative valueをrepresentし得る。ECMAScriptでは、negationは、-に続いてderived The
このfunctionは、string、number、boolean、またはnull valueのraw JSON textをrepresentするobjectを返す。
このfunctionは、ECMAScript language valueをrepresentするUTF-16 encoded JSON formatのString、または
これは、呼び出されたときに以下のstepsを実行する:
このfunctionの
JSON structuresは任意のdepthまでnestedされることがallowedされるが、acyclicでなければならない。valueがcyclic structureである、またはそれを含む場合、このfunctionは
a = [];
a[0] = a;
my_text = JSON.stringify(a); // This must throw a TypeError.
Symbolic primitive valuesは以下のようにrenderedされる:
String valuesはQUOTATION MARK (") code unitsでwrappedされる。code units "および\は\ prefixesでescapedされる。Control characters code unitsはescape sequences \uHHHH、またはよりshorter formsである\b (BACKSPACE)、\f (FORM FEED)、\n (LINE FEED)、\r (CARRIAGE RETURN)、\t (CHARACTER TABULATION)にreplacedされる。
JSON representationを持たないvalues(
objectは、U+007B (LEFT CURLY BRACKET)に続いて、U+002C (COMMA)でseparatedされたzero or more propertiesが続き、U+007D (RIGHT CURLY BRACKET)でclosedされるものとしてrenderedされる。propertyは、
JSON Serialization Recordは、JSON formatへのserializationをenableするために使用される
JSON Serialization Recordsは、
| フィールド名 | 値 | 意味 |
|---|---|---|
| [[ReplacerFunction]] | a |
object propertiesにreplacement valuesをsupplyできるfunction(JSON.stringifyのreplacer parameterから)。 |
| [[PropertyList]] | either a |
non-array objectをserializingする際にincludeするpropertiesのnames(JSON.stringifyのreplacer parameterから)。 |
| [[Gap]] | a String | indentationのunit(JSON.stringifyのspace parameterから)。 |
| [[Stack]] | a |
serializedされるprocess中にあるnested objectsのset。cyclic structuresをdetectするためにusedされる。 |
| [[Indent]] | a String | current indentation。 |
The abstract operation SerializeJSONProperty takes arguments state (a
The abstract operation QuoteJSONString takes argument value (a String) and returns a String. valueを0x0022 (QUOTATION MARK) code unitsでwrapし、その中のcertain other code unitsをescapeする。このoperationは、
| Code Point | Unicode Character Name | Escape Sequence |
|---|---|---|
| U+0008 | BACKSPACE |
\b
|
| U+0009 | CHARACTER TABULATION |
\t
|
| U+000A | LINE FEED (LF) |
\n
|
| U+000C | FORM FEED (FF) |
\f
|
| U+000D | CARRIAGE RETURN (CR) |
\r
|
| U+0022 | QUOTATION MARK |
\"
|
| U+005C | REVERSE SOLIDUS |
\\
|
The abstract operation UnicodeEscape takes argument codeUnit (a code unit) and returns a String. codeUnitをUnicode escape sequenceとしてrepresentsする。 It performs the following steps when called:
The abstract operation SerializeJSONObject takes arguments state (a
The abstract operation SerializeJSONArray takes arguments state (a
arraysのrepresentationは、array.length(exclusive)までの
このpropertyはattributes { [[Writable]]: