Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Side by Side Diff: test/mjsunit/wasm/js-api.js

Issue 2653183003: [wasm] Memory buffer should be detached after Memory.Grow (Closed)
Patch Set: Ben's review Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/mjsunit/wasm/import-memory.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Flags: --expose-wasm --allow-natives-syntax 5 // Flags: --expose-wasm --allow-natives-syntax
6 6
7 if ((typeof drainJobQueue) != "function") { 7 if ((typeof drainJobQueue) != "function") {
8 drainJobQueue = () => { %RunMicrotasks() }; 8 drainJobQueue = () => { %RunMicrotasks() };
9 } 9 }
10 10
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 assertErrorMessage(() => memGrow.call({}), TypeError, 447 assertErrorMessage(() => memGrow.call({}), TypeError,
448 /called on incompatible Object/); 448 /called on incompatible Object/);
449 assertErrorMessage(() => memGrow.call(mem1, -1), RangeError, 449 assertErrorMessage(() => memGrow.call(mem1, -1), RangeError,
450 /bad Memory grow delta/); 450 /bad Memory grow delta/);
451 assertErrorMessage(() => memGrow.call(mem1, Math.pow(2,32)), RangeError, 451 assertErrorMessage(() => memGrow.call(mem1, Math.pow(2,32)), RangeError,
452 /bad Memory grow delta/); 452 /bad Memory grow delta/);
453 var mem = new Memory({initial:1, maximum:2}); 453 var mem = new Memory({initial:1, maximum:2});
454 var buf = mem.buffer; 454 var buf = mem.buffer;
455 assertEq(buf.byteLength, kPageSize); 455 assertEq(buf.byteLength, kPageSize);
456 assertEq(mem.grow(0), 1); 456 assertEq(mem.grow(0), 1);
457 // TODO(gdeepti): Pending spec clarification 457 assertTrue(buf !== mem.buffer);
458 // assertTrue(buf !== mem.buffer); 458 assertEq(buf.byteLength, 0);
459 // assertEq(buf.byteLength, 0);
460 buf = mem.buffer; 459 buf = mem.buffer;
461 assertEq(buf.byteLength, kPageSize); 460 assertEq(buf.byteLength, kPageSize);
462 assertEq(mem.grow(1), 1); 461 assertEq(mem.grow(1), 1);
463 // TODO(gdeepti): assertTrue(buf !== mem.buffer); 462 assertTrue(buf !== mem.buffer);
464 // TODO(gdeepti): assertEq(buf.byteLength, 0); 463 assertEq(buf.byteLength, 0);
465 buf = mem.buffer; 464 buf = mem.buffer;
466 assertEq(buf.byteLength, 2 * kPageSize); 465 assertEq(buf.byteLength, 2 * kPageSize);
467 assertErrorMessage(() => mem.grow(1), Error, /failed to grow memory/); 466 assertErrorMessage(() => mem.grow(1), Error, /failed to grow memory/);
468 assertEq(buf, mem.buffer); 467 assertEq(buf, mem.buffer);
469 468
470 // 'WebAssembly.Table' data property 469 // 'WebAssembly.Table' data property
471 let tableDesc = Object.getOwnPropertyDescriptor(WebAssembly, 'Table'); 470 let tableDesc = Object.getOwnPropertyDescriptor(WebAssembly, 'Table');
472 assertEq(typeof tableDesc.value, "function"); 471 assertEq(typeof tableDesc.value, "function");
473 assertTrue(tableDesc.writable); 472 assertTrue(tableDesc.writable);
474 assertFalse(tableDesc.enumerable); 473 assertFalse(tableDesc.enumerable);
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
697 assertTrue(result.instance instanceof Instance); 696 assertTrue(result.instance instanceof Instance);
698 } 697 }
699 } 698 }
700 assertInstantiateSuccess(emptyModule); 699 assertInstantiateSuccess(emptyModule);
701 assertInstantiateSuccess(emptyModuleBinary); 700 assertInstantiateSuccess(emptyModuleBinary);
702 assertInstantiateSuccess(emptyModuleBinary.buffer); 701 assertInstantiateSuccess(emptyModuleBinary.buffer);
703 assertInstantiateSuccess(importingModule, {'': {f: () => {}}}); 702 assertInstantiateSuccess(importingModule, {'': {f: () => {}}});
704 assertInstantiateSuccess(importingModuleBinary, {"":{f:()=>{}}}); 703 assertInstantiateSuccess(importingModuleBinary, {"":{f:()=>{}}});
705 assertInstantiateSuccess(importingModuleBinary.buffer, {"":{f:()=>{}}}); 704 assertInstantiateSuccess(importingModuleBinary.buffer, {"":{f:()=>{}}});
706 assertInstantiateSuccess(memoryImportingModuleBinary, {"": {"my_memory": scratch _memory}}); 705 assertInstantiateSuccess(memoryImportingModuleBinary, {"": {"my_memory": scratch _memory}});
OLDNEW
« no previous file with comments | « test/mjsunit/wasm/import-memory.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698