1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 * vim: set ts=8 sts=2 et sw=2 tw=80:
3 * This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
10 #include "mozilla/Maybe.h"
16 #include "jit/AutoWritableJitCode.h"
17 #include "jit/MacroAssembler.h"
18 #include "vm/Runtime.h"
20 struct JS_PUBLIC_API JSContext
;
27 enum class CodeKind
: uint8_t;
31 mozilla::Maybe
<AutoWritableJitCodeFallible
> awjcf
;
33 JitCode
* fail(JSContext
* cx
) {
34 ReportOutOfMemory(cx
);
39 // Construct a linker with a rooted macro assembler.
40 explicit Linker(MacroAssembler
& masm
) : masm(masm
) { masm
.finish(); }
42 // Create a new JitCode object and populate it with the contents of the
43 // macro assember buffer.
45 // This method cannot GC. Errors are reported to the context.
46 JitCode
* newCode(JSContext
* cx
, CodeKind kind
);
52 #endif /* jit_Linker_h */