Comments (9)
It means that the test silently failed to complete due to an unforeseen error.
from creepjs.
like which error bro any examples
from creepjs.
It can be any error produced by the client. There should be none. Are you seeing - failed prototype test execution
in a clean browser?
from creepjs.
no only when using proxied object
from creepjs.
get(target, ctx) {
var methods = ["call", "bind", "apply", "toString", "string"];
if(methods.includes(ctx)) {
return target[ctx].bind(target);
} else if(typeof ctx === 'symbol') {
return target[ctx];
} else {
return target.bind(target);
}
}
like this when using proxy
from creepjs.
I see. It's likely a side effect of the way that proxy object is written. I have no solution, but you can run the test script and log the error. Let's leave the issue open. I will set a task to auto log this error to the console.
from creepjs.
Ok will update
from creepjs.
i believe
Object prototype may only be an Object or null: undefined
TypeError: Object prototype may only be an Object or null: undefined
at Reflect.setPrototypeOf (<anonymous>)
at Object.setPrototypeOf (<anonymous>:361:46)
at Function.setPrototypeOf (<anonymous>)
at getNullConversionTypeErrorLie (https://example.com/test.js:189:12)
at getLies (https://example.com/test.js:534:39)
at https://example.com/test.js:649:15
at Array.forEach (<anonymous>)
at searchLies (https://example.com/test.js:600:18)
at getPrototypeLies (https://example.com/test.js:729:3)
at https://example.com/test.js:772:58
this causing the issue
try {
const proto = obj.prototype ? obj.prototype : obj
let res // response from getLies
// search if function
try {
const apiFunction = proto[name] // may trigger TypeError
if (typeof apiFunction == 'function') {
res = getLies({
apiFunction: proto[name],
proto,
lieProps: props
})
if (res.lied) {
return (props[apiName] = res.lieTypes)
}
return
}
// since there is no TypeError and the typeof is not a function,
// handle invalid values and ingnore name, length, and constants
if (
name != 'name' &&
name != 'length' &&
name[0] !== name[0].toUpperCase()) {
const lie = [`failed descriptor.value undefined`]
return (
props[apiName] = lie
)
}
} catch (error) { }
// else search getter function
const getterFunction = Object.getOwnPropertyDescriptor(proto, name).get
res = getLies({
apiFunction: getterFunction,
proto,
obj,
lieProps: props
}) // send the obj for special tests
if (res.lied) {
return (props[apiName] = res.lieTypes)
}
return
} catch (error) {
const lie = `failed prototype test execution`
return (
props[apiName] = [lie]
)
}
try block failed and triggered the error and when capturing the error above on the console
from creepjs.
specifically this error happens only when the proxied is property like Navigator.prototype.platform
but proxying other functions like Element.prototype.setAttribute
not causing any errors
from creepjs.
Related Issues (20)
- iOS 17 Safari Anti-Fingerprinting HOT 6
- Add stronger Proxy detection HOT 5
- Make CreepJS accessible as an NPM library HOT 4
- Doesn't work HOT 5
- Doubts about the erro infos
- Doubts about the erro infos HOT 9
- MIT or ISC license? HOT 1
- Doubst about the WorkerNavigator HOT 3
- Idea: Detect frame rate HOT 1
- How to use? HOT 6
- lazy loading iframes HOT 3
- Firefox trash after update HOT 2
- what does session mean? HOT 1
- Novice webdev here - How do I install this? HOT 1
- Workers test throwing unsupported on Safari 17.3 HOT 9
- Where is the server source code itself? HOT 2
- How is the FP ID calculation being made? HOT 3
- fonts.lied is undefined HOT 3
- Workers testing is easily defeatable. HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from creepjs.