tencent cloud

JavaScript Support
Last updated: 2025-03-25 18:15:55
JavaScript Support
Last updated: 2025-03-25 18:15:55

Execution restrictions

For security reasons, mini games do not support dynamic execution of JavaScript code. Specifically:
eval is not supported for executing JavaScript code.
new Function is not supported for creating functions.

Standard ECMAScript support

The mini games JavaScript Runtime Environment varies across different platforms, leading to differences in ECMAScript standard support.
To minimize these differences, the mini game base library includes a core-js Polyfill. core-js can fill in the missing standard APIs in the platform environment.
However, it is important to note that differences in platform support for ECMAScript syntax cannot be completely smoothed out. When you need to use advanced syntax, such as async/await, you will need to enable the "ES6 to ES5 conversion" feature to support these syntaxes.

APIs that cannot be polyfill

The following APIs cannot be used in some older versions of the client, so it is advisable to avoid using them: Proxy objects.

Differences from the standards

Promise timing differences

Due to limitations of iOS JavaScriptCore, Promise in iOS 15 and below is a polyfill simulated using setTimeout. This means that tasks triggered by Promise are treated as regular tasks rather than microtasks, leading to timing differences from the standard on iOS 15 and below.
There are no such differences on iOS 16 and above.
var arr = []

setTimeout(() => arr.push(6), 0)
arr.push(1)
const p = new Promise(resolve => {
arr.push(2)
resolve()
})
arr.push(3)
p.then(() => arr.push(5))
arr.push(4)
setTimeout(() => arr.push(7), 0)

setTimeout(() => {
// Expected output: [1, 2, 3, 4, 5, 6, 7]
// On iOS 15 mini game environment, the output will be: [1, 2, 3, 4, 6, 5, 7]
console.log(arr)
}, 1000)
For more information on the difference between regular tasks and microtasks, you can refer to In depth: Microtasks and the JavaScript runtime environment.



Was this page helpful?
You can also Contact Sales or Submit a Ticket for help.
Yes
No

Feedback