A prolific JavaScript developer ported a PokΓ©mon battle simulator to Rust and shares his experiences and techniques used to work around issues where Claude Code would get bogged down in such a large task. He notes βLLM-based coding agents are such a great new toolβ but require βengineering expertise and constant babysittingβ.
Christopher Chedeau
Please open Telegram to view this post
VIEW IN TELEGRAM
β€6π5π₯4
CHALLENGE
console.log('start');
Promise.resolve().then(() => {
console.log('promise 1');
});
setTimeout(() => {
console.log('timeout');
}, 0);
Promise.resolve().then(() => {
console.log('promise 2');
}).then(() => {
console.log('promise 3');
});
console.log('end');β€5π3π₯3
Please open Telegram to view this post
VIEW IN TELEGRAM
β€6π₯6π5
CHALLENGE
const nums = [1, 2, 3];
const obj = { a: 1, b: 2 };
const newObj = { ...obj, b: 3, ...obj };
const arr1 = [4, 5];
const arr2 = [6, 7];
const combined = [...nums, ...arr1, ...arr2];
const [first, ...rest] = combined;
const { a, ...remaining } = newObj;
console.log(newObj.b);
console.log(rest.length);
console.log(remaining.b);
π6π₯4β€1
π₯4π3β€2π€2
First introduced two years ago, Node has a (still experimental) feature to build single executable applications that can be deployed to machines that donβt have Node installed. This weekβs Node.js 25.5 release, with its --build-sea flag, moves the final injection step into Node itself, eliminating the need for external tooling and turning what was a multi-step, low-level process into a single command.
Joyee Cheung
Please open Telegram to view this post
VIEW IN TELEGRAM
π8β€5π₯2
CHALLENGE
const user = {
profile: {
settings: {
theme: 'dark',
notifications: null
}
}
};
const getNotificationSound = (user) => {
return user?.profile?.settings?.notifications?.sound ?? 'default';
};
console.log(getNotificationSound(user));
console.log(getNotificationSound(null));
console.log(getNotificationSound({ profile: {} }));β€6π6π₯3
What is the output?
Anonymous Quiz
25%
default default undefined
33%
undefined undefined undefined
14%
null default default
29%
default default default
β€3π1π₯1
CHALLENGE
function processData() {
try {
console.log('start');
throw new Error('oops');
console.log('unreachable');
} catch (e) {
console.log('caught');
return 'error';
} finally {
console.log('cleanup');
}
console.log('end');
}
const result = processData();
console.log(result);π₯9β€7π4
What is the output?
Anonymous Quiz
23%
start oops cleanup undefined
48%
start caught cleanup error
17%
start caught end error
12%
start caught cleanup undefined
β€6π€3π2π₯1
CHALLENGE
const target = { name: 'Sarah', age: 25 };
const handler = {
get(obj, prop) {
if (prop === 'toString') {
return () => `Person: ${obj.name}`;
}
return Reflect.get(obj, prop);
},
set(obj, prop, value) {
if (prop === 'age' && value < 0) {
return false;
}
return Reflect.set(obj, prop, value);
}
};
const proxy = new Proxy(target, handler);
proxy.age = -5;
proxy.location = 'NYC';
console.log(proxy.toString());
console.log(proxy.age);
console.log(proxy.location);β€9π6π₯2
What is the output?
Anonymous Quiz
34%
Person: Sarah 25 NYC
34%
Person: Sarah undefined NYC
16%
Person: Sarah 25 undefined
16%
Person: Sarah -5 NYC
π4β€1π₯1
CHALLENGE
const obj = {
name: 'Sarah',
greet() {
console.log(`Hello, ${this.name}`);
}
};
const person = { name: 'Mike' };
const func = obj.greet;
obj.greet();
func();
func.call(person);
person.hello = obj.greet;
person.hello();π₯7π5β€3
What is the output?
Anonymous Quiz
30%
Hello, Sarah Hello, Sarah Hello, Mike Hello, Sarah
24%
Hello, Sarah Hello, Mike Hello, Mike Hello, Mike
19%
Hello, Sarah Hello, Hello, Mike Hello, Mike
27%
Hello, Sarah Hello, undefined Hello, Mike Hello, Mike
π6β€2π€£2π₯1
CHALLENGE
const source = { a: 1, b: { c: 2 } };
const target1 = Object.assign({}, source);
const target2 = { ...source };
source.b.c = 99;
target1.a = 10;
target2.b.c = 50;
console.log(source.a);
console.log(source.b.c);
console.log(target1.a);
console.log(target1.b.c);
console.log(target2.a);
console.log(target2.b.c);β€5π4π₯3
What is the output?
Anonymous Quiz
30%
1 50 10 50 1 50
29%
10 99 10 99 10 99
17%
1 2 10 2 1 2
23%
1 99 10 99 1 99
β€5π3π₯2
Four stalwarts of the JavaScript ecosystem all shipped notable releases this week, and odds are you're using at least one of them:
β’ Gatsby v5.16 proves Gatsby, once considered neck-and-neck with Next.js in the React world, is not 'dead'. The headline feature is React 19 support.
β’ Babel 7 just shipped its final release. "After years in the making, Babel 8 is finally ready," in release candidate form, at least.
β’ Rspress 2.0 is a major release for the high-performance Rust-powered, but JavaScript-facing, static site generator.
β’ Lodash 4.17.23 sounds minor, but it's a 'security reset' for the still heavily used utility library and is designed to provide a base for a longer future.
Please open Telegram to view this post
VIEW IN TELEGRAM
π₯9π5β€4
CHALLENGE
const memoize = (fn) => {
const cache = new Map();
return (...args) => {
const key = JSON.stringify(args);
if (cache.has(key)) return cache.get(key);
const result = fn(...args);
cache.set(key, result);
return result;
};
};
const fibonacci = memoize((n) => {
if (n <= 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
});
console.log(fibonacci(10));
console.log(fibonacci(5));
console.log(fibonacci(10));π₯8β€4π2
β€2π₯2π1