Open
Description
opened on Nov 17, 2024
The test output is really hard to interpret, so I don’t know where the problem is. I’m running it just on CI.
Click to show the log
$ ./configure --cc-opt='-Os' --ld-opt='-Os'
$ make njs
...
$ make test
spawntest/test262 --binary=build/njs
-nottycopy njs
interactive njs (njs:0.8.7)
>> njs.version
'0.8.7'
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> var a = 1
undefined
>>
>> a *= 2
2
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> function a() { return 1; }
undefined
>>
>> a();
1
>>
>> function a() { return 2; }
undefined
>>
>> a();
2
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> �
$262 Float64Array process
__proto__ Function Promise
AggregateError global propertyIsEnumerable
Array globalThis RangeError
ArrayBuffer hasOwnProperty ReferenceError
atob Infinity RegExp
Boolean Int16Array require
btoa Int32Array setImmediate
Buffer Int8Array setTimeout
clearTimeout InternalError String
console isFinite Symbol
constructor isNaN SyntaxError
crypto isPrototypeOf TextDecoder
DataView JSON TextEncoder
Date Math toString
decodeURI MemoryError TypeError
decodeURIComponent NaN Uint16Array
encodeURI njs Uint32Array
encodeURIComponent Number Uint8Array
Error Object Uint8ClampedArray
eval parseFloat undefined
EvalError parseInt URIError
Float32Array print valueOf
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
test/buffer.t.js:
Bus error (core dumped)
>> Object
[Function: Object]
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
h
Math {
}
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
le
Console {
dump: [Function: dump],
error: [Function: error],
info: [Function: info],
log: [Function: log],
time: [Function: time],
timeEnd: [Function: timeEnd],
warn: [Function: warn]
}
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
console constructor
>> cons
Thrown:
ReferenceError: "cons" is not defined
at main (shell:1)
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
TypeError.__proto__ TypeError.isPrototypeOf
TypeError.apply TypeError.length
TypeError.arguments TypeError.name
TypeError.bind TypeError.propertyIsEnumerable
TypeError.call TypeError.prototype
TypeError.caller TypeError.toString
TypeError.constructor TypeError.valueOf
TypeError.hasOwnProperty
>> TypeError.
Thrown:
SyntaxError: Unexpected end of input in shell:1
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
TypeError.__proto__ TypeError.isPrototypeOf
TypeError.apply TypeError.length
TypeError.arguments TypeError.name
TypeError.bind TypeError.propertyIsEnumerable
TypeError.call TypeError.prototype
TypeError.caller TypeError.toString
TypeError.constructor TypeError.valueOf
TypeError.hasOwnProperty
>> TypeError.
Thrown:
SyntaxError: Unexpected end of input in shell:1
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
t
Object.getOwnPropertyDescriptor Object.getOwnPropertySymbols
Object.getOwnPropertyDescriptors Object.getPrototypeOf
Object.getOwnPropertyNames
>> Object.get
Object.getOwnPropertyDescriptor Object.getOwnPropertySymbols
Object.getOwnPropertyDescriptors Object.getPrototypeOf
Object.getOwnPropertyNames
>> Object.get
undefined
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
JSON.__proto__ JSON.propertyIsEnumerable
JSON.constructor JSON.stringify
JSON.hasOwnProperty JSON.toString
JSON.isPrototypeOf JSON.valueOf
JSON.parse
>> JSON.
Thrown:
SyntaxError: Unexpected end of input in shell:1
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
decodeURI decodeURIComponent
omponent
[Function: decodeURIComponent]
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> 1.
1
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> 1..
Thrown:
SyntaxError: Unexpected end of input in shell:1
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> 'abc'.
Thrown:
SyntaxError: Unexpected end of input in shell:1
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> var AA = 1; var AAA = 2
undefined
>>
AA AAA
>> AA
1
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> var zz = 1
undefined
>>
z
2
.exit
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> unknown_var
Thrown:
ReferenceError: "unknown_var" is not defined
at main (shell:1)
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> unknown_var.
Thrown:
SyntaxError: Unexpected end of input in shell:1
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> var o = {zz:1, zb:2}
undefined
>>
o.zb o.zz
>> o.z
undefined
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> var d = new Date()
undefined
>>
d.toDateString d.toLocaleDateString d.toString
d.toISOString d.toLocaleString d.toTimeString
d.toJSON d.toLocaleTimeString d.toUTCString
>> d.to
undefined
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> var o = {a:new Date()}
undefined
>>
o.a.toDateString o.a.toLocaleDateString o.a.toString
o.a.toISOString o.a.toLocaleString o.a.toTimeString
o.a.toJSON o.a.toLocaleTimeString o.a.toUTCString
>> o.a.to
undefined
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> var o = {a:1,b:2,333:'t'}
undefined
>>
33
Thrown:
SyntaxError: Unexpected token ".333" in shell:1
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> var a = Array(5000000); a.aab = 1; a.aac = 2
2
>>
a.__proto__ a.includes a.shift
a.aab a.indexOf a.slice
a.aac a.isPrototypeOf a.some
a.concat a.join a.sort
a.constructor a.keys a.splice
a.copyWithin a.lastIndexOf a.toReversed
a.entries a.length a.toSorted
a.every a.map a.toSpliced
a.fill a.pop a.toString
a.filter a.propertyIsEnumerable a.unshift
a.find a.push a.valueOf
a.findIndex a.reduce a.values
a.forEach a.reduceRight
a.hasOwnProperty a.reverse
>> a.
Thrown:
SyntaxError: Unexpected end of input in shell:1
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> var a = new Uint8Array([5,6,7,8,8]); a.aab = 1; a.aac = 2
2
>>
a.0 a.every a.propertyIsEnumerable
a.1 a.fill a.reduce
a.2 a.filter a.reduceRight
a.3 a.find a.reverse
a.4 a.findIndex a.set
a.__proto__ a.forEach a.slice
a.aab a.hasOwnProperty a.some
a.aac a.includes a.sort
a.buffer a.indexOf a.subarray
a.byteLength a.isPrototypeOf a.toReversed
a.byteOffset a.join a.toSorted
a.BYTES_PER_ELEMENT a.keys a.toString
a.constructor a.lastIndexOf a.valueOf
a.copyWithin a.length a.values
a.entries a.map
>> a.
Thrown:
SyntaxError: Unexpected end of input in shell:1
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> console[Symbol.toStringTag]
'Console'
>>
>> Object.prototype.toString.call(console)
'[object Console]'
>>
>> console.toString()
'[object Console]'
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> console.log.length
0console.log()
>>
>> console.log()
undefined
>>
>> console.log('')
undefined
>>
>> console.log(1)
1
undefined
>>
>> console.log(1, 'a')
1
a
undefined
>>
>> print(1, 'a')
1
a
undefined
>>
>> console.log('\tабв\nгд')
абв
гд
undefined
>>
>> console.error(42)
E: 42
undefined
>>
>> console.info(23)
23
undefined
>>
>> console.warn(37)
W: 37
undefined
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> console.time()
undefined
>>
console.timeEnd()
>> console.timeEnd()
default: 0.622199ms
undefined
>>
>> console.time(undefined)
undefined
>>
console.timeEnd(undefined)
>> console.timeEnd(undefined)
default: 0.474359ms
undefined
>>
>> console.time('abc')
undefined
>>
>> console.time('abc')
Timer "abc" already exists.
undefined
>>
>> console.timeEnd('abc')
abc: 1.261118ms
undefined
>>
>> console.time(true)
undefined
>>
>> console.timeEnd(true)
true: 1.291078ms
undefined
>>
>> console.time(42)
undefined
>>
console.timeEnd(42)
>> console.timeEnd(42)
42: 0.540039ms
undefined
>>
>> console.timeEnd()
Timer "default" doesn’t exist.
undefined
>>
console.timeEnd('abc')
>> console.timeEnd('abc')
Timer "abc" doesn’t exist.
undefined
>>
>> console.time('abc')
undefined
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> var print = console.log.bind(console); print(1, 'a', [1, 2])
1
a
[1,2]
undefined
>>
>> var print = console.log.bind(console); print(console.a.a)
Thrown:
TypeError: cannot get property "a" of undefined
at main (shell:1)
>>
>> print(console.a.a)
Thrown:
TypeError: cannot get property "a" of undefined
at main (shell:1)
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> JSON.parse(Error())
Thrown:
SyntaxError: Unexpected token at position 0
at JSON.parse (native)
at main (shell:1)
console.a.a
>>
>> console.a.a
Thrown:
TypeError: cannot get property "a" of undefined
at main (shell:1)
.exit
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> try { console.log({ toString: function() { throw 'test'; } }) } catch (e) {}
{toString:[Function: toString]}
undefined
>>
>> function f() { throw 't' }; try { console.log({ toString: function() { return � f() } }) } catch (e) {}
{toString:[Function: toString]}
undefined
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> (function() { throw 'test' })()
Thrown:
test
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> function f() { return ({}.a.a); }
undefined
>>
>> var e; try {f()} catch (ee) {e = ee}
undefined
>>
>> Object.keys(null)
Thrown:
TypeError: cannot convert null argument to object
at Object.keys (native)
at main (shell:1)
>>
>> e
TypeError: cannot get property "a" of undefined
at unknown (native)
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> '絵文字'
'絵文字'
>>
>> var v = 'абвгдеёжзийкл';v[10]
'й'
>>
>>
>> .exit
exiting
spawn -nottycopy njs
gcc -Os -o build/njs_unit_test -Isrc -Iexternal -Ibuild -I/usr/include/libxml2 \
-pipe -fPIC -fvisibility=hidden -O -W -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wmissing-prototypes -g -fexcess-precision=standard -Os -Os -fstack-clash-protection -Wformat -Werror=format-security \
-MMD -MF build/test/njs_unit_test.dep -MT build/njs_unit_test.c \
build/test/njs_externals_test.o \
src/test/njs_unit_test.c build/libnjs.a \
-Os -lm -lpcre -lcrypto -lxml2 -lz
interactive njs (njs:0.8.7)
>> var t = setImmediate(console.log, 'a', 'aa')
undefined
a
aa
>>
.exit
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> var a = 1 + 1; setTimeout(function (x) {a = x}, 0, 'a'); a
2
>>
a
>> a
'a'
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> setTimeout(function () {}, 1, 'a')
Thrown:
InternalError: njs_set_timer(): async timers unsupported
at setTimeout (native)
at main (shell:1)
.exit
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> var a = 1 + 1; setTimeout(function (x) { setTimeout(function (y) {a = y}, 0, �x)}, 0, 'a'); a
2
>>
>> a
'a'
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> var a = 1 + 1; setImmediate(function (x) { setImmediate(function (y) {a = y}, � x)}, 'a'); a
2a
>>
>> a
'a'
.exit
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> var i = 0; (function x() { if (i < 10) setImmediate(x); i++; })()
undefined
>>
>> i
11
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> var a = 0, t = setImmediate(function() {a = 1}); clearTimeout(t)
undefined
>>
>> a
0
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> var i = 0; (function x() { if (i < 3) setImmediate(x); i++; throw 'Oops';})() �
Thrown:
Oops
Thrown:
Oops
Thrown:
Oops
Thrown:
Oops
>>
>> i
4
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> var i = 0, queue = []; (function x() { if (i < 5) setImmediate(x); queue.push �(i++); })()
undefined
>>
>> queue.toString()
'0,1,2,3,4,5'
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> setImmediate(() => { console.log('x'); return Promise.reject('xx'); })
0
x
Thrown:
Error: unhandled promise rejection: xx
>>
>> setImmediate(() => { console.log('x'); return Promise.reject('xx'); })
1
x
Thrown:
Error: unhandled promise rejection: xx
>>
>> 42
42
>>
>>
>> .exit
exiting
PATH="build:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" LANG=C.UTF-8 TERM=screen expect -f test/shell_test_njs.exp
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> njs.version
'0.8.7'
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> console.dump()
undefined
>>
>> console.dump(1)
1
undefined
>>
>> console.dump(1, 'a')
1
a
undefined
>>
>> var print = console.dump.bind(console); print(1, 'a', [1, 2])
1
a
[
1,
2
]
undefined
>>
>> var print = console.log.bind(console); print(console.a.a)
Thrown:
TypeError: cannot get property "a" of undefined
at main (shell:1)
>>
>> print(console.a.a)
Thrown:
TypeError: cannot get property "a" of undefined
at main (shell:1)
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> console.ll()
Thrown:
TypeError: (intermediate value)["ll"] is not a function
at main (shell:1)
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> console.log.length
0
.exit
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> console.info(console.a.a)
Thrown:
TypeError: cannot get property "a" of undefined
at console.info (native)
at main (shell:1)
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> var o = {toString: function(){}, log: console.log}
undefined
>>
>> o
{
toString: [Function: toString],
log: [Function: log]
}
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> [1, new Number(2), 'a', new String('αβZγ'), true, new Boolean(false)]
[
1,
[Number: 2],
'a',
[String: 'αβZγ'],
true,
[Boolean: false]
]
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> [undefined,,null]
[
undefined,
<empty>,
null
]
.exit
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> [InternalError(),TypeError('msg'), new RegExp(), /^undef$/m, new Date(0)]
[
InternalError,
TypeError: msg,
/(?:)/,
/^undef$/m,
1970-01-01T00:00:00.000Z
]
.exit
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> "\r\0\""
'\r\u0000"'
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> [{a:1}]
.exit
[
{
a: 1
}
]
>>
>>
>> .exit
exiting
spawn -nottycopy njs -d
interactive njs (njs:0.8.7)
>> 1+1
shell:main
1 | 00000 ADD 0123 0133 0133
1 | 00016 STOP 0123
2
>>
>> __unknown
shell:main
1 | 00000 GLOBAL GET 0223 0023 0233
1 | 00016 REFERENCE ERROR
1 | 00032 STOP 0223
Thrown:
ReferenceError: "__unknown" is not defined
at main (shell:1)
>>
>> for (var n in [1]) {try {break} finally{}}
shell:main
1 | 00000 ARRAY 0423 1
1 | 00016 PROP INIT 0133 0423 0333
1 | 00032 PROP FOREACH 0523 0423 92
1 | 00048 TRY START 0623 0723 44
1 | 00064 JUMP 16
1 | 00072 TRY END 32
1 | 00080 TRY BREAK 0723 -8
1 | 00092 CATCH 0623 12
1 | 00104 TRY FINALLY 0623 0723 12 40
0 | 00124 PROP NEXT 0323 0423 0523 -76
1 | 00144 STOP 0033
undefined
>>
>> (function() {try {return} finally{}})()
shell:main
1 | 00000 FUNCTION 0823 F7719E00 0000
1 | 00016 FUNCTION FRAME 0823 0
1 | 00032 FUNCTION CALL 0823
1 | 00040 STOP 0823
shell:
1 | 00000 TRY START 0203 0303 52
1 | 00016 TRY RETURN 0303 0033 24
1 | 00032 TRY END 32
1 | 00040 TRY BREAK 0303 -8
1 | 00052 CATCH 0203 12
1 | 00064 TRY FINALLY 0203 0303 12 16
1 | 00084 RETURN 0033
undefined
>>
.exit
>>
>> .exit
exiting
spawn -nottycopy njs -p test/js/module/ -p test/js/module/libs/
interactive njs (njs:0.8.7)
>> import lib1 from 'lib1.js'; import lib2 from 'lib1.js'
undefined
>>
>> lib2.inc()
undefined
>>
>> lib1.get()
1
>>
>> import ref from 'ref_exception.js'
undefined
>>
>> build/njs_unit_test
test/buffer.t.js FAILED
TOTAL: FAILED [131/132]
make: *** [build/Makefile:981: test262_njs] Error 1
make: *** Waiting for unfinished jobs....
script tests: PASSED [5401/5401]
safe script tests: PASSED [5/5]
denormals tests: PASSED [9/9]
webcrypto tests: PASSED [3/3]
xml tests: PASSED [46/46]
module tests: PASSED [6/6]
fs module tests: PASSED [54/54]
crypto module tests: PASSED [41/41]
querystring module tests: PASSED [72/72]
externals tests: PASSED [114/114]
async handler tests: PASSED [2/2]
shared tests: PASSED [36/36]
interactive tests: PASSED [32/32]
backtraces tests: PASSED [35/35]
timezone tests: PASSED [28/28]
regexp optional tests: PASSED [16/16]
vm_json tests: PASSED [6/6]
vm_value tests: PASSED [8/8]
vm_internal_api tests: PASSED [31/31]
TOTAL: PASSED [5945/5945]
var ref
Thrown:
SyntaxError: "ref" has already been declared in shell:1
>>
>> import ref from 'ref_exception.js'
Thrown:
SyntaxError: "ref" has already been declared in shell:1
>>
>>
>> .exit
exiting
spawn -nottycopy njs -s
interactive njs (njs:0.8.7)
>> var fs = require('fs')
Thrown:
Error: Cannot load module "fs"
at require (native)
at main (shell:1)
>>
.exit
>>
>> .exit
exiting
spawn -nottycopy njs -s
interactive njs (njs:0.8.7)
>> var crypto = require('crypto')
undefined
>>
>>
>> .exit
exiting
spawn -nottycopy njs -u
interactive njs (njs:0.8.7)
>> new Function()
Thrown:
TypeError: function constructor is disabled in "safe" mode
at Function (native)
at main (shell:1)
>>
>> (new Function('return this'))() === globalThis
true
>>
>> new Function('return this;')
new Function('return thi')
[Function: anonymous]
>>
>> new Function('return thi')
Thrown:
TypeError: function constructor is disabled in "safe" mode
at Function (native)
at main (shell:1)
.exit
>>
>>
>> .exit
exiting
spawn -nottycopy njs -m
interactive njs (njs:0.8.7)
>> typeof this
'undefined'
>>
>> (() => typeof this)()
'undefined'
>>
>> this.NaN
Thrown:
TypeError: cannot get property "NaN" of undefined
at main (shell:1)
>>
>>
>> .exit
exiting
spawn -nottycopy njs
interactive njs (njs:0.8.7)
>> typeof this
'object'
>>
>> (() => typeof this)()
'object'
>>
>> this.NaN
NaN
>>
>>
.exit
>> .exit
exiting
>>> ERROR: njs: check failed
Complete CI log: https://gitlab.alpinelinux.org/alpine/aports/-/jobs/1608843
Your environment
- Version of njs: 0.8.7 (without QuickJS)
- OS: Alpine Linux Edge
Activity