History

Added JS exceptions + fixed up floating precision mess up

Atlante45 committed 12 years ago

Commit b9fe5b21 parent d456adf7 files · +105 −52Browse files

Showing the changes to libraries/script-engine/src/ArrayBufferClass.cpp (1 of 7 files). Show all

Unified · Split

libraries/script-engine/src/ArrayBufferClass.cpp+11−1
@@ -48,7 +48,17 @@ _scriptEngine(scriptEngine) { · 47 unmodified lines
48 engine()->globalObject().setProperty(name(), _ctor);48 engine()->globalObject().setProperty(name(), _ctor);
49}49}
50 50
51QScriptValue ArrayBufferClass::newInstance(quint32 size) {51QScriptValue ArrayBufferClass::newInstance(qint32 size) {
52 const qint32 MAX_LENGTH = 100000000;
53 if (size < 0) {
54 engine()->evaluate("throw \"ArgumentError: negative length\"");
55 return QScriptValue();
56 }
57 if (size > MAX_LENGTH) {
58 engine()->evaluate("throw \"ArgumentError: absurd length\"");
59 return QScriptValue();
60 }
61
52 engine()->reportAdditionalMemoryCost(size);62 engine()->reportAdditionalMemoryCost(size);
53 QScriptEngine* eng = engine();63 QScriptEngine* eng = engine();
54 QVariant variant = QVariant::fromValue(QByteArray(size, 0));64 QVariant variant = QVariant::fromValue(QByteArray(size, 0));