(function() {
    return
})();

(function() {
    return 1
})();

(function() {
    if (true)
        return 1;
    return false
})();

(function() {
    return {
        a: 1,
        b: 2
    }
})();

(function() {
    return function() {
        1
    }
})();

(function() {
    return a
        || b
        || c;
})();
