MCPcopy Index your code
hub / github.com/nodejs/node / testPackedFrozenArray1

Function testPackedFrozenArray1

deps/v8/test/mjsunit/object-freeze.js:401–460  ·  view source on GitHub ↗
(obj)

Source from the content-addressed store, hash-verified

399
400// Test packed element array built-in functions with freeze.
401function testPackedFrozenArray1(obj) {
402 assertTrue(Object.isSealed(obj));
403 // Verify that the value can't be written
404 obj1 = new Array(...obj);
405 var length = obj.length;
406 for (var i = 0; i < length-1; i++) {
407 obj[i] = 'new';
408 assertEquals(obj1[i], obj[i]);
409 }
410 // for symbol we cannot compare directly
411 assertTrue(typeof obj[length-1] == 'symbol');
412
413 // Verify that the length can't be written by builtins.
414 assertTrue(Array.isArray(obj));
415 assertThrows(function() { obj.pop(); }, TypeError);
416 assertThrows(function() { obj.push(); }, TypeError);
417 assertThrows(function() { obj.shift(); }, TypeError);
418 assertThrows(function() { obj.unshift(); }, TypeError);
419 assertThrows(function() { obj.copyWithin(0,0); }, TypeError);
420 assertThrows(function() { obj.fill(0); }, TypeError);
421 assertThrows(function() { obj.reverse(); }, TypeError);
422 assertThrows(function() { obj.sort(); }, TypeError);
423 assertThrows(function() { obj.splice(0); }, TypeError);
424 assertThrows(function() { obj.splice(0, 0); }, TypeError);
425 assertTrue(Object.isFrozen(obj));
426
427 // Verify search, filter, iterator
428 assertEquals(obj.lastIndexOf(1), 2);
429 assertEquals(obj.indexOf('a'), 4);
430 assertEquals(obj.indexOf(undefined), 0);
431 assertFalse(obj.includes(Symbol("test")));
432 assertTrue(obj.includes(undefined));
433 assertFalse(obj.includes(NaN));
434 assertTrue(obj.includes());
435 assertEquals(obj.find(x => x==0), undefined);
436 assertEquals(obj.findIndex(x => x=='a'), 4);
437 assertTrue(obj.some(x => typeof x == 'symbol'));
438 assertFalse(obj.every(x => x == -1));
439 var filteredArray = obj.filter(e => typeof e == "symbol");
440 assertEquals(filteredArray.length, 1);
441 assertEquals(obj.map(x => x), obj);
442 var countPositiveNumber = 0;
443 obj.forEach(function(item, index) {
444 if (item === 1) {
445 countPositiveNumber++;
446 assertEquals(index, 2);
447 }
448 });
449 assertEquals(countPositiveNumber, 1);
450 assertEquals(obj.length, obj.concat([]).length);
451 var iterator = obj.values();
452 assertEquals(iterator.next().value, undefined);
453 assertEquals(iterator.next().value, null);
454 var iterator = obj.keys();
455 assertEquals(iterator.next().value, 0);
456 assertEquals(iterator.next().value, 1);
457 var iterator = obj.entries();
458 assertEquals(iterator.next().value, [0, undefined]);

Callers 2

assertTrueFunction · 0.85
object-freeze.jsFile · 0.85

Calls 15

popMethod · 0.80
unshiftMethod · 0.80
fillMethod · 0.80
sortMethod · 0.80
includesMethod · 0.80
someMethod · 0.80
everyMethod · 0.80
concatMethod · 0.80
assertTrueFunction · 0.70
SymbolFunction · 0.70
findMethod · 0.65
filterMethod · 0.65

Tested by

no test coverage detected