1/* 2 * Copyright (c) 2022 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/* 17 * @tc.name:allocatearraybuffer 18 * @tc.desc:test ArrayBuffer 19 * @tc.type: FUNC 20 * @tc.require: issueI5NO8G 21 */ 22var newTarget = function() {}.bind(null); 23var arrayBuffer = Reflect.construct(ArrayBuffer, [16], newTarget); 24print(arrayBuffer.length); 25 26/* 27 * @tc.name:allocatearraybuffer 28 * @tc.desc:test DataView 29 * @tc.type: FUNC 30 * @tc.require: issueI5NO8G 31 */ 32const dataview = new DataView(new ArrayBuffer(64)); 33dataview.setInt16(0,-1); 34print(dataview.getFloat64("cas")); 35 36const v32 = new Int32Array(10); 37for (let i = 0; i < v32.length; i++) { 38 v32[i] = i + 1; 39} 40const v36 = this.Atomics; 41print(v36.and(v32, this, v36)); 42 43function f() { 44 let a1 = new ArrayBuffer(1025*1025*1025); 45 let a2 = new ArrayBuffer(1025*1025*1025); 46 let a3 = new ArrayBuffer(1025*1025*1025); 47 let a4 = new ArrayBuffer(1025*1025*1025); 48 try { 49 let arr = new ArrayBuffer(10); 50 print(a1.byteLength + a2.byteLength + a3.byteLength + a4.byteLength + arr.byteLength); 51 } catch (error) { 52 print(error); 53 } 54} 55f(); 56ArkTools.forceFullGC(); 57f(); 58ArkTools.forceFullGC(); 59 60function SendableArrayBufferTest() { 61 try { 62 const o1 = {}; 63 const v3 = new Proxy(SendableArrayBuffer, o1); 64 new v3(); 65 } catch (error) { 66 print(error); 67 } 68} 69SendableArrayBufferTest()