1// Copyright 2021 the V8 project authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5// Flags: --allow-natives-syntax --harmony-import-assertions 6 7var result1; 8var result2; 9var result3; 10var result4; 11var result5; 12var result6; 13var result7; 14var result8; 15var result9; 16var result10; 17import('modules-skip-1.json', null).then( 18 () => assertUnreachable('Should have failed due to non-object parameter'), 19 error => result1 = error.message); 20import('modules-skip-1.json', 7).then( 21 () => assertUnreachable('Should have failed due to non-object parameter'), 22 error => result2 = error.message); 23import('modules-skip-1.json', 'string').then( 24 () => assertUnreachable('Should have failed due to non-object parameter'), 25 error => result3 = error.message); 26import('modules-skip-1.json', { assert: null}).then( 27 () => assertUnreachable('Should have failed due to bad assert object'), 28 error => result4 = error.message); 29import('modules-skip-1.json', { assert: 7}).then( 30 () => assertUnreachable('Should have failed due to bad assert object'), 31 error => result5 = error.message); 32import('modules-skip-1.json', { assert: 'string'}).then( 33 () => assertUnreachable('Should have failed due to bad assert object'), 34 error => result6 = error.message); 35import('modules-skip-1.json', { assert: { a: null }}).then( 36 () => assertUnreachable('Should have failed due to bad assert object'), 37 error => result7 = error.message); 38import('modules-skip-1.json', { assert: { a: undefined }}).then( 39 () => assertUnreachable('Should have failed due to bad assertion value'), 40 error => result8 = error.message); 41import('modules-skip-1.json', { assert: { a: 7 }}).then( 42 () => assertUnreachable('Should have failed due to bad assertion value'), 43 error => result9 = error.message); 44 import('modules-skip-1.json', { assert: { a: { } }}).then( 45 () => assertUnreachable('Should have failed due to bad assertion value'), 46 error => result10 = error.message); 47 48%PerformMicrotaskCheckpoint(); 49 50const argumentNotObjectError = 'The second argument to import() must be an object'; 51const assertOptionNotObjectError = 'The \'assert\' option must be an object'; 52const assertionValueNotStringError = 'Import assertion value must be a string'; 53 54assertEquals(argumentNotObjectError, result1); 55assertEquals(argumentNotObjectError, result2); 56assertEquals(argumentNotObjectError, result3); 57assertEquals(assertOptionNotObjectError, result4); 58assertEquals(assertOptionNotObjectError, result5); 59assertEquals(assertOptionNotObjectError, result6); 60assertEquals(assertionValueNotStringError, result7); 61assertEquals(assertionValueNotStringError, result8); 62assertEquals(assertionValueNotStringError, result9); 63assertEquals(assertionValueNotStringError, result10); 64