/usr/include/kjs/kjsinterpreter.h is in kdelibs5-dev 4:4.13.3-0ubuntu0.5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | /*
* This file is part of the KDE libraries
* Copyright (C) 2008 Harri Porten (porten@kde.org)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*
*/
#ifndef KJSINTERPRETER_H
#define KJSINTERPRETER_H
#include "kjsapi_export.h"
#include "kjsobject.h"
#include "kjscontext.h"
class KJSPrototype;
class KJSInterpreter;
class KJSInterpreterHandle;
class KJSResultHandle;
/**
* A class representing the result of a script evaluation.
*/
class KJSAPI_EXPORT KJSResult
{
friend class KJSInterpreter;
public:
/**
* Constructs a default result object.
*/
KJSResult();
/**
* Constructs a copy of another result object.
*/
KJSResult(const KJSResult&);
/**
* Assigns the properties of another result object to this one.
*/
KJSResult& operator=(const KJSResult&);
/**
* Frees resources held by this result object.
*/
~KJSResult();
/**
* Returns true if the script evaluation has caused an exception.
*/
bool isException() const;
/**
* Returns the error message if this is an exception result.
*/
QString errorMessage() const;
/*
* If the evaluation was successful, i.e. isException() is false
* this function returns the value returned by the script. Can be
* an "undefined" (isUndefined()) value.
*/
KJSObject value() const;
private:
KJSResultHandle* hnd;
};
/**
* A class representing a JavaScript interpreter
*
* @short JavaScript interpreter
*/
class KJSAPI_EXPORT KJSInterpreter
{
friend class KJSResult;
friend class KJSPrototype;
friend class KJSContext;
public:
/**
* Constructs an interpreter with a default global object.
*/
KJSInterpreter();
/**
* Constructs an interpreter with a custom global object.
*/
KJSInterpreter(const KJSGlobalObject& global);
/**
* Creates a copy of another interpreter.
*/
KJSInterpreter(const KJSInterpreter& other);
/**
* Assign another interpreter instance to this object.
*/
KJSInterpreter& operator=(const KJSInterpreter& other);
/**
* Destructs this interpreter and frees resources it has
* allocated. This renders any still existing objects referencing
* those invalid.
*/
~KJSInterpreter();
/**
* Returns a handle to the global execution context.
*/
KJSContext* globalContext();
/**
* @overload
*/
const KJSContext* globalContext() const;
/**
* Returns the object that is used as the global object during all
* script execution performed by this interpreter,
*/
KJSObject globalObject();
/**
* Evaluates a piece of code with a "this" set to (optionally set)
* value. The sourceURL and startingLineNumber parameters are used
* to provide information about the origin of a parse error or
* runtime exception.
*/
KJSResult evaluate(const QString& sourceURL, int startingLineNumber,
const QString& code,
KJSObject* thisValue = 0);
/**
* @overload
*/
KJSResult evaluate(const QString& code,
KJSObject* thisValue = 0);
/**
* Reformat the given script code to an easy to read format with
* only one statement per line. This can be useful when debugging
* a script that was e.g. condensed into a single line to a single
* line. While comments will be removed the script will remain
* unchanged semantically.
*
* @param codeIn The code to be reformatted
* @param codeOut Points to string holding the result.
* @param errLine Will hold the line of a parse error
* @param errMsg Will hold the message of a parse error
*
* @return Returns true if the reformatting was successful, false
* on a parse error.
*/
static bool normalizeCode(const QString& codeIn, QString* codeOut,
int* errLine = 0, QString* errMsg = 0);
private:
KJSInterpreter(KJSInterpreterHandle* h);
KJSInterpreterHandle* hnd;
KJSContext globCtx;
};
#endif
|