summaryrefslogtreecommitdiff
path: root/tests/node_compat/test/parallel/test-timers-args.js
blob: a7f25609bbf7061461766ddeb3113a54c7b089e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// deno-fmt-ignore-file
// deno-lint-ignore-file

// Copyright Joyent and Node contributors. All rights reserved. MIT license.
// Taken from Node 18.12.1
// This file is automatically generated by `tests/node_compat/runner/setup.ts`. Do not modify this file manually.

'use strict';
require('../common');
const assert = require('assert');

function range(n) {
  return 'x'.repeat(n + 1).split('').map(function(_, i) { return i; });
}

function timeout(nargs) {
  const args = range(nargs);
  setTimeout.apply(null, [callback, 1].concat(args));

  function callback() {
    assert.deepStrictEqual([].slice.call(arguments), args);
    if (nargs < 128) timeout(nargs + 1);
  }
}

function interval(nargs) {
  const args = range(nargs);
  const timer = setTimeout.apply(null, [callback, 1].concat(args));

  function callback() {
    clearInterval(timer);
    assert.deepStrictEqual([].slice.call(arguments), args);
    if (nargs < 128) interval(nargs + 1);
  }
}

timeout(0);
interval(0);