recursal/MDN huggingface dataset:
WebAssembly.Table()
===================

**`WebAssembly.Table()`** 생성자는 지정된 크기 및 요소 유형의 새 `Table` 객체를 만듭니다.

이것은 자바 스크립트 래퍼 객체로, 함수 참조를 저장하는 WebAssembly 테이블을 나타내는 배열과 같은 구조입니다. JavaScript 또는 WebAssembly 코드로 작성된 테이블은 JavaScript 및 WebAssembly에서 액세스 및 변경할 수 있습니다.

**참고:** 테이블은 현재 function references만 저장할 수 있지만 나중에 확장 될 수 있습니다.

Syntax
------


```js
var myTable = new WebAssembly.Table(tableDescriptor);
```

### Parameters

*tableDescriptor*

 다음 멤버를 포함 할 수있는 객체입니다:\_ *element*
 \_ : 테이블에 저장 될 값 유형을 나타내는 문자열. 현재로서는 `"anyfunc"`(함수) 값만있을 수 있습니다.


*initial*

WebAssembly 테이블의 초기 요소 수입니다.

*maximum Optional*

WebAssembly 테이블의 최대 증가 요소 수입니다.


### Exceptions

* `tableDescriptor`가 object 유형이 아닌 경우 `TypeError`가 발생합니다.
* `maximum`이 지정되고 initial보다 작은 경우 `RangeError`가 발생합니다.
`Table` instances
-----------------

모든 `Table` 인스턴스는 `Table()`생성자의 prototype object (en-US)에서 상속받습니다.이 인스턴스는 모든 `Table` 인스턴스에 적용되도록 수정할 수 있습니다.

### Instance properties

`Table.prototype.constructor`

이 객체의 인스턴스를 생성 한 함수를 돌려줍니다. 기본적으로 이것은 `WebAssembly.Table()` 생성자입니다.

`Table.prototype.length` (en-US)

테이블의 길이, 즉 요소의 수를 돌려줍니다.

### Instance methods

`Table.prototype.get()` (en-US)

접근 자 함수 - 주어진 색인에 저장된 요소를 가져옵니다.

`Table.prototype.grow()` (en-US)

지정된 요소 수만큼 Table 인스턴스의 크기를 늘립니다.

`Table.prototype.set()` (en-US)

지정된 인덱스에 격납되어있는 요소를, 지정된 값으로 설정합니다.

Examples
--------

