mirror of
https://github.com/napi-rs/napi-rs.git
synced 2025-12-08 19:56:07 +00:00
52 lines
986 B
TypeScript
52 lines
986 B
TypeScript
import { createRequire } from 'node:module'
|
|
|
|
import { bench } from 'vitest'
|
|
|
|
const require = createRequire(import.meta.url)
|
|
|
|
const { TestClass } = require('./index.node')
|
|
|
|
function createClass() {
|
|
const testObject = new TestClass()
|
|
|
|
Object.defineProperty(testObject, '_miterLimit', {
|
|
value: 10,
|
|
configurable: false,
|
|
enumerable: false,
|
|
writable: true,
|
|
})
|
|
|
|
Object.defineProperty(testObject, '_lineJoin', {
|
|
value: 'miter',
|
|
configurable: false,
|
|
enumerable: false,
|
|
writable: true,
|
|
})
|
|
|
|
return testObject
|
|
}
|
|
|
|
bench('Get Set from native#u32', () => {
|
|
const o = createClass()
|
|
o.miterNative
|
|
o.miterNative = 1
|
|
})
|
|
|
|
bench('Get Set from JavaScript#u32', () => {
|
|
const o = createClass()
|
|
o.miter
|
|
o.miter = 1
|
|
})
|
|
|
|
bench('Get Set from native#string', () => {
|
|
const o = createClass()
|
|
o.lineJoinNative
|
|
o.lineJoinNative = 'bevel'
|
|
})
|
|
|
|
bench('Get Set from JavaScript#string', () => {
|
|
const o = createClass()
|
|
o.lineJoin
|
|
o.lineJoin = 'bevel'
|
|
})
|