remove isa

This commit is contained in:
2026-01-06 11:17:07 -06:00
parent 63cf76dcf9
commit dd309b1a37
10 changed files with 43 additions and 78 deletions

View File

@@ -92,43 +92,8 @@ var actor_mod = use_core('actor')
var wota = use_core('wota')
var nota = use_core('nota')
globalThis.isa = function(value, master) {
if (master == null) return false
// isa(value, function) - check if function.prototype is in chain
if (is_function(master)) {
// Special type checks
if (master == stone) return is_stone(value)
if (master == number) return is_number(value)
if (master == text) return is_text(value)
if (master == logical) return is_logical(value)
if (master == array) return is_array(value)
if (master == object) return is_object(value)
if (master == fn) return is_function(value)
if (master == actor) return is_object(value) && value[ACTORDATA]
// Check prototype chain
if (master.prototype) {
var proto = _getPrototypeOf(value)
while (proto != null) {
if (proto == master.prototype) return true
proto = _getPrototypeOf(proto)
}
}
return false
}
// isa(object, master_object) - check prototype chain
if (is_object(master)) {
var proto = _getPrototypeOf(value)
while (proto != null) {
if (proto == master) return true
proto = _getPrototypeOf(proto)
}
return false
}
return false
globalThis.is_actor = function(value) {
return is_object(value) && value[ACTORDATA]
}
var ENETSERVICE = 0.1
@@ -240,7 +205,7 @@ $_.time_limit = function(requestor, seconds)
{
if (!pronto.is_requestor(requestor))
throw new Error('time_limit: first argument must be a requestor');
if (!isa(seconds, number) || seconds <= 0)
if (!is_number(seconds) || seconds <= 0)
throw new Error('time_limit: seconds must be a positive number');
return function time_limit_requestor(callback, value) {
@@ -436,7 +401,7 @@ function handle_host(e) {
data.replycc[ACTORDATA].port = e.peer.port
}
function populate_actor_addresses(obj) {
if (!isa(obj, object)) return
if (!is_object(obj)) return
if (obj[ACTORDATA] && !obj[ACTORDATA].address) {
obj[ACTORDATA].address = e.peer.address
obj[ACTORDATA].port = e.peer.port
@@ -485,7 +450,7 @@ $_.stop = function stop(actor) {
need_stop = true
return
}
if (!isa(actor, actor))
if (!is_actor(actor))
throw new Error('Can only call stop on an actor.')
if (!underlings.has(actor[ACTORDATA].id))
throw new Error('Can only call stop on an underling or self.')
@@ -541,7 +506,7 @@ function actor_send(actor, message) {
if (actor[HEADER] && !actor[HEADER].replycc) // attempting to respond to a message but sender is not expecting; silently drop
return
if (!isa(actor, actor) && !isa(actor.replycc, actor)) throw new Error(`Must send to an actor object. Attempted send to ${actor}`)
if (!is_actor(actor) && !is_actor(actor.replycc)) throw new Error(`Must send to an actor object. Attempted send to ${actor}`)
if (!is_object(message)) throw new Error('Must send an object record.')
@@ -620,7 +585,7 @@ globalThis.send = function send(actor, message, reply) {
if (actor[HEADER] && actor[HEADER].replycc) {
var header = actor[HEADER]
if (!header.replycc || !isa(header.replycc, actor))
if (!header.replycc || !is_actor(header.replycc))
throw new Error(`Supplied actor had a return, but it's not a valid actor! ${actor[HEADER]}`)
actor = header.replycc

View File

@@ -338,7 +338,7 @@ Shop.extract_commit_hash = function(pkg, response) {
var data = json.decode(response)
if (info == 'gitea') {
if (isa(data, array))
if (is_array(data))
data = data[0]
return data.commit && data.commit.id
}