Esempio n. 1
0
        public void JsDataViewInfoCanBeRetrieved()
        {
            using (var runtimeHandle = Engine.JsCreateRuntime(JavaScriptRuntimeAttributes.None, null))
            {
                using (var contextHandle = Engine.JsCreateContext(runtimeHandle))
                {
                    Engine.JsSetCurrentContext(contextHandle);

                    var arrayBufferHandle = Engine.JsCreateArrayBuffer(50);
                    var dataViewHandle    = Engine.JsCreateDataView(arrayBufferHandle, 0, 50);

                    Assert.True(dataViewHandle != JavaScriptValueSafeHandle.Invalid);

                    var handleType = Engine.JsGetValueType(dataViewHandle);
                    Assert.True(handleType == JsValueType.DataView);

                    var dataViewInfoHandle = Engine.JsGetDataViewInfo(dataViewHandle, out uint byteOffset, out uint byteLength);
                    Assert.True(byteOffset == 0);
                    Assert.True(byteLength == 50);
                    Assert.True(dataViewInfoHandle != JavaScriptValueSafeHandle.Invalid);
                    handleType = Engine.JsGetValueType(dataViewInfoHandle);
                    Assert.True(handleType == JsValueType.ArrayBuffer);

                    dataViewInfoHandle.Dispose();
                    arrayBufferHandle.Dispose();
                    dataViewHandle.Dispose();
                }
            }
        }