summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-03-13Applications: Use "Document - AppName" window title formatTibor Nagy
Fixes #1444
2020-03-13LibGUI: Add missing copyright headersOriko
2020-03-13LibJS: Fix endless loop in string lexingOriko
2020-03-13HackStudio: Use Javascript syntax highlighterOriko
2020-03-13TextEditor: Use Javascript syntax highlighterOriko
2020-03-13LibGUI: Add Javascript syntax highlighterOriko
2020-03-13LibGUI: Abstract token pair matchingOriko
2020-03-13LibJS: Fix lexing of the last character in a fileStephan Unverwerth
Before this commit the last character in a file would be swallowed. This also fixes parsing of empty files which would previously ASSERT.
2020-03-13HackStudio: Add Javascript projectsOriko
2020-03-13HackStudio: Fix the wrong cursor being drawnOriko
2020-03-13LibJS: Add parsed parameters to FunctionDeclarationLinus Groh
2020-03-13LibJS: Don't allow the redeclaration of a `var` variable using let/const0xtechnobabble
Previously, we were allowing the redeclaration of a variable with `let` or `const` if it was declared initially using `var`, we should not tolerate any form of variable redeclaration using let/const.
2020-03-13LibJS: Add Object::put_native_function() for convenienceAndreas Kling
This makes it a little bit nicer to add native function properties to JavaScript objects. Thanks to Sergey for suggesting it! :^)
2020-03-13LibJS: Make it possible to go from a Cell* to its Heap&Andreas Kling
This patch makes all HeapBlock allocations aligned to their block size, enabling us to find the HeapBlock* for a given Cell* by simply masking bits off of the cell address. Use this to make a simple Heap& getter for Cell, which lets us avoid plumbing the Heap& everywhere.
2020-03-13LibJS: Split Function into subclasses NativeFunction and ScriptFunctionAndreas Kling
Both types of functions are now Function and implement calling via: virtual Value call(Interpreter&, Vector<Value> arguments); This removes the need for CallExpression::execute() to care about which kind of function it's calling. :^)
2020-03-13Solitaire: Fix automatic moving of cardsTill Mayer
A previous change trying to fix an assertion error completely broke the automatic moving of cards, this commit will fix this problem
2020-03-13Solitaire: Minor tweaks to animation x_velocity and bouncynessTill Mayer
2020-03-13Solitaire: Add about dialog and 32x32 iconTill Mayer
2020-03-12LibJS: Move GlobalObject to its own Object subclassAndreas Kling
This is mostly for tidiness at the moment.
2020-03-12LibJS: Replace $gc() hack with a NativeFunction on the global objectAndreas Kling
To make this work, also start passing Interpreter& to native functions.
2020-03-12LibJS: Fix broken parsing of 0-argument CallExpressionAndreas Kling
2020-03-12LibJS: Allow implicit Value construction from GC-allocated thingsAndreas Kling
2020-03-12LibJS: Add NativeFunction, a callable wrapper around a C++ lambdaAndreas Kling
This can be used to implement arbitrary functionality, callable from JavaScript. To make this work, I had to change the way CallExpression passes arguments to the callee. Instead of a HashMap<String, Value>, we now pass an ordered list of Argument { String name; Value value; }. This patch includes a native "print(argument)" function. :^)
2020-03-12LibJS: Fix NumericLiteral::dump() outputAndreas Kling
2020-03-12LibJS: Parse CallExpression argumentsAndreas Kling
2020-03-12LibJS: Dump CallExpression arguments (if any)Andreas Kling
2020-03-12HackStudio: Abstract over syntax highlighterOriko
2020-03-12HackStudio: Underline header linksOriko
2020-03-12LibGUI: Add underlines to highlightingOriko
2020-03-12LibGUI: Take scroll offset into account on ItemView rubberband selectionTibor Nagy
Same kind of issue as #1271.
2020-03-12LibJS: Implement const variable declarations0xtechnobabble
This also tightens the means of redeclaration of a variable by proxy, since we now have a way of knowing how a variable was initially declared, we can check if it was declared using `let` or `const` and not tolerate redeclaration like we did previously.
2020-03-12LibJS: Implement update expressions0xtechnobabble
Note that currently only the non-prefixed variant is supported (i.e i++ not ++i), this variant returns the value of the argument before the update.
2020-03-12LibJS/Parser: Parse let declarations0xtechnobabble
2020-03-12LibJS: Tweak AssignmentOp namesAndreas Kling
2020-03-12LibJS: Fix some coding style mistakes in LexerAndreas Kling
2020-03-12Meta: Add for-loop JavaScript test programConrad Pankoff
2020-03-12LibJS: Implement for statementConrad Pankoff
2020-03-12LibJS: Parse === and !== binary operatorsConrad Pankoff
2020-03-12LibJS: Parse > and < binary operatorsConrad Pankoff
2020-03-12LibJS: Implement +=, -=, *=, and /= assignment operatorsConrad Pankoff
2020-03-12LibJS: Implement <= and >= binary operatorsConrad Pankoff
2020-03-12LibJS: Implement multiplication and division operatorsConrad Pankoff
2020-03-12LibJS: Add test for function with argumentshowar6hill
2020-03-12LibJS: Implement basic MemberExpression parsingAndreas Kling
At last we can parse "hello friends".length :^)
2020-03-12LibJS: Implement basic lexing + parsing of StringLiteralAndreas Kling
This still includes the double-quote characters (") but at least the AST comes out right.
2020-03-12HackStudio: Add header navigationOriko
2020-03-12LibGUI: Parse #include statements separatelyOriko
2020-03-12ACPI: Examine bit width in Generic address structure before assertingLiav A
Also, the switch-case flow is simplified for IO access within a Generic address strucuture's handling.
2020-03-12ACPI: Keep common flags in structures for later usageLiav A
2020-03-12Ext2FS: Reset the found_a_group flagmarprok