Skip to content

Commit 4e415eb

Browse files
add SharedArrayBuffer
fix
1 parent 3f9efa0 commit 4e415eb

30 files changed

Lines changed: 368 additions & 15 deletions

Jakefile.js

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

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

192195
var es2017LibrarySourceMap = es2017LibrarySource.map(function (source) {
193196
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
@@ -391,7 +391,8 @@ namespace ts {
391391
"es2015.symbol": "lib.es2015.symbol.d.ts",
392392
"es2015.symbol.wellknown": "lib.es2015.symbol.wellknown.d.ts",
393393
"es2016.array.include": "lib.es2016.array.include.d.ts",
394-
"es2017.object": "lib.es2017.object.d.ts"
394+
"es2017.object": "lib.es2017.object.d.ts",
395+
"es2017.sharedmemory": "lib.es2017.sharedmemory.d.ts"
395396
},
396397
},
397398
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;

tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.symbols

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -562,9 +562,9 @@ class ListWrapper {
562562
>ListWrapper : Symbol(ListWrapper, Decl(staticAnonymousTypeNotReferencingTypeParameter.ts, 38, 1))
563563
>l : Symbol(l, Decl(staticAnonymousTypeNotReferencingTypeParameter.ts, 113, 43))
564564
>T : Symbol(T, Decl(staticAnonymousTypeNotReferencingTypeParameter.ts, 113, 16))
565-
>JSON.stringify : Symbol(JSON.stringify, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
565+
>JSON.stringify : Symbol(JSON.stringify, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
566566
>JSON : Symbol(JSON, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
567-
>stringify : Symbol(JSON.stringify, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
567+
>stringify : Symbol(JSON.stringify, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
568568
>l : Symbol(l, Decl(staticAnonymousTypeNotReferencingTypeParameter.ts, 113, 43))
569569

570570
static maximum<T>(dit: typeof ListWrapper, list: T[], predicate: (t: T) => number): T {

tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.types

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -662,9 +662,9 @@ class ListWrapper {
662662
>l : T[]
663663
>T : T
664664
>JSON.stringify(l) : string
665-
>JSON.stringify : { (value: any): string; (value: any, replacer: (key: string, value: any) => any): string; (value: any, replacer: any[]): string; (value: any, replacer: (key: string, value: any) => any, space: string | number): string; (value: any, replacer: any[], space: string | number): string; }
665+
>JSON.stringify : { (value: any, replacer?: (key: string, value: any) => any, space?: string | number): string; (value: any, replacer?: (number | string)[], space?: string | number): string; }
666666
>JSON : JSON
667-
>stringify : { (value: any): string; (value: any, replacer: (key: string, value: any) => any): string; (value: any, replacer: any[]): string; (value: any, replacer: (key: string, value: any) => any, space: string | number): string; (value: any, replacer: any[], space: string | number): string; }
667+
>stringify : { (value: any, replacer?: (key: string, value: any) => any, space?: string | number): string; (value: any, replacer?: (number | string)[], space?: string | number): string; }
668668
>l : T[]
669669

670670
static maximum<T>(dit: typeof ListWrapper, list: T[], predicate: (t: T) => number): T {
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;

0 commit comments

Comments
 (0)