Nico Weber
ef1b21004f
Everywhere: Fix typos
...
Mostly in comments, but sprintf() now prints "August" instead of
"Auguest" so that's something.
2020-10-02 16:03:17 +02:00
Tom
7399874479
AK: Add trivial structure validation to SharedBuffer
...
If we're sharing buffers, we only want to share trivial structures
as anything else could potentially share internal pointers, which
most likely is going to cause problems due to different address
spaces.
Fix the GUI::SystemTheme structure, which was not trivial, which
is now caught at compile time.
Fixes #3650
2020-10-02 15:38:07 +02:00
Tibor Nagy
18c67b4002
LibGUI: Fix 1px misalignment of ColorButton selections in ColorPicker
...
Also use shrunken() to calculate the selection rects.
2020-10-02 13:08:32 +02:00
Andreas Kling
bd5abbc454
LibJS: Fix fatal mistake in HeapBlock::cell_from_possible_pointer()
...
When scanning for potential heap pointers during conservative GC,
we look for any value that is an address somewhere inside a heap cell.
However, we were failing to account for the slack at the end of a
block (which occurs whenever the block storage size isn't an exact
multiple of the cell size.) Pointers inside the trailing slack were
misidentified as pointers into "last_cell+1".
Instead of skipping over them, we would treat this garbage data as a
live cell and try to mark it. I believe this is the test-js crash that
has been terrorizing Travis for a while. :^)
2020-10-01 21:07:12 +02:00
Andreas Kling
6c9a3ecf42
LibIPC: Silence a warning when compiling with gcc -O0
2020-10-01 19:16:35 +02:00
Itamar
a39c4cc340
HackStudio: Integrate with C++ Language Server
...
Editors now communicate with the c++ language server when openning and
editing c++ source files, and go through the language server to get
autocomplete suggestions.
2020-09-30 21:46:59 +02:00
Itamar
863f14788f
HackStudio: Add C++ Language Server
...
The language server keeps track of the content of currently edited
files by receiving updates about edit actions.
Also, C++ autocompletion is no longer tied to HackStudio itself and
moved to be part of the language server.
2020-09-30 21:46:59 +02:00
Itamar
bf53d7ff64
LibCpp: Add library for working with c++ code
...
Moved the C++ Lexer we have from LibGUI to here, so that other
components could use it without linking with LibGUI.
2020-09-30 21:46:59 +02:00
Itamar
fec4152220
LibCore: Add ensure_parent_directories to LibCore::File
...
Moved the implementation in SystemServer/Service.cpp to LibCore.
2020-09-30 21:46:59 +02:00
AnotherTest
72b68221cc
LibGUI: Add a Shell syntax highlighter
2020-09-30 20:05:24 +02:00
Andreas Kling
e4bda2e1e7
LibJS: Move Console from Interpreter to GlobalObject
...
Each JS global object has its own "console", so it makes more sense to
store it in GlobalObject.
We'll need some smartness later to bundle up console messages from all
the different frames that make up a page later, but this works for now.
2020-09-29 21:15:06 +02:00
Luke
a9335eea1c
LibWeb: Add cm, in, mm and Q CSS units
2020-09-29 20:46:18 +02:00
Andreas Kling
18cff5e0be
LibWeb: Implement performance.timeOrigin
...
This is the origin timestamp of the same monotonic clock used for the
performance.now() timestamp.
I got a little confused while implementing this, since the numbers are
very low. That's because it uses the CLOCK_MONOTONIC system clock,
which we start counting from 0 at boot. :^)
2020-09-29 18:31:07 +02:00
Andreas Kling
62785b7872
LibCore: Expose origin timestamp of Core::ElapsedTime
2020-09-29 18:22:53 +02:00
Andreas Kling
97d0acc5b6
LibWeb: Implement performance.now()
...
This patch introduces the HighResolutionTime namespace which is home to
the Performance object (exposed via window.performance)
performance.now() is currently the only function, and it returns the
number of milliseconds since the window object was constructed. :^)
2020-09-29 18:19:18 +02:00
Andreas Kling
8cb789d061
LibWeb: Remove a bunch of unnecessary <LibJS/Interpreter.h> includes
2020-09-29 17:04:16 +02:00
Andreas Kling
be055b3ddd
LibJS: Reduce use of Interpreter in Reference
2020-09-29 16:45:39 +02:00
Andreas Kling
3df604ad12
LibJS: Reduce use of Interpreter in LexicalEnvironment
2020-09-29 16:41:28 +02:00
Luke
c0d9daadb0
LibGfx: Fix cut off CSS color names
2020-09-29 09:20:33 +02:00
Andreas Kling
f88a7cd4e1
LibCore: Make TCPServer::listen() report failure instead of asserting
2020-09-28 22:14:23 +02:00
Andreas Kling
d3d7ea7e75
LibWeb: LoadRequest::operator==() should compare header values
...
It was only comparing header names. Thanks to @Sponji for noticing!
2020-09-28 17:36:55 +02:00
Andreas Kling
9225bfa95e
LibGUI: Correct inline editor placement in ColumnsView
...
Thanks to @bugaevc for noticing that I didn't account for the 1px space
between columns, and for the space occupied by the item icon.
2020-09-28 12:27:56 +02:00
Andreas Kling
ceda137bf2
LibWeb: Support <form method=POST>
...
Use the new support for HTTP method and request body to implement basic
support for POST'ed forms. This is pretty cool! :^)
2020-09-28 11:56:26 +02:00
Andreas Kling
2946a684ef
ProtocolServer+LibWeb: Support more detailed HTTP requests
...
This patch adds the ability for ProtocolServer clients to specify which
HTTP method to use, and also to include an optional HTTP request body.
2020-09-28 11:55:26 +02:00
Andreas Kling
cfafd4d52d
LibWeb: Expand LoadRequest class to include method, headers and body
...
This will allow us to create more detailed requests from inside the
web engine.
2020-09-28 11:53:32 +02:00
Andreas Kling
ebe1288aea
LibJS: Add missing <AK/Function.h> include in JSONObject.cpp
2020-09-28 09:17:33 +02:00
Benoit Lormeau
f158cb27ea
LibC: Remove an unneeded string.h include in ctype.h/cpp
...
And include string.h in the files that actually needed it
2020-09-27 21:15:25 +02:00
AnotherTest
eef794b8c6
LibMarkdown: Parse paragraphs line-wise
...
This gets rid of the doubled-up checks in `Paragraph::parse()`, and
makes a paragraph the last possible kind of block to be parsed.
2020-09-27 21:14:18 +02:00
AnotherTest
176a2f193c
LibMarkdown: Add support for Tables
...
This adds support for GFM-like tables.
The HTML rendering ignores the alignments and relative sizes, but the
terminal view does not!
2020-09-27 21:14:18 +02:00
AnotherTest
7640cb8ec4
LibMarkdown: Add a Text(String) constructor
2020-09-27 21:14:18 +02:00
AnotherTest
445bd86533
LibMarkdown: Make Text default-constructible and move-assignable
2020-09-27 21:14:18 +02:00
AnotherTest
aa65f664a9
LibMarkdown: Take a 'view_width' argument for render_for_terminal()
...
Some constructs will require the width of the terminal (or a general
'width') to be rendered correctly, such as tables.
2020-09-27 21:14:18 +02:00
AnotherTest
5fbec2b003
AK: Move trim_whitespace() into StringUtils and add it to StringView
...
No behaviour change; also patches use of `String::TrimMode` in LibJS.
2020-09-27 21:14:18 +02:00
Andreas Kling
700cbc02ec
LibWeb: Use JS::VM::call() in timer and RAF callback invocation
...
This removes assumptions about having an Interpreter, and also unbreaks
requestAnimationFrame which was asserting.
2020-09-27 20:31:13 +02:00
Andreas Kling
340d6b0ef7
LibJS: Stop using Interpreter& in the iterator operations helpers
2020-09-27 20:26:58 +02:00
Andreas Kling
2bc5bc64fb
LibJS: Remove a whole bunch of includes of <LibJS/Interpreter.h>
2020-09-27 20:26:58 +02:00
Andreas Kling
861815596f
LibWeb: Bypass the JS::Interpreter when invoking JS event callbacks
...
Use VM::call() instead of Interpreter::call().
2020-09-27 20:26:58 +02:00
Andreas Kling
063acda76e
LibJS: Remove a bunch of unnecessary uses of Cell::interpreter()
...
We'll want to get rid of all uses of this, to free up the engine from
the old assumption that there's always an Interpreter available.
2020-09-27 20:26:58 +02:00
Andreas Kling
591b7b7031
LibJS: Remove js_string(Interpreter&, ...)
2020-09-27 20:26:58 +02:00
Andreas Kling
adf0a537af
LibJS: Remove js_bigint(Interpreter&, ...)
2020-09-27 20:26:58 +02:00
Andreas Kling
a61ede51e2
LibJS: Don't require Interpreter& for constructing an Accessor
2020-09-27 20:26:58 +02:00
Andreas Kling
c59a8d84d3
LibJS: Reduce Interpreter& usage in the Object class
2020-09-27 20:26:58 +02:00
Andreas Kling
b9793e603c
LibJS: Don't require Interpreter& in PropertyName and StringOrSymbol
2020-09-27 20:26:58 +02:00
Andreas Kling
1df18c58f5
LibJS: Make all the JS::Value binary op helpers take GlobalObject&
...
We don't need the Interpreter& for anything here, the GlobalObject is
enough for getting to the VM and possibly throwing exceptions.
2020-09-27 20:26:58 +02:00
Andreas Kling
30ca9acd9c
LibJS: Remove unused js_symbol(Interpreter&, ...)
2020-09-27 20:26:58 +02:00
Andreas Kling
aaa8b48a4c
LibJS: Remove use of Interpreter& in JSONObject code
2020-09-27 20:26:58 +02:00
Andreas Kling
f79d4c7347
LibJS: Remove Interpreter& argument to Function::construct()
...
This is no longer needed, we can get everything we need from the VM.
2020-09-27 20:26:58 +02:00
Andreas Kling
340a115dfe
LibJS: Make native function/property callbacks take VM, not Interpreter
...
More work on decoupling the general runtime from Interpreter. The goal
is becoming clearer. Interpreter should be one possible way to execute
code inside a VM. In the future we might have other ways :^)
2020-09-27 20:26:58 +02:00
Andreas Kling
1ff9d33131
LibJS: Make Function::call() not require an Interpreter&
...
This makes a difference inside ScriptFunction::call(), which will now
instantiate a temporary Interpreter if one is not attached to the VM.
2020-09-27 20:26:58 +02:00
Andreas Kling
be31805e8b
LibJS: Move scope stack from VM back to Interpreter
...
Okay, my vision here is improving. Interpreter should be a thing that
executes an AST. The scope stack is irrelevant to the VM proper,
so we can move that to the Interpreter. Same with execute_statement().
2020-09-27 20:26:58 +02:00