다음 예제 (table2.html source code 및 live version 참조)는 초기 크기가 2인 새 WebAssembly Table 인스턴스를 만듭니다. 그런 다음 두 개의 인덱스 (표 `Table.prototype.get ()`를 통해 검색하여 테이블의 길이와 내용을 인쇄합니다. 길이가 2이고 `null`이 두개라고 출력됩니다.


```js
var tbl = new WebAssembly.Table({ initial: 2, element: "anyfunc" });
console.log(tbl.length); // "2"
console.log(tbl.get(0)); // "null"
console.log(tbl.get(1)); // "null"
```


그런 다음 테이블을 포함한 `importObj`를 만듭니다.


```js
var importObj = {
  js: {
    tbl: tbl,
  },
};
```


마지막으로 `WebAssembly.instantiateStreaming ()` 메소드를 사용하여 wasm 모듈 (table2.wasm)을 로드하고 인스턴스화합니다. table2.wasm 모듈에는 두 개의 함수 (하나는 42를 반환하고 다른 하나는 83을 반환하는 함수)가 들어 있고 가져온 테이블의 요소 0과 1에 둘 다 저장합니다 (text representation 참조). 인스턴스화 후에도 테이블의 길이는 여전히 2이지만 JS에 호출 할 수있는 호출 가능한 Exported WebAssembly Functions가 요소에 포함됩니다.


```js
WebAssembly.instantiateStreaming(fetch("table2.wasm"), importObject).then(
  function (obj) {
    console.log(tbl.length);
    console.log(tbl.get(0)());
    console.log(tbl.get(1)());
  },
);
```


액세서의 끝 부분에 두 번째 함수 호출 연산자를 포함시켜 실제로 참조 된 함수를 호출하고 그 안에 저장된 값을 기록해야합니다 (예 : `get(0)` 대신 `get(0)()`).

이 예제는 자바 스크립트에서 테이블을 만들고 액세스하고 있지만 wasm 인스턴스 내부에서도 같은 테이블을 볼 수 있고 호출 할 수 있음을 보여줍니다.

명세서
---

| Specification |
| --- |
| WebAssembly JavaScript Interface # tables |

브라우저 호환성
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* WebAssembly overview page
* WebAssembly concepts
* Using the WebAssembly JavaScript API
WebAssembly.Instance
====================

**`WebAssembly.Instance`** 개체는 WebAssembly.Module의 상태 저장되고 실행 가능한 인스턴스입니다. `Instance` 객체에는 JavaScript에서 WebAssembly 코드로 호출 할 수있는 모든 Exported WebAssembly functions가 포함되어 있습니다.

주어진 `WebAssembly.Module` 객체를 동기적으로 인스턴스화하기 위해 `WebAssembly.Instance()` 생성자 함수를 호출 할 수 있습니다. 하지만 `Instance`를 가져 오는 주요 방법은 비동기 `WebAssembly.instantiateStreaming ()` 함수를 사용하는 것입니다.

생성자
---

`WebAssembly.Instance()` (en-US)

Creates a new `Instance` object.

인스턴스 속성
-------

`Instance.prototype.exports` (en-US)

Returns an object containing as its members all the functions exported from the WebAssembly module instance, to allow them to be accessed and used by JavaScript. Read-only.

명세
--

| Specification |
| --- |
| WebAssembly JavaScript Interface # instances |

브라우저 호환성
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

같이 보기
-----

* WebAssembly overview page
* WebAssembly concepts
* Using the WebAssembly JavaScript API
WebAssembly.CompileError()
==========================

\*\*`WebAssembly.CompileError()`\*\*생성자는 WebAssembly 디코딩 또는 유효성 검사 중에 발생한 오류를 나타내는 WebAssembly `CompileError` 객체를 새로 만듭니다.

Syntax
------


```js
new WebAssembly.CompileError(message, fileName, lineNumber);
```

### Parameters

`message` Optional

사람이 읽을수 있는 형태의 에러에 대한 설명.

`fileName` Optional
비표준

예외의 원인이 된 코드가 들어있는 파일의 이름입니다.

`lineNumber` Optional
비표준

예외의 원인이 된 코드의 행 번호입니다.

Properties
----------

*`CompileError` 생성자에는 고유 한 고유 속성이 없지만 프로토 타입 체인을 통해 일부 속성을 상속합니다.*

`WebAssembly.CompileError.prototype.constructor`

인스턴스의 프로토 타입을 작성한 함수를 지정합니다.

`WebAssembly.CompileError.prototype.message`

에러 메시지. ECMA-262는 `URIError`가 SpiderMonkey에서 자체 `message` 속성을 제공하도록 지정했지만 `Error.prototype.message`를 상속받습니다.

`WebAssembly.CompileError.prototype.name`

에러 명칭. `Error`에서 상속합니다.

`WebAssembly.CompileError.prototype.fileName`

에러가 발생한 파일의 경로. `Error`에서 상속합니다.

`WebAssembly.CompileError.prototype.lineNumber`

에러가 발생한 파일의 코드 줄번호. `Error`에서 상속합니다.

`WebAssembly.CompileError.prototype.columnNumber`

에러가 발생한 줄의 열 번호. `Error`에서 상속합니다.

`WebAssembly.CompileError.prototype.stack` (en-US)

스텍 추적. `Error`에서 상속합니다.

Methods
-------

*`CompileError`* 생성자에는 자체 메서드가 없지만 프로토 타입 체인을 통해 일부 메서드를 상속합니다.

`WebAssembly.CompileError.prototype.toSource()` (en-US)

동일한 오류로 판단할 수 있는 코드를 반환합니다. `Error`에서 상속합니다.

`WebAssembly.CompileError.prototype.toString()`

지정된 Error 객체를 나타내는 문자열을 반환합니다. `Error`에서 상속합니다.

Examples
--------

다음 스 니펫은 새 `CompileError` 인스턴스를 만들고 콘솔에 세부 정보를 기록합니다.


```js
try {
  throw new WebAssembly.CompileError("Hello", "someFile", 10);
} catch (e) {
  console.log(e instanceof CompileError); // true
  console.log(e.message); // "Hello"
  console.log(e.name); // "CompileError"
  console.log(e.fileName); // "someFile"
  console.log(e.lineNumber); // 10
  console.log(e.columnNumber); // 0
  console.log(e.stack); // returns the location where the code was run
}
```

명세서
---

| Specification |
| --- |
| WebAssembly JavaScript Interface # exceptiondef-compileerror |
| ECMAScript Language Specification # sec-native-error-types-used-in-this-standard |

브라우저 호환성
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* WebAssembly overview page
* WebAssembly concepts
* Using the WebAssembly JavaScript API
WebAssembly.compileStreaming()
==============================

\*\*`WebAssembly.compileStreaming()`\*\*함수는 스트림 된 원본 소스에서 직접 `WebAssembly.Module`을 컴파일합니다. 이 함수는 모듈을 인스턴스화하기 전에 컴파일해야하는 경우 유용합니다 (그렇지 않으면 `WebAssembly.instantiateStreaming ()` 함수를 사용해야합니다).

Syntax
------


```js
WebAssembly.compileStreaming(source);
```

### Parameters

*source*

스트리밍 및 컴파일하려는 .wasm 모듈의 기본 소스를 나타내는 `Response` 객체 또는 약속을 수행합니다.

### Return value

`Promise`는 컴파일 된 모듈로 표현된 `WebAssembly.Module` 객체로 반환됩니다.

### Exceptions

* `bufferSource`가 typed array가 아니면 `TypeError`가 발생합니다.
* 컴파일에 실패하면 promise는 `WebAssembly.CompileError`와 함께 reject가 반환됩니다.
Examples
--------

다음 예제 (GitHub의 compile-streaming.html 데모 및 라이브보기)에서 기본 소스의 .wasm 모듈을 직접 스트리밍 한 다음 `WebAssembly.Module` 객체로 컴파일합니다. `compileStreaming()` 함수는 `Response` 객체에 대한 promise를 받으므로 직접 `fetch()` 호출을 전달할 수 있습니다.


```js
var importObject = { imports: { imported\_func: (arg) => console.log(arg) } };

WebAssembly.compileStreaming(fetch("simple.wasm"))
  .then((module) => WebAssembly.instantiate(module, importObject))
  .then((instance) => instance.exports.exported\_func());
```


결과 모듈 인스턴스는 `WebAssembly.instantiate ()`를 사용하여 인스턴스화되고 내 보낸 함수가 호출됩니다.

명세서
---

| Specification |
| --- |
| WebAssembly Web API # dom-webassembly-compilestreaming |

브라우저 호환성
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* WebAssembly overview page
* WebAssembly concepts
* Using the WebAssembly JavaScript API
WebAssembly.Module
==================

**`WebAssembly.Module`** 객체는 브라우저에서 이미 컴파일 된 stateless WebAssembly 코드를 포함하며 효율적으로 Workers와 공유 (en-US)하고 여러 번 인스턴스화 할 수 있습니다. 모듈을 인스턴스화하려면 WebAssembly.instantiate() 2차 오버로드를 호출하세요.

`WebAssembly.Module()` 생성자 함수를 호출하여 지정된 WebAssembly 바이너리 코드를 동기식으로 컴파일 할 수 있습니다. 그러나 `Module`을 쓰는 주된 방법은 `WebAssembly.compile ()`과 같은 비동기 컴파일 함수를 사용하는 것입니다.

생성자
---

`WebAssembly.Module()` (en-US)

Creates a new `Module` object.

정적 속성
-----

`WebAssembly.Module.customSections()` (en-US)

모듈(`Module`)과 문자열이 주어지면 모듈의 모든 사용자 정의 섹션 내용의 사본을 주어진 문자열 이름으로 반환합니다.

`WebAssembly.Module.exports()` (en-US)

모듈(`Module`)이 주어지면 선언 된 모든 내보내기에 대한 설명이 들어있는 배열을 반환합니다.

`WebAssembly.Module.imports()` (en-US)

모듈(`Module`)이 주어지면 선언 된 모든 가져오기에 대한 설명이 들어있는 배열을 반환합니다.

명세
--

| Specification |
| --- |
| WebAssembly JavaScript Interface # modules |

브라우저 호환성
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* WebAssembly overview page
* WebAssembly concepts
* Using the WebAssembly JavaScript API
WebAssembly.LinkError()
=======================

The **`WebAssembly.LinkError()`** constructor creates a new WebAssembly `LinkError` object, which indicates an error during module instantiation (besides traps from the start function).

**`WebAssembly.LinkError()`** 생성자는 새 WebAssembly `LinkError` 객체를 만듭니다. 이 객체는 모듈 인스턴스화 중의 오류를 나타냅니다 (시작 함수의 traps와 함께).

Syntax
------


```js
new WebAssembly.LinkError(message, fileName, lineNumber);
```

### Parameters

`message` Optional

사람이 읽을 수 있는 오류 설명.

`fileName` Optional
비표준

예외의 원인이 된 코드가 들어있는 파일의 이름입니다.

`lineNumber` Optional
비표준

예외의 원인이 된 코드의 행 번호입니다.

Properties
----------

*`LinkError`* 생성자에는 고유 한 고유 속성이 없지만 프로토 타입 체인을 통해 일부 속성을 상속합니다.

`WebAssembly.LinkError.prototype.constructor`

인스턴스의 프로토 타입을 작성한 함수를 지정합니다.

`WebAssembly.LinkError.prototype.message`

에러 메시지. ECMA-262는 `URIError`가 SpiderMonkey에서 자체 `message` 속성을 제공하도록 지정했지만 `Error.prototype.message`를 상속받습니다.

`WebAssembly.LinkError.prototype.name`

에러 이름. `Error`를 상속받습니다.

`WebAssembly.LinkError.prototype.fileName`

해당 에러가 발생한 파일의 경로. `Error`를 상속받습니다.

`WebAssembly.LinkError.prototype.lineNumber`

에러가 발생한 파일의 행 번호. `Error`를 상속받습니다.

`WebAssembly.LinkError.prototype.columnNumber`

이 오류가 발생한 행의 열 번호입니다.. `Error`를 상속받습니다.

`WebAssembly.LinkError.prototype.stack` (en-US)

스텍 추적. `Error`를 상속받습니다.

Methods
-------

*`LinkError`* 생성자에는 자체 메서드가 없지만 프로토 타입 체인을 통해 일부 메서드를 상속합니다.

`WebAssembly.LinkError.prototype.toSource()` (en-US)

동일한 오류로 평가 될 수있는 코드를 반환합니다. `Error`를 상속받습니다.

`WebAssembly.LinkError.prototype.toString()`

지정된 Error 객체를 나타내는 문자열을 반환합니다. `Error`를 상속받습니다.

Examples
--------

다음 snippet은 새 `LinkError` 인스턴스를 만들고 콘솔에 세부 정보를 기록합니다.


```js
try {
  throw new WebAssembly.LinkError("Hello", "someFile", 10);
} catch (e) {
  console.log(e instanceof LinkError); // true
  console.log(e.message); // "Hello"
  console.log(e.name); // "LinkError"
  console.log(e.fileName); // "someFile"
  console.log(e.lineNumber); // 10
  console.log(e.columnNumber); // 0
  console.log(e.stack); // returns the location where the code was run
}
```

명세서
---

| Specification |
| --- |
| WebAssembly JavaScript Interface # exceptiondef-linkerror |
| ECMAScript Language Specification # sec-native-error-types-used-in-this-standard |

브라우저 호환성
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* WebAssembly overview page
* WebAssembly concepts
* Using the WebAssembly JavaScript API
WebAssembly.Memory()
====================

**`WebAssembly.Memory()`** 생성자는 WebAssembly `Instance`가 액세스하는 메모리의 원시 바이트를 가진 ArrayBuffer(크기조정이 가능)인 새 `Memory` 객체를 만듭니다.

메모리는 JavaScript 혹은 WebAssembly 코드 안에서 만들어지며 JavaScript 그리고 WebAssembly에서 접근하거나 변경이 가능합니다.

Syntax
------


```js
var myMemory = new WebAssembly.Memory(memoryDescriptor);
```

### Parameters

*memoryDescriptor*

 다음의 멤버를 가질수 있는 객체입니다.\_ *initial*
 \_ : WebAssembly Page의 단위별 WebAssembly 메모리의 초기 크기입니다.


*maximum Optional*

WebAssembly 메모리의 최대 크기는 WebAssembly 페이지 단위로 증가 할 수 있습니다. 이 매개 변수가 있으면 `maximum` 매개 변수는 엔진에 대해 메모리를 전면에 예약하도록 합니다. 그러나 엔진은 이 예약 요청을 무시하거나 클램핑 할 수 있습니다. 일반적으로 대부분의 WebAssembly 모듈은 `maximum` 값을 설정할 필요가 없습니다.


**참고:** WebAssembly 페이지의 크기는 65,536 바이트로 64KiB로 고정되어 있습니다.

### Exceptions

* `memoryDescriptor`가 object 유형이 아닌 경우 `TypeError`가 발생합니다.
* `maximum`이 지정되고 `initial`보다 작은 경우 `RangeError`가 발생합니다.
`Memory` instances
------------------

모든 `Memory` 인스턴스는 `Memory()`생성자의 prototype object (en-US)를 상속합니다.이 인스턴스는 모든 `Memory` 인스턴스에 적용되도록 수정할 수 있습니다.

### Instance properties

`Memory.prototype.constructor`

이 객체의 인스턴스를 생성 한 함수를 돌려줍니다. 기본적으로 이것은 `WebAssembly.Memory()` 생성자입니다.

`Memory.prototype.buffer` (en-US)

메모리에 포함 된 버퍼를 반환하는 접근 자 속성입니다.

### Instance methods

`Memory.prototype.grow()` (en-US)

지정된 수의 WebAssembly 페이지 (각각 64KB 크기)만큼 메모리 인스턴스의 크기를 늘립니다.

Examples
--------

`WebAssembly.Memory` 객체를 가져 오는 두 가지 방법이 있습니다. 첫 번째 방법은 JavaScript에서 생성하는 것입니다. 다음 예제에서는 초기 크기가 10 페이지 (640KiB)이고 최대 크기가 100 페이지 (6.4MiB) 인 새 WebAssembly 메모리 인스턴스를 만듭니다.


```js
var memory = new WebAssembly.Memory({ initial: 10, maximum: 100 });
```


`WebAssembly.Memory` 객체를 가져 오는 두 번째 방법은 WebAssembly 모듈에서 내보냅니다. 다음 예제는 (GitHub의 memory.html을 보세요. 라이브로 보기) 생성된 메모리를 가져 오는 동안 `WebAssembly.instantiateStreaming()` 메소드를 사용하여로드 된 memory.wasm 바이트 코드를 가져 와서 인스턴스화합니다. 위의 줄에. 그런 다음 메모리에 일부 값을 저장 한 다음 함수를 내 보낸 다음 일부 값의 합계에 사용합니다.


```js
WebAssembly.instantiateStreaming(fetch("memory.wasm"), {
  js: { mem: memory },
}).then((obj) => {
  var i32 = new Uint32Array(memory.buffer);
  for (var i = 0; i < 10; i++) {
    i32[i] = i;
  }
  var sum = obj.instance.exports.accumulate(0, 10);
  console.log(sum);
});
```

명세서
---

| Specification |
| --- |
| WebAssembly JavaScript Interface # memories |

브라우저 호환성
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* WebAssembly overview page
* WebAssembly concepts
* Using the WebAssembly JavaScript API
WebAssembly.RuntimeError()
==========================

**`WebAssembly.RuntimeError()`** 생성자는 WebAssembly에서 trap을 지정할 때마다 throw되는 새 WebAssembly `RuntimeError` 객체를 만듭니다.

Syntax
------


```js
new WebAssembly.RuntimeError(message, fileName, lineNumber);
```

### Parameters

`message` Optional

인간이 읽을 수있는 오류 설명.

`fileName` Optional
비표준

예외의 원인이 된 코드가 들어있는 파일의 이름입니다.

`lineNumber` Optional
비표준

예외의 원인이 된 코드의 행 번호입니다.

Properties
----------

*`RuntimeError` 생성자에는 고유 한 고유 속성이 없지만 프로토 타입 체인을 통해 일부 속성을 상속합니다.*

`WebAssembly.RuntimeError.prototype.constructor`

인스턴스의 프로토 타입을 작성한 함수를 지정합니다.

`WebAssembly.RuntimeError.prototype.message`

에러 메시지. ECMA-262는 `URIError`가 SpiderMonkey에서 자체 `message` 속성을 제공하도록 지정했지만 `Error.prototype.message`를 상속받습니다.

`WebAssembly.RuntimeError.prototype.name`

오류 이름. `Error`에서 상속됩니다.

`WebAssembly.RuntimeError.prototype.fileName`

이 오류를 발생시킨 파일의 경로입니다. `Error`에서 상속됩니다.

`WebAssembly.RuntimeError.prototype.lineNumber`

이 오류가 발생한 파일의 행 번호입니다. `Error`에서 상속됩니다.

`WebAssembly.RuntimeError.prototype.columnNumber`

이 오류가 발생한 행의 열 번호입니다. `Error`에서 상속됩니다.

`WebAssembly.RuntimeError.prototype.stack` (en-US)

스택 추적. `Error`에서 상속됩니다.

Methods
-------

*`RuntimeError` 생성자에는 자체 메서드가 없지만 프로토 타입 체인을 통해 일부 메서드를 상속합니다.*

`WebAssembly.RuntimeError.prototype.toSource()` (en-US)

동일한 오류로 평가 될 수있는 코드를 반환합니다. `Error`에서 상속됩니다.

`WebAssembly.RuntimeError.prototype.toString()`

지정된 `Error` 객체를 나타내는 문자열을 반환합니다. `Error`에서 상속됩니다.

Examples
--------

다음의 스니펫은, 새로운 RuntimeError 인스턴스를 작성해, 그 상세를 콘솔에 기록합니다.


```js
try {
  throw new WebAssembly.RuntimeError("Hello", "someFile", 10);
} catch (e) {
  console.log(e instanceof RuntimeError); // true
  console.log(e.message); // "Hello"
  console.log(e.name); // "RuntimeError"
  console.log(e.fileName); // "someFile"
  console.log(e.lineNumber); // 10
  console.log(e.columnNumber); // 0
  console.log(e.stack); // returns the location where the code was run
}
```

명세서
---

| Specification |
| --- |
| WebAssembly JavaScript Interface # exceptiondef-runtimeerror |
| ECMAScript Language Specification # sec-native-error-types-used-in-this-standard |

브라우저 호환성
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* WebAssembly overview page
* WebAssembly concepts
* Using the WebAssembly JavaScript API
WebAssembly.Global
==================

**`WebAssembly.Global`** 객체는 전역 변수 인스턴스를 나타내며 JavaScript 및 하나 이상의 `WebAssembly.Module` 인스턴스에서 가져오거나 내보낼 수 있습니다. 이렇게 하면 여러 모듈을 동적으로 연결할 수 있습니다.

생성자
---

`WebAssembly.Global()` (en-US)

새로운 `Global` 객체를 생성합니다.

전역 인스턴스
-------

모든 `Global` 인스턴스는 `Global()` 생성자의 프로토타입 객체에서 상속합니다. 모든 `Global` 인스턴스에 영향을 미치도록 수정할 수 있습니다.

### 인스턴스 속성

`Global.prototype.constructor`

이 객체의 인스턴스를 생성한 함수를 반환합니다. 기본적으로 이것은 `WebAssembly.Global()` 생성자입니다.

`Global.prototype[@@toStringTag]`

@@toStringTag (en-US) 프로퍼티의 초기값은 문자열 값 "WebAssembly.Global" 입니다.

`Global.prototype.value`

전역 변수 내부에 포함된 값 - 전역 값을 직접 설정하고 가져오는 데 사용할 수 있습니다.

### 인스턴스 메서드

`Global.prototype.valueOf()`

전역 변수 내부에 포함된 값을 반환하는 구식 메소드입니다.

Examples
--------

다음 예제에서는 `WebAssembly.Global()` 생성자를 사용하여 만드는 새 전역 인스턴스를 보여줍니다. 값이 0 인 변경 가능한 `i32` 유형으로 정의됩니다.

먼저 `Global.value` 속성을 사용하여 '42'로 전역 값이 변경되고, `global.wasm` 모듈에서 내보낸 `incGlobal()` 함수를 사용하여 43으로 변경됩니다. (이 함수는 주어진 값에 1을 더한 다음 새 값을 반환합니다).


```js
const output = document.getElementById("output");

function assertEq(msg, got, expected) {
  output.innerHTML += `Testing ${msg}: `;
  if (got !== expected)
    output.innerHTML += `FAIL!<br>Got: ${got}<br>Expected: ${expected}<br>`;
  else output.innerHTML += `SUCCESS! Got: ${got}<br>`;
}

assertEq("WebAssembly.Global exists", typeof WebAssembly.Global, "function");

const global = new WebAssembly.Global({ value: "i32", mutable: true }, 0);

WebAssembly.instantiateStreaming(fetch("global.wasm"), { js: { global } }).then(
  ({ instance }) => {
    assertEq(
      "getting initial value from wasm",
      instance.exports.getGlobal(),
      0,
    );
    global.value = 42;
    assertEq(
      "getting JS-updated value from wasm",
      instance.exports.getGlobal(),
      42,
    );
    instance.exports.incGlobal();
    assertEq("getting wasm-updated value from JS", global.value, 43);
  },
);
```


**Note**: GitHub에서 실행 중인 예제(running live on GitHub)를 볼 수 있습니다. source code도 참조하십시오.

명세서
---

| Specification |
| --- |
| WebAssembly JavaScript Interface # globals |

브라우저 호환성
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* WebAssembly overview page
* WebAssembly concepts
* Using the WebAssembly JavaScript API
* Import/Export mutable globals proposal
WebAssembly.instantiateStreaming()
==================================

**`WebAssembly.instantiateStreaming()`** 함수는 스트림 된 원본 소스에서 직접 WebAssembly 모듈을 컴파일하고 인스턴스화합니다. Wasm 코드를로드하는 가장 효율적이고 최적화 된 방법입니다.

Syntax
------


```js
WebAssembly.instantiateStreaming(source, importObject);
```

### Parameters

*source*

스트리밍, 컴파일 및 인스턴스화하려는 .wasm 모듈의 기본 소스를 나타내는 `Response` 객체 또는 promise.

*importObject* Optional

함수 또는 `WebAssembly.Memory` 객체와 같이 새로 생성 된 `Instance`로 가져올 값을 포함하는 객체입니다. 컴파일 된 모듈의 각 선언 된 가져 오기에 대해 하나의 일치하는 속성이 있어야합니다. 그렇지 않으면 WebAssembly.LinkError가 발생합니다.

### Return value

두 개의 필드를 포함하는 `ResultObject`로 해석되는 `Promise` :

* `module`: 컴파일 된 WebAssembly 모듈을 나타내는 `WebAssembly.Module` 객체입니다. 이 `Module`은 다시 인스턴스화되거나 postMessage() (en-US)를 통해 공유 될 수 있습니다.
* `instance`: Exported WebAssembly functions를 포함하는 `WebAssembly.Instance` 객체입니다.
### Exceptions

* 매개 변수 중 하나가 올바른 유형 또는 구조가 아니면 `TypeError`가 발생합니다.
* 작업작업이 실패하면 promise는 실패 원인에 따라 `WebAssembly.CompileError`, `WebAssembly.LinkError` 또는 `WebAssembly.RuntimeError`로 거부됩니다.
Examples
--------

다음 예제 (GitHub의 instantiate-streaming.html 데모보기 및 view it live)에서는 원본 소스에서 .wasm 모듈을 직접 스트리밍 한 다음 컴파일하고 인스턴스화합니다. 약속은 `ResultObject`로 충족됩니다.`instantiateStreaming()` 함수는 `Response` 객체에 대한 promise를 받아들이므로 직접 `fetch()` 호출을 전달할 수 있으며 응답을 수행하면 함수에 응답을 전달합니다.


```js
var importObject = { imports: { imported\_func: (arg) => console.log(arg) } };

WebAssembly.instantiateStreaming(fetch("simple.wasm"), importObject).then(
  (obj) => obj.instance.exports.exported\_func(),
);
```


그런 다음 `ResultObject`의 인스턴스 구성원에 액세스하고 포함 된 내 보낸 함수를 호출합니다.

명세서
---

| Specification |
| --- |
| WebAssembly Web API # dom-webassembly-instantiatestreaming |

브라우저 호환성
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* WebAssembly overview page
* WebAssembly concepts
* Using the WebAssembly JavaScript API
Tutorials
=========

이 페이지에는 다양한 형태의 웹 게임을 효과적으로 만들기 위해 중요한 여러가지 튜토리얼들을 포함하고 있습니다.

순수 JavaScript를 사용한 2D 게임 (en-US)

이 튜토리얼을 통해 여러분은 순수 JavaScript를 활용하여 간단한 게임을 만들어볼 수 있습니다. 렌더링, 이미지 그리기, 충돌 감지하기, 동작 원리, 승리/패배 구성하기 등 게임을 만들기 위해 필요한 기본적인 요소들을 구현하기 위해 `<canvas>` 사용법을 배우게 될 것입니다.

Phaser를 사용한 2D 게임 (en-US)

이 튜토리얼을 통해 여러분은 위 튜토리얼과 똑같은 게임을 만들어 볼 수 있을 것 입니다. 다만 이번에는 HTML5 게임 프레임워크인 Phaser를 이용하여 만들어 볼 것입니다. 게임을 만들기 위해 필요한 기본적인 요소들을 프레임워크를 활용하여 만드는 방법을 배우게 될 것입니다.

기기 수직/수평 기능을 이용한 2D 주사위 게임 (en-US)

이 튜토리얼에서는 `<canvas>` 가 제공하는 충돌 감지, 모양 놓기같은 기본적인 기능을 포함한 HTML5 2D 주사위 게임을 만들어 볼 것입니다. Device Orientation 기능과 Vibration (en-US) 기능을 활용한 모바일 게임이며 the Phaser프레임워크로 만들 것입니다.

Phaser를 사용한 2D 플랫폼 게임

이 튜토리얼 시리즈는 Phaser를 사용하여 스프라이트, 충돌, 물리학, 수집품 등과 같은 기본 사항을 다루는 간단한 플랫폼 게임을 만드는 방법을 보여줍니다.
순수한 자바스크립트를 이용한 2D 벽돌깨기 게임
==========================

* 다음 »

이 튜토리얼을 차례차례 진행하면서 우리는 HTML5 `<canvas>` 로 렌더되는 순수하게 JavaScript로만 쓰여진 간단한 **MDN 벽돌깨기** 게임을 만들 것입니다.

모든 과정은 플레이 가능하고 편집가능한 라이브 샘플을 포함하고 있습니다. 이 샘플을 통해, 여러분은 중간 스테이지들이 어떻게 보여져야 하는지 확인할 수 있습니다. 여러분은 이미지의 렌더링과 움직임, 충돌 감지, 컨트롤 메카니즘들과 승리와 패배 상태와 같은 기본적인 게임 원리들을 구현하기 위해서, `<canvas>`엘리먼트의 기본적인 사용 방법을 배우게 될 것입니다.

이 시리즈를 최대한 활용하려면 중급의 JavaScript 지식이 있어야 합니다. 이 튜토리얼을 끝낸 후에는 여러분은 스스로 간단한 웹 게임들을 만들 수 있게 될 것입니다.

![Gameplay screen from the game MDN Breakout where you can use your paddle to bounce the ball and destroy the brick field, with keeping the score and lives.](/ko/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/mdn-breakout-gameplay.png)

강의 내용
-----

모든 강의 내용과 우리가 함께 만드는 MDN 벽돌깨기 게임의 다른 버전들은 GitHub에서 찾을 수 있습니다.:

1. 캔버스 생성과 그리기
2. 공 움직이기 (en-US)
3. 벽으로 부터 튕겨나오기 (en-US)
4. 패들과 키보드 컨트롤 (en-US)
5. 게임 오버 (en-US)
6. 벽돌 필드 만들기 (en-US)
7. 충돌 감지 (en-US)
8. 점수 추적과 승리 (en-US)
9. 마우스 컨트롤 (en-US)
10. 마무리 (en-US)

웹 게임 개발의 확고한 지식을 얻기 위한 최고의 방법은 순수하게 JavaScript만 이용해서 시작하는 것입니다. 이후에, 여러분은 프로젝트에 프레임워크를 골라서 사용할 수도 있습니다. 프레임워크들은 JavaScript로 만들어진 도구일 뿐입니다. 따라서 여러분이 프레임워크를 사용하더라도, 프레임워크 밑에서 정확히 어떤 일이 일어나는지 알기 위해 언어를 배우는것이 좋습니다. 프레임워크들은 개발 속도를 올려주고, 게임의 지루한 부분들을 해결하는데 도움을 줍니다. 하지만 어떤 일들이 기대한대로 일어나지 않는다면, 여러분은 디버그를 시도하거나 여러분 스스로 순수하게 JavaScript만 이용한 솔루션을 작성할 수 도 있습니다.

**참고:** 만약 여러분이 게임 라이브러리를 이용한 2D 웹 게임 개발의 학습에 흥미가 있다면, 이 시리즈의 대응 파트인 2D breakout game using Phaser (en-US)를 살펴보시기 바랍니다.

**참고:** 이 시리즈의 내용들은 게임개발 워크숍의 재료로 쓰일 수 있습니다. 또한, 만약 여러분이 게임개발에 있어 강연을 원한다면 이 튜토리얼에 기초한 Gamedev Canvas Content Kit를 활용할 수 있습니다.

다음 단계
-----

좋습니다, 이제 시작하도록 합시다. 첫 번째 챕터인 캔버스 생성과 그리기 부터 시작합니다.

* 다음 »
2D breakout game using Phaser
=============================

* 다음 »

이 튜토리얼을 차례차례 진행하면서 우리는 HTML5 `<canvas>` 로 렌더되는 순수한 JavaScript로 쓰여진 간단한 MDN 벽돌깨기 게임을 만들 것입니다.

모든 과정은 플레이 가능하고 편집가능한 라이브 샘플을 포함하고 있습니다. 이 샘플을 통해, 여러분은 중간 스테이지들이 어떻게 보여져야 하는지 확인할 수 있습니다. 여러분은 이미지의 렌더링과 움직임, 충돌 감지, 컨트롤 메카니즘들과 승리와 패배 상태와 같은 기본적인 게임 원리들을 구현하기 위해서, `<canvas>`엘리먼트의 기본적인 사용 방법을 배우게 될 것입니다.

이 시리즈를 최대한 활용하려면 중급의 JavaScript 지식이 있어야 합니다. 이 튜토리얼을 끝낸 후에는 여러분은 스스로 간단한 웹 게임들을 만들 수 있게 될 것입니다.

![Gameplay screen from the game MDN Breakout where you can use your paddle to bounce the ball and destroy the brick field, with keeping the score and lives.](/ko/docs/Games/Tutorials/2D_breakout_game_Phaser/mdn-breakout-gameplay.png)

강의 내용
-----

모든 강의 내용과 우리가 함께 만드는 MDN 벽돌깨기 게임의 다른 버전들은 GitHub에서 찾을 수 있습니다.:

1. 캔버스 생성과 그리기
2. 공 움직이기 (en-US)
3. 벽으로 부터 튕겨나오기 (en-US)
4. 패들과 키보드 컨트롤 (en-US)
5. 게임 오버 (en-US)
6. 벽돌 필드 만들기 (en-US)
7. 충돌 감지 (en-US)
8. 점수 추적과 승리 (en-US)
9. 마우스 컨트롤 (en-US)
10. 마무리 (en-US)

웹 게임 개발의 확고한 지식을 얻기 위해 순수한 JavaScript로 시작하는 것은 최고의 방법입니다. 이후에, 여러분은 프로젝트에 프레임워크를 골라서 사용할 수도 있습니다. 프레임워크들은 JavaScript로 만들어진 툴일 뿐입니다. 따라서 여러분이 프레임워크를 사용하더라도, 프레임워크 밑에서 정확히 어떤 일이 어떤일이 일어나는지 알기 위해 언어를 배우는것은 좋은 일입니다. 프레임워크들은 개발 속도를 올려주고, 게임의 지루한 부분들을 해결하는데 도움을 줍니다. 하지만 어떤 일들이 기대한대로 일어나지 않는다면, 여러분은 디버그를 시도하거나 여러분 스스로 순수한 JavaScript로 솔루션을 작성할 수 도 있습니다.

**참고:** 만약 여러분이 게임 라이브러리를 이용한 2D 웹 게임 개발의 학습에 흥미가 있다면, 이 시리즈의 대응 파트인 2D breakout game using Phaser (en-US)를 살펴보시기 바랍니다.

**참고:** 이 시리즈의 내용들은 게임개발 워크숍의 재료로 쓰일 수 있습니다. 또한, 만약 여러분이 게임개발에 있어 강연을 원한다면 이 튜토리얼에 기초한 Gamedev Canvas Content Kit를 활용할 수 있습니다.

다음 단계
-----

좋습니다, 이제 시작하도록 합시다. 첫 번째 챕터인 캔버스 생성과 그리기 부터 시작합니다.

* 다음 »