Details
-
Task
-
Resolution: Won't Do
-
P4: Low
-
None
-
None
-
None
Description
Parts of the QtScript API and runtime expose behaviors that reflect the implementation of the old (Qt 4.5) back-end.
It has proven difficult to implement the exact behavior on top of other JavaScript engines, such as JavaScriptCore (JSC) and V8.
Not all of this behavior is documented, but some of it is.
The behavior is tested in the QtScript autotests, and a lot of the cases are currently treated on an equal level with the "standard"/"officially sanctioned" behavior.
This task collects the behaviors in question. The aim is, for each case, to document why the behavior is like that (e.g., freak accident, or is it actually well-thought-out and useful?), and assess the importance of keeping the old behavior (i.e., what is the perceived impact of changing it).
As an overall goal, we would like the QtScript back-end integration layer to be as thin as possible; this means trying to avoid "magic" code that only serves to satisfy behavior that perhaps nobody relies (or should rely) on.
Attachments
Issue Links
- depends on
-
QTBUG-10313 [Reg] parentContext->activationObject() can return the wrong object when called from a native QtScript function
-
- Closed
-
-
QTBUG-11012 [Reg] Crash / incorrect result when setting custom scope chain for a native context
-
- Closed
-
-
QTBUG-17612 [Reg] Dynamic C++ property overrides JS property
-
- Closed
-
-
QTBUG-6132 QScriptContext::isCalledAsConstructor() returns the wrong result for JS contexts when JIT is enabled
-
- Closed
-
-
QTBUG-6133 QScriptContextInfo::functionMetaIndex() doesn't return the correct index for overloaded slots
-
- Closed
-
-
QTBUG-6135 [Reg] 'debugger' statement returns undefined regardless of QScriptEngineAgent's return value
-
- Closed
-
-
QTBUG-6136 QRegExp <--> RegExp conversion is not fully bidirectional
-
- Closed
-
-
QTBUG-6138 [Reg] Error objects lack lineNumber and fileName properties when they're not thrown
-
- Closed
-
-
QTBUG-6139 QScriptEngine::uncaughtExceptionBacktrace() doesn't give a full backtrace
-
- Closed
-
-
QTBUG-6140 eval() do not provide callbacks for QScriptEngineAgent
-
- Closed
-
-
QTBUG-10302 Since 4.6, QScriptValue::isFunction() returns true for regular expression objects
-
- Closed
-
-
QTBUG-15956 [Reg] Error objects no longer provide a "stack" property
-
- Closed
-
-
QTBUG-17131 [Reg] Scope chain changes due to "with" statement isn't observable in QScriptContext
-
- Closed
-
-
QTBUG-17287 QScriptContext can return wrong arguments in callback from built-in ECMA function
-
- Closed
-
-
QTBUG-17604 [Reg] Attempting to convert an activation object to a string results in a TypeError
-
- Closed
-
-
QTBUG-17616 [Reg] JS getter that throws exception is not returned by QScriptValue::property()
-
- Closed
-
-
QTBUG-17842 [Reg] Missing line number in backtrace when function calls eval()
-
- Closed
-
-
QTBUG-6142 PostionChange QScriptEngineAgent callback
-
- Closed
-
-
QTBUG-6187 QScriptEngineAgent callbacks are not called in rar cases
-
- Closed
-
-
QTBUG-9737 [Reg] Changing Global Object's prototype from JavaScript is not reflected on the C++ side
-
- Closed
-
-
QTBUG-17136 [Reg] Activation object of native calls no longer has an arguments property
-
- Closed
-
-
QTBUG-17599 [Reg] QScriptClass::name() is not used in object's default string representation
-
- Closed
-
-
QTBUG-17602 [Reg] QScriptContextInfo::columnNumber() always returns -1
-
- Closed
-
-
QTBUG-17605 [Reg] Local variables implemented as getter/setter properties on the activation object no longer works
-
- Closed
-
-
QTBUG-17609 [Reg] QScriptEngineAgent::positionChange() callback always reports column number as 1
-
- Closed
-
-
QTBUG-17615 [Reg] User-range flags (QScriptValue::UserRange) not retained for getter/setter properties
-
- Closed
-
-
QTBUG-17617 [Reg] Undeletable properties can't be deleted from C++
-
- Closed
-
- relates to
-
QTBUG-15571 QtScript: Deprecate APIs that reflect implementation of old ("classic") back-end
-
- Closed
-