idlize

Форк
0
/
wrap_object_literal.test.ts 
57 строк · 1.7 Кб
1
/*
2
 * Copyright (c) 2022-2023 Huawei Device Co., Ltd.
3
 * Licensed under the Apache License, Version 2.0 (the "License");
4
 * you may not use this file except in compliance with the License.
5
 * You may obtain a copy of the License at
6
 *
7
 * http://www.apache.org/licenses/LICENSE-2.0
8
 *
9
 * Unless required by applicable law or agreed to in writing, software
10
 * distributed under the License is distributed on an "AS IS" BASIS,
11
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
 * See the License for the specific language governing permissions and
13
 * limitations under the License.
14
 */
15

16
import { Context } from "./context.test"
17
import { checkDump } from "./util.test"
18
import { assert } from "chai"
19

20
const someId = "xxx"
21

22
suite("Wrapping literals in compute", () => {
23

24
    test("Object literal is wrapped in compute", () => {
25
        /** @memo */
26
        function foo(a: any): any {
27
            return a
28
        }
29
        let result: any
30
        /** @memo:entry */
31
        function start(__memo_context: Context, __memo_id: any) {
32
            result = foo({x: 17, y: 19})
33
        }
34
        start(new Context(), someId)
35
        assert.equal(result.x, 17)
36
        assert.equal(result.y, 19)
37
    })
38

39
    test("Arrow function is wrapped in compute", () => {
40
        let counter = 0
41
        /** @memo */
42
        function arrowFunctionReceiver(a: any) {
43
            counter++
44
        }
45
        /** @memo:entry */
46
        function start(__memo_context: Context, __memo_id: any) {
47
            arrowFunctionReceiver(() => {})
48
        }
49
        start(new Context(), someId)
50
        assert.equal(counter, 1)
51
    })
52

53

54
    for (let name of ["foo"]) {
55
        checkDump(name, "wrap_object_literal")
56
    }
57
})
58

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.