AES is just the cypherstream generator, the password is hashed, usually, using something like scrypt or more often nowadays, argon or argon 2. also, instead of AES, a lower compute cost cipherstream generator is chacha20-poly1305. you need to have the implementation in javascript though, which inherently weakens these key expansion hash functions like argon.
i assume when it says "XOR" it means the password is just XORed with it? who has 32 character passwords to completely cover it? or do they just hash once? in actual fact, the most important part of the security is the password expansion hash function. you can actually just use XOR with that, there is not any extra security by using yet another hash function on top, it's just gonna be slower, so you could really just hash it many times with the fastest hash function you can use, blake2b is the fastest hash function i know of.