Skip to content

Commit d36d2b3

Browse files
committed
Merge pull request microsoft#8771 from YuichiNukiyama/fix8505
add SharedArrayBuffer
2 parents 899f667 + 4e415eb commit d36d2b3

28 files changed

Lines changed: 364 additions & 11 deletions

Jakefile.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,10 @@ var es2016LibrarySourceMap = es2016LibrarySource.map(function (source) {
188188
return { target: "lib." + source, sources: ["header.d.ts", source] };
189189
});
190190

191-
var es2017LibrarySource = ["es2017.object.d.ts"];
191+
var es2017LibrarySource = [
192+
"es2017.object.d.ts",
193+
"es2017.sharedmemory.d.ts"
194+
];
192195

193196
var es2017LibrarySourceMap = es2017LibrarySource.map(function (source) {
194197
return { target: "lib." + source, sources: ["header.d.ts", source] };

src/compiler/commandLineParser.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,8 @@ namespace ts {
401401
"es2015.symbol": "lib.es2015.symbol.d.ts",
402402
"es2015.symbol.wellknown": "lib.es2015.symbol.wellknown.d.ts",
403403
"es2016.array.include": "lib.es2016.array.include.d.ts",
404-
"es2017.object": "lib.es2017.object.d.ts"
404+
"es2017.object": "lib.es2017.object.d.ts",
405+
"es2017.sharedmemory": "lib.es2017.sharedmemory.d.ts"
405406
},
406407
},
407408
description: Diagnostics.Specify_library_files_to_be_included_in_the_compilation_Colon

src/lib/es2017.d.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
/// <reference path="lib.es2016.d.ts" />
2-
/// <reference path="lib.es2017.object.d.ts" />
2+
/// <reference path="lib.es2017.object.d.ts" />
3+
/// <reference path="lib.es2017.sharedmemory.d.ts" />

src/lib/es2017.sharedmemory.d.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/// <reference path="lib.es2015.symbol.d.ts" />
2+
/// <reference path="lib.es2015.symbol.wellknown.d.ts" />
3+
4+
interface SharedArrayBuffer {
5+
/**
6+
* Read-only. The length of the ArrayBuffer (in bytes).
7+
*/
8+
readonly byteLength: number;
9+
10+
/*
11+
* The SharedArrayBuffer constructor's length property whose value is 1.
12+
*/
13+
length: number;
14+
/**
15+
* Returns a section of an SharedArrayBuffer.
16+
*/
17+
slice(begin:number, end?:number): SharedArrayBuffer;
18+
readonly [Symbol.species]: SharedArrayBuffer;
19+
readonly [Symbol.toStringTag]: "SharedArrayBuffer";
20+
}
21+
22+
interface SharedArrayBufferConstructor {
23+
readonly prototype: SharedArrayBuffer;
24+
new (byteLength: number): SharedArrayBuffer;
25+
}
26+
27+
declare var SharedArrayBuffer: SharedArrayBufferConstructor;
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
//// [useSharedArrayBuffer1.ts]
2+
3+
var foge = new SharedArrayBuffer(1024);
4+
var bar = foge.slice(1, 10);
5+
var len = foge.byteLength;
6+
7+
//// [useSharedArrayBuffer1.js]
8+
var foge = new SharedArrayBuffer(1024);
9+
var bar = foge.slice(1, 10);
10+
var len = foge.byteLength;
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
=== tests/cases/conformance/es2017/useSharedArrayBuffer1.ts ===
2+
3+
var foge = new SharedArrayBuffer(1024);
4+
>foge : Symbol(foge, Decl(useSharedArrayBuffer1.ts, 1, 3))
5+
>SharedArrayBuffer : Symbol(SharedArrayBuffer, Decl(lib.es2017.sharedmemory.d.ts, --, --), Decl(lib.es2017.sharedmemory.d.ts, --, --))
6+
7+
var bar = foge.slice(1, 10);
8+
>bar : Symbol(bar, Decl(useSharedArrayBuffer1.ts, 2, 3))
9+
>foge.slice : Symbol(SharedArrayBuffer.slice, Decl(lib.es2017.sharedmemory.d.ts, --, --))
10+
>foge : Symbol(foge, Decl(useSharedArrayBuffer1.ts, 1, 3))
11+
>slice : Symbol(SharedArrayBuffer.slice, Decl(lib.es2017.sharedmemory.d.ts, --, --))
12+
13+
var len = foge.byteLength;
14+
>len : Symbol(len, Decl(useSharedArrayBuffer1.ts, 3, 3))
15+
>foge.byteLength : Symbol(SharedArrayBuffer.byteLength, Decl(lib.es2017.sharedmemory.d.ts, --, --))
16+
>foge : Symbol(foge, Decl(useSharedArrayBuffer1.ts, 1, 3))
17+
>byteLength : Symbol(SharedArrayBuffer.byteLength, Decl(lib.es2017.sharedmemory.d.ts, --, --))
18+
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
=== tests/cases/conformance/es2017/useSharedArrayBuffer1.ts ===
2+
3+
var foge = new SharedArrayBuffer(1024);
4+
>foge : SharedArrayBuffer
5+
>new SharedArrayBuffer(1024) : SharedArrayBuffer
6+
>SharedArrayBuffer : SharedArrayBufferConstructor
7+
>1024 : number
8+
9+
var bar = foge.slice(1, 10);
10+
>bar : SharedArrayBuffer
11+
>foge.slice(1, 10) : SharedArrayBuffer
12+
>foge.slice : (begin: number, end?: number) => SharedArrayBuffer
13+
>foge : SharedArrayBuffer
14+
>slice : (begin: number, end?: number) => SharedArrayBuffer
15+
>1 : number
16+
>10 : number
17+
18+
var len = foge.byteLength;
19+
>len : number
20+
>foge.byteLength : number
21+
>foge : SharedArrayBuffer
22+
>byteLength : number
23+
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
tests/cases/conformance/es2017/useSharedArrayBuffer2.ts(2,16): error TS2304: Cannot find name 'SharedArrayBuffer'.
2+
3+
4+
==== tests/cases/conformance/es2017/useSharedArrayBuffer2.ts (1 errors) ====
5+
6+
var foge = new SharedArrayBuffer(1024);
7+
~~~~~~~~~~~~~~~~~
8+
!!! error TS2304: Cannot find name 'SharedArrayBuffer'.
9+
var bar = foge.slice(1, 10);
10+
var len = foge.byteLength;
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
//// [useSharedArrayBuffer2.ts]
2+
3+
var foge = new SharedArrayBuffer(1024);
4+
var bar = foge.slice(1, 10);
5+
var len = foge.byteLength;
6+
7+
//// [useSharedArrayBuffer2.js]
8+
var foge = new SharedArrayBuffer(1024);
9+
var bar = foge.slice(1, 10);
10+
var len = foge.byteLength;
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
tests/cases/conformance/es2017/useSharedArrayBuffer3.ts(2,16): error TS2304: Cannot find name 'SharedArrayBuffer'.
2+
3+
4+
==== tests/cases/conformance/es2017/useSharedArrayBuffer3.ts (1 errors) ====
5+
6+
var foge = new SharedArrayBuffer(1024);
7+
~~~~~~~~~~~~~~~~~
8+
!!! error TS2304: Cannot find name 'SharedArrayBuffer'.
9+
var bar = foge.slice(1, 10);
10+
var len = foge.byteLength;

0 commit comments

Comments
 (0)