File: parameterInitializersForwardReferencing1.js

package info (click to toggle)
node-typescript 3.3.3333-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 324,548 kB
  • sloc: makefile: 6; sh: 3
file content (88 lines) | stat: -rw-r--r-- 1,862 bytes parent folder | download | duplicates (5)
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
//// [parameterInitializersForwardReferencing1.ts]
let foo: string = "";

function f1 (bar = foo) { // unexpected compiler error; works at runtime
    var foo: number = 2;
    return bar; // returns 1
}

function f2 (bar = (baz = foo) => baz) { // unexpected compiler error; works at runtime
    var foo: number = 2;
    return bar(); // returns 1
}

function f3 (bar = foo, foo = 2) { // correct compiler error, error at runtime
    return bar;
}

function f4 (foo, bar = foo) {
    return bar
}

function f5 (a = a) {
    return a
}

function f6 (async = async) {
    return async
}

function f7({[foo]: bar}: any[]) {
    let foo: number = 2;
}

class Foo {
    constructor(public x = 12, public y = x) {}
}

function f8(foo1: string, bar = foo1) { }


//// [parameterInitializersForwardReferencing1.js]
var foo = "";
function f1(bar) {
    if (bar === void 0) { bar = foo; }
    var foo = 2;
    return bar; // returns 1
}
function f2(bar) {
    if (bar === void 0) { bar = function (baz) {
        if (baz === void 0) { baz = foo; }
        return baz;
    }; }
    var foo = 2;
    return bar(); // returns 1
}
function f3(bar, foo) {
    if (bar === void 0) { bar = foo; }
    if (foo === void 0) { foo = 2; }
    return bar;
}
function f4(foo, bar) {
    if (bar === void 0) { bar = foo; }
    return bar;
}
function f5(a) {
    if (a === void 0) { a = a; }
    return a;
}
function f6(async) {
    if (async === void 0) { async = async; }
    return async;
}
function f7(_a) {
    var _b = foo, bar = _a[_b];
    var foo = 2;
}
var Foo = /** @class */ (function () {
    function Foo(x, y) {
        if (x === void 0) { x = 12; }
        if (y === void 0) { y = x; }
        this.x = x;
        this.y = y;
    }
    return Foo;
}());
function f8(foo1, bar) {
    if (bar === void 0) { bar = foo1; }
